protected function createNormalizerFactoryClass($classes)
{
$statements = [new Expr\Assign(new Expr\Variable('normalizers'), new Expr\Array_()), new Expr\Assign(new Expr\ArrayDimFetch(new Expr\Variable('normalizers')), new Expr\New_(new Name('\\Joli\\Jane\\Runtime\\Normalizer\\ArrayDenormalizer')))];
if ($this->useReference) {
$statements = [new Expr\Assign(new Expr\Variable('normalizers'), new Expr\Array_()), new Expr\Assign(new Expr\ArrayDimFetch(new Expr\Variable('normalizers')), new Expr\New_(new Name('\\Joli\\Jane\\Runtime\\Normalizer\\ReferenceNormalizer'))), new Expr\Assign(new Expr\ArrayDimFetch(new Expr\Variable('normalizers')), new Expr\New_(new Name('\\Joli\\Jane\\Runtime\\Normalizer\\ArrayDenormalizer')))];
}
foreach ($classes as $class) {
$statements[] = new Expr\Assign(new Expr\ArrayDimFetch(new Expr\Variable('normalizers')), new Expr\New_($class));
}
$statements[] = new Stmt\Return_(new Expr\Variable('normalizers'));
return new Stmt\Class_('NormalizerFactory', ['stmts' => [new Stmt\ClassMethod('create', ['type' => Stmt\Class_::MODIFIER_STATIC | Stmt\Class_::MODIFIER_PUBLIC, 'stmts' => $statements])]]);
}