| @@ 147-163 (lines=17) @@ | ||
| 144 | * @param mixed $locale |
|
| 145 | * @param array $fieldMapping |
|
| 146 | */ |
|
| 147 | private function persistGeneric( |
|
| 148 | NodeInterface $node, |
|
| 149 | DocumentAccessor $accessor, |
|
| 150 | $fieldName, |
|
| 151 | $locale, |
|
| 152 | array $fieldMapping |
|
| 153 | ) { |
|
| 154 | try { |
|
| 155 | $phpcrName = $this->encoder->encode($fieldMapping['encoding'], $fieldMapping['property'], $locale); |
|
| 156 | $value = $accessor->get($fieldName); |
|
| 157 | $this->validateFieldValue($value, $fieldName, $fieldMapping); |
|
| 158 | $node->setProperty($phpcrName, $value); |
|
| 159 | } catch (InvalidLocaleException $ex) { |
|
| 160 | // arguments unvalid no valid propertyname could be generated (e.g. no locale given for localized encoding) |
|
| 161 | return; |
|
| 162 | } |
|
| 163 | } |
|
| 164 | ||
| 165 | /** |
|
| 166 | * @param AbstractMappingEvent $event |
|
| @@ 210-235 (lines=26) @@ | ||
| 207 | * @param mixed $locale |
|
| 208 | * @param array $fieldMapping |
|
| 209 | */ |
|
| 210 | private function hydrateReferenceField( |
|
| 211 | NodeInterface $node, |
|
| 212 | $document, |
|
| 213 | DocumentAccessor $accessor, |
|
| 214 | $fieldName, |
|
| 215 | $locale, |
|
| 216 | array $fieldMapping |
|
| 217 | ) { |
|
| 218 | try { |
|
| 219 | $phpcrName = $this->encoder->encode($fieldMapping['encoding'], $fieldMapping['property'], $locale); |
|
| 220 | $referencedNode = $node->getPropertyValueWithDefault( |
|
| 221 | $phpcrName, |
|
| 222 | $this->getDefaultValue($fieldMapping) |
|
| 223 | ); |
|
| 224 | ||
| 225 | if ($referencedNode) { |
|
| 226 | $accessor->set( |
|
| 227 | $fieldName, |
|
| 228 | $this->proxyFactory->createProxyForNode($document, $referencedNode) |
|
| 229 | ); |
|
| 230 | } |
|
| 231 | } catch (InvalidLocaleException $ex) { |
|
| 232 | // arguments unvalid no valid propertyname could be generated (e.g. no locale given for localized encoding) |
|
| 233 | return; |
|
| 234 | } |
|
| 235 | } |
|
| 236 | ||
| 237 | /** |
|
| 238 | * Hydrate "scalar" field types. |
|