104 if (isset($this->propertiesNotToBeMapped[$propertyName])) {
108 if (isset($this->propertiesToBeMapped[$propertyName])) {
112 if (isset($this->subConfigurationForProperty[self::PROPERTY_PATH_PLACEHOLDER])) {
127 return isset($this->propertiesToSkip[$propertyName]);
137 $this->mapUnknownProperties =
true;
151 foreach (func_get_args() as $propertyName) {
152 $this->propertiesToBeMapped[$propertyName] = $propertyName;
167 foreach (func_get_args() as $propertyName) {
168 $this->propertiesToSkip[$propertyName] = $propertyName;
183 $this->mapUnknownProperties =
true;
185 foreach (func_get_args() as $propertyName) {
186 $this->propertiesNotToBeMapped[$propertyName] = $propertyName;
222 if (isset($this->subConfigurationForProperty[$propertyName])) {
223 return $this->subConfigurationForProperty[$propertyName];
225 if (isset($this->subConfigurationForProperty[self::PROPERTY_PATH_PLACEHOLDER])) {
240 if (isset($this->mapping[$sourcePropertyName])) {
241 return $this->mapping[$sourcePropertyName];
243 return $sourcePropertyName;
253 if (!isset($this->configuration[$typeConverterClassName][$key])) {
257 return $this->configuration[$typeConverterClassName][$key];
267 public function setMapping($sourcePropertyName, $targetPropertyName)
269 $this->mapping[$sourcePropertyName] = $targetPropertyName;
316 $typeConverterClasses = $typeConverterClasses ===
false ? [] : $typeConverterClasses;
318 return $typeConverterClasses;
331 $splittedPropertyPath = explode(
'.', $propertyPath);
343 if (empty($splittedPropertyPath)) {
347 $currentProperty = array_shift($splittedPropertyPath);
348 if (!isset($this->subConfigurationForProperty[$currentProperty])) {
349 $type = static::class;
350 if (isset($this->subConfigurationForProperty[self::PROPERTY_PATH_PLACEHOLDER])) {
353 $this->subConfigurationForProperty[$currentProperty] =
new $type;
356 return $this->subConfigurationForProperty[$currentProperty]->traverseProperties($splittedPropertyPath);