Example #1
0
 /**
  * @param \Nette\Reflection\Property
  * @return Builder\Metadata|null
  */
 private function processProperty(\Nette\Reflection\Property $property)
 {
     if (!$property->hasAnnotation('Input')) {
         return;
     }
     $input = $property->getAnnotation('Input');
     $meta = new Builder\Metadata();
     $meta->name = $property->getName();
     $meta->getter = 'get' . ucfirst($meta->name);
     $meta->setter = 'set' . ucfirst($meta->name);
     if ($input instanceof \ArrayObject) {
         $input = (array) $input;
         foreach ($input as $name => $value) {
             switch ($name) {
                 case 'label':
                 case 'type':
                 case 'getter':
                 case 'setter':
                     $meta->{$name} = $value;
                     unset($input[$name]);
                     break;
                 case 'required':
                 case 'minLength':
                 case 'maxLength':
                 case 'min':
                 case 'max':
                     $meta->conditions[$name] = $value;
                     unset($input[$name]);
                     break;
                 default:
                     break;
             }
         }
         $meta->custom = $input;
     }
     return $meta;
 }