Ejemplo n.º 1
0
 public function save(WrappedEntity $wrappedEntity, Component $component, Mapper $mapper)
 {
     if (!$this->canHandle($component, $wrappedEntity)) {
         return FALSE;
     }
     $value = NULL;
     if ($component instanceof IControl) {
         if ($component->isOmitted()) {
             return TRUE;
         }
         $value = $component->getValue();
     } elseif ($component instanceof Container) {
         $value = $component->getValues(TRUE);
     }
     $mapping = $wrappedEntity->getMetadata()->getFieldMapping($component->name);
     if ($value === "" && $mapping['nullable'] && in_array($mapping['type'], self::$numberTypes)) {
         $value = NULL;
     }
     $mapper->execute(function () use($wrappedEntity, $component, $value) {
         $wrappedEntity->setValue($component->name, $value);
     });
     $mapper->runValidation(function (ValidatorInterface $validator) use($wrappedEntity, $component, $value) {
         return $validator->validatePropertyValue($wrappedEntity->getEntity(), $component->name, $value);
     }, $component);
     return TRUE;
 }
Ejemplo n.º 2
0
 /**
  * @param Component $component
  * @param Mapper $mapper
  * @param $wrappedSubEntity
  * @param $identifier
  */
 protected function loadSubEntity(Component $component, Mapper $mapper, $wrappedSubEntity, $identifier)
 {
     if (!$component instanceof Container) {
         return;
     }
     $container = NULL;
     if ($identifier && isset($component[$identifier]) && ($checkbox = $component[$identifier]) instanceof Checkbox) {
         $checkbox->setDefaultValue(TRUE);
     } elseif ($identifier) {
         $container = $component[$identifier];
     } elseif (method_exists($component, 'createOne')) {
         $container = $component->createOne();
     }
     if ($container instanceof Container) {
         $mapper->loadValues($container, $wrappedSubEntity->getEntity());
     }
 }
Ejemplo n.º 3
0
 public function save(WrappedEntity $wrappedEntity, Component $component, Mapper $mapper)
 {
     if (!$this->canHandle($component, $wrappedEntity)) {
         return FALSE;
     }
     /** @var TextBase $component */
     if ($component->isOmitted()) {
         return TRUE;
     }
     $mapping = $wrappedEntity->getMetadata()->getFieldMapping($component->getName());
     $value = $component->getValue();
     if (is_string($value)) {
         $format = $component->getOption('date-format');
         $type = $this->convertMappingToAdapterType($mapping['type']);
         $value = $this->adapter->parse($value, $type, $format);
     }
     $mapper->execute(function () use($wrappedEntity, $component, $value) {
         $wrappedEntity->setValue($component->name, $value);
     });
     $mapper->runValidation(function (ValidatorInterface $validator) use($wrappedEntity, $component, $value) {
         return $validator->validatePropertyValue($wrappedEntity->getEntity(), $component->name, $value);
     }, $component);
     return TRUE;
 }
Ejemplo n.º 4
0
 public function save(WrappedEntity $wrappedEntity, Component $component, Mapper $mapper)
 {
     if (!$component instanceof Container && !$component instanceof IControl) {
         return FALSE;
     }
     if ($component instanceof MultiChoiceControl) {
         return FALSE;
     }
     $meta = $wrappedEntity->getMetadata();
     if (!($association = $this->getAssociationMetadata($meta, $component->name))) {
         return FALSE;
     }
     if ($component instanceof Container) {
         $relatedEntity = $this->getRelatedEntity($wrappedEntity, $component, $association);
         if ($relatedEntity) {
             $mapper->saveValues($component, $relatedEntity);
             $mapper->execute(function () use($wrappedEntity, $component, $relatedEntity) {
                 $wrappedEntity->getEntityManager()->persist($relatedEntity);
                 $wrappedEntity->setValue($component->getName(), $relatedEntity);
             });
             $mapper->runValidation(function (ValidatorInterface $validator) use($wrappedEntity, $component, $relatedEntity) {
                 return $validator->validatePropertyValue($wrappedEntity, $component->getName(), $relatedEntity);
             }, $component->getForm());
         }
     } elseif ($component instanceof IControl) {
         if ($component->isOmitted()) {
             return TRUE;
         }
         $value = $component->getValue() ?: NULL;
         if ($wrappedEntity->hasAssociation($component->name) && $value && !is_object($value)) {
             $association = $wrappedEntity->getMetadata()->getAssociationMapping($component->name);
             $repository = $wrappedEntity->getEntityManager()->getRepository($association['targetEntity']);
             $value = $repository->find($value);
         }
         $mapper->execute(function () use($wrappedEntity, $component, $value) {
             $wrappedEntity->setValue($component->name, $value);
         });
         $mapper->runValidation(function (ValidatorInterface $validator) use($wrappedEntity, $component, $value) {
             return $validator->validatePropertyValue($wrappedEntity->getEntity(), $component->name, $value);
         }, $component);
     }
     return TRUE;
 }
Ejemplo n.º 5
0
 protected function validate()
 {
     $this->mapper->runValidation(function (ValidatorInterface $validatorInterface) {
         return $validatorInterface->validatePropertyValue($this->wrappedEntity->getEntity(), $this->component->name, $this->collection);
     }, $this->component instanceof BaseControl ? $this->component : $this->component->getForm());
 }