public function createDenormalizationStatement(Context $context, Expr $input)
{
$output = new Expr\Variable($context->getUniqueVariableName('value'));
$statements = [new Expr\Assign($output, $input)];
foreach ($this->getTypes() as $type) {
list($typeStatements, $typeOutput) = $type->createDenormalizationStatement($context, $input);
$statements[] = new Stmt\If_($type->createConditionStatement($input), ['stmts' => array_merge($typeStatements, [new Expr\Assign($output, $typeOutput)])]);
}
return [$statements, $output];
}