public function assemble(ContextInterface $context)
{
$class = $context->getClass();
$property = $context->getProperty();
try {
$methodName = Normalizer::generatePropertyMethod('set', $property->getName());
$class->removeMethod($methodName);
$class->addMethodFromGenerator(MethodGenerator::fromArray(['name' => $methodName, 'parameters' => [$property->getName()], 'visibility' => MethodGenerator::VISIBILITY_PUBLIC, 'body' => sprintf('$this->%1$s = $%1$s;', $property->getName()), 'docblock' => DocBlockGenerator::fromArray(['tags' => [['name' => 'param', 'description' => sprintf('%s $%s', $property->getType(), $property->getName())]]])]));
} catch (\Exception $e) {
throw AssemblerException::fromException($e);
}
}