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; }
/** * @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()); } }
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; }
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; }
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()); }