コード例 #1
0
 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;
 }