Exemplo n.º 1
0
 public function getClassTypeImplementation($name)
 {
     if (isset($this->classImplementations[$name])) {
         $classOptions = $this->classImplementations[$name];
     } else {
         $classOptions = new ClassTypeImplementation($name);
         if ($this->globalClassOptions->getAccessorsStyle()) {
             $classOptions->setAccessorsStyle($this->globalClassOptions->getAccessorsStyle());
         }
         $classOptions->setAccessorsEnabled($this->globalClassOptions->isAccessorsEnabled());
     }
     if (!$classOptions->getClassName()) {
         $classOptions->setClassName($this->classMap->getClass($name));
     }
     return $classOptions;
 }
 protected function createClassImplementation($typeName, $options)
 {
     $globalClassOptions = $this->implementation->getGlobalClassImplementation();
     $classImplementation = new ClassTypeImplementation($typeName);
     // default class implementation from global class implementation settings
     $classImplementation->setAccessorsEnabled($globalClassOptions->isAccessorsEnabled());
     if ($globalClassOptions->isAccessorsEnabled() && $globalClassOptions->getAccessorsStyle()) {
         $classImplementation->setAccessorsStyle($globalClassOptions->getAccessorsStyle());
     }
     if (isset($options['class'])) {
         $classImplementation->setClassName($options['class']);
     }
     if (isset($options['accessors'])) {
         $accessors = $options['accessors'];
         if (isset($accessors['style'])) {
             $styleName = $accessors['style'];
             if (!$this->styles->hasStyle($styleName)) {
                 $msg = sprintf('Cannot set global setters and getters style to "%s" since style does not exist', $styleName);
                 throw new ImplementationLoadingException($msg);
             }
             $classImplementation->setAccessorsStyle($this->styles->getStyle($styleName))->setAccessorsEnabled(true);
         }
         if (isset($accessors['enabled'])) {
             $classImplementation->setAccessorsEnabled($accessors['enabled']);
         }
     }
     foreach ((array) @$options['properties'] as $propertyName => $propertyOptions) {
         $propertyImplementation = $this->createPropertyImplementation($propertyName, $propertyOptions, $classImplementation);
         $classImplementation->addPropertyImplementation($propertyImplementation);
     }
     return $classImplementation;
 }