/** * Return prepared method name from property eg. getNameOrSurname * * @return string */ public function getPreparedName() { return sprintf("set%s", parent::getPreparedName()); }
/** * @param MethodManager $method * @return string * @throws RendererException * @throws UnrecognizedItemToRenderException */ protected function renderMethod(MethodManager $method) { $template = $method->getTemplate(); $tags = $method->getTemplateTags(); $property = $method->getProperty(); $propertyName = $property->getPreparedName(); $methodName = $method->getPreparedName(); $comment = sprintf('For property "%s"', $propertyName); $args = []; switch (true) { case $method instanceof MethodGetterManager: $args[RenderableInterface::TAG_COMMENT] = $comment; $args[RenderableInterface::TAG_PROPERTY_TYPE] = $property->getType(); $args[RenderableInterface::TAG_METHOD_NAME] = $methodName; $args[RenderableInterface::TAG_PROPERTY_NAME] = $propertyName; break; case $method instanceof MethodGetterInterfaceManager: $args[RenderableInterface::TAG_COMMENT] = $comment; $args[RenderableInterface::TAG_PROPERTY_TYPE] = $property->getType(); $args[RenderableInterface::TAG_METHOD_NAME] = $methodName; break; case $method instanceof MethodGetterBooleanManager: $args[RenderableInterface::TAG_COMMENT] = $comment; $args[RenderableInterface::TAG_PROPERTY_TYPE] = $property->getType(); $args[RenderableInterface::TAG_METHOD_NAME] = $methodName; $args[RenderableInterface::TAG_PROPERTY_NAME] = $propertyName; break; case $method instanceof MethodGetterBooleanInterfaceManager: $args[RenderableInterface::TAG_COMMENT] = $comment; $args[RenderableInterface::TAG_PROPERTY_TYPE] = $property->getType(); $args[RenderableInterface::TAG_METHOD_NAME] = $methodName; break; case $method instanceof SetterMethodInterface: $typeHintitng = ''; if ($method->canAddTypeHinting()) { $typeHintitng = sprintf('\\%s ', $property->getTypeName()); } $optionalPart = ''; if ($property->isOptional()) { $optionalPart = ' = null'; } $args[RenderableInterface::TAG_COMMENT] = $comment; $args[RenderableInterface::TAG_PROPERTY_TYPE] = $property->getType(); $args[RenderableInterface::TAG_TYPE_HINTING] = $typeHintitng; $args[RenderableInterface::TAG_METHOD_NAME] = $methodName; $args[RenderableInterface::TAG_PROPERTY_NAME] = $propertyName; $args[RenderableInterface::TAG_OPTIONAL_PART] = $optionalPart; break; default: throw $this->getExceptionUnrecognizedItem($method); } return $this->addNewLineAfter($this->addIndentation($this->replace($tags, $args, $template), self::INDENT_4_SPACES)); }