protected function createPrototypeRemoveMethod(PropertyDefinition $property, PhpVariableName $reversePropertyName = null, $reversePropertyIsMany = false) { $name = $property->getName()->singularize(); $methodName = new PhpVariableName('remove' . $name->toUpperCamelCase()); $newType = $this->resolveElementType($property); $parameter = new ParameterDefinition($newType, $name); $method = new MethodDefinition($methodName, [$parameter]); $method->setVisibility(Visibility::PUBLIC_VISIBILITY()); if (null !== $reversePropertyName) { $line = true === $reversePropertyIsMany ? '$%s->remove%s($this);' : '$%s->set%s(null);'; $method->addLine(sprintf($line, $name->toLowerCamelCase(), $reversePropertyName->toUpperCamelCase())); } return $method; }
/** * @return string class name without namespace */ public function getName() { return $this->className->toUpperCamelCase(); }