/** * @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; }
/** * @param PhpMethod $phpMethod * @param MethodModel $methodModel * @return Service */ protected function setModelFromMethod(PhpMethod $phpMethod, MethodModel $methodModel) { $this->methods[$phpMethod->getName()] = $methodModel; return $this; }
/** * @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; }
/** * @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; }