示例#1
0
 /**
  * @return PhpAnnotationBlock|null
  */
 protected function getMethodAnnotationBlock(PhpMethod $method)
 {
     $block = null;
     switch ($method->getName()) {
         case self::METHOD_GET_VALID_VALUES:
             $block = $this->getEnumGetValidValuesAnnotationBlock();
             break;
         case self::METHOD_VALUE_IS_VALID:
             $block = $this->getEnumValueIsValidAnnotationBlock();
             break;
     }
     return $block;
 }
示例#2
0
 /**
  * @param PhpMethod $phpMethod
  * @param MethodModel $methodModel
  * @return Service
  */
 protected function setModelFromMethod(PhpMethod $phpMethod, MethodModel $methodModel)
 {
     $this->methods[$phpMethod->getName()] = $methodModel;
     return $this;
 }
示例#3
0
 /**
  * @param PhpMethod $method
  * @return PhpAnnotationBlock|null
  */
 protected function getStructMethodAnnotationBlock(PhpMethod $method)
 {
     switch ($method->getName()) {
         case self::METHOD_CONSTRUCT:
             $annotationBlock = $this->getStructMethodConstructAnnotationBlock();
             break;
         case self::METHOD_SET_STATE:
             $annotationBlock = $this->getStructMethodSetStateAnnotationBlock();
             break;
         case self::METHOD_GET_ATTRIBUTE_NAME:
             $annotationBlock = $this->getArrayMethodGetAttributeNameAnnotationBlock();
             break;
         case self::METHOD_CURRENT:
             $annotationBlock = $this->getArrayMethodCurrentAnnotationBlock();
             break;
         case self::METHOD_FIRST:
             $annotationBlock = $this->getArrayMethodFirstAnnotationBlock();
             break;
         case self::METHOD_ITEM:
             $annotationBlock = $this->getArrayMethodItemAnnotationBlock();
             break;
         case self::METHOD_LAST:
             $annotationBlock = $this->getArrayMethodLastAnnotationBlock();
             break;
         case self::METHOD_OFFSET_GET:
             $annotationBlock = $this->getArrayMethodOffsetGetAnnotationBlock();
             break;
         case self::METHOD_ADD:
             $annotationBlock = $this->getArrayMethodAddAnnotationBlock();
             break;
         default:
             $annotationBlock = parent::getStructMethodAnnotationBlock($method);
             break;
     }
     return $annotationBlock;
 }
示例#4
0
 /**
  * @param PhpMethod $method
  * @return PhpAnnotationBlock
  */
 protected function getStructMethodsAddToAnnotationBlock(PhpMethod $method)
 {
     $attributeName = str_replace('addTo', '', $method->getName());
     $attribute = $this->getModel()->getAttribute($attributeName);
     if (!$attribute instanceof StructAttributeModel) {
         $attribute = $this->getModel()->getAttribute(lcfirst($attributeName));
     }
     $model = $this->getRestrictionFromStructAttribute($attribute);
     $annotationBlock = new PhpAnnotationBlock();
     if ($attribute instanceof StructAttributeModel) {
         $annotationBlock->addChild(sprintf('Add item to %s value', $attribute->getCleanName()));
         if ($model instanceof StructModel) {
             $annotationBlock->addChild(new PhpAnnotation(self::ANNOTATION_USES, sprintf('%s::%s()', $model->getPackagedName(true), StructEnum::METHOD_VALUE_IS_VALID)))->addChild(new PhpAnnotation(self::ANNOTATION_USES, sprintf('%s::%s()', $model->getPackagedName(true), StructEnum::METHOD_GET_VALID_VALUES)));
         }
         $annotationBlock->addChild(new PhpAnnotation(self::ANNOTATION_THROWS, '\\InvalidArgumentException'))->addChild(new PhpAnnotation(self::ANNOTATION_PARAM, sprintf('%s $item', $this->getStructAttributeTypeSetAnnotation($attribute, false))))->addChild(new PhpAnnotation(self::ANNOTATION_RETURN, $this->getModel()->getPackagedName(true)));
     }
     return $annotationBlock;
 }