/** * @param string $className */ private function validateCollection($className) { if (!$this->collection) { throw new LiteObjectException("Collection of mappers must be set. See method Mapper::setMappersCollection."); } if (!$this->collection->has($className) && !$this->collection->getDefault()) { throw new LiteObjectException("Mappers collection missing map for target class name: {$className}. " . 'And no default mapper defined'); } }
private static function getDataFromLiteObject(IMapperCollection $collection, IObjectToTargetBuilder $builder, LiteObject $value, IValuesProcessorContainer $container) { $fieldMapper = $collection->getOrDefault($value); $fields = self::getFields($value, $container); foreach ($fields as $fieldName => $fieldValue) { $dataField = $fieldMapper->mapFromObjectField($fieldName); if (!is_object($fieldValue) && !is_array($fieldValue)) { $builder->set($dataField, $fieldValue); } else { $builder->set($dataField, self::getDataFromValue($collection, $builder, $fieldValue, $container)); } } return $builder->get(); }