public function getConverter($attributeNode) { $converterNode = $attributeNode->converterClass; if (!$converterNode) { $converterNode = $attributeNode->converter; if (!$converterNode) { $converter = ConverterFactory::getTrivialConverter(); } else { $name = $converterNode->converterName; $converter = $this->broker->getConverter($name); if (!$converter) { $parameters = $this->getParameters($converterNode); $factory = new ConverterFactory(); $converter = $factory->getConverter($name, $parameters); $this->broker->putConverter($name, $converter); } } } else { $name = (string) $converterNode; $converter = $this->broker->getConverter($name); if (!$converter) { $factory = new ConverterFactory(); $converter = $factory->getConverter($name); $this->broker->putConverter($name, $converter); } } return $converter; }