/** * * * @param EntityMetadata $entityMetadata * @param object $entity * @return {string:mixed} */ public function export(EntityMetadata $entityMetadata, $entity) { $entityClass = $entityMetadata->getClass(); $this->entity = $entity; $this->loadReflectionClass($entityClass); $row = array(); foreach ($entityMetadata->getColumns() as $entityColumn) { $propertyName = $entityColumn->getPropertyName(); $columnName = $entityColumn->getColumnName(); $value = $this->getPropertyValue($propertyName); $row[$columnName] = $value; } return $row; }
/** * * * @param EntityMetadata $entityMetadata * @param {string:mixed} $row * @return object */ public function import(EntityMetadata $entityMetadata, array $row) { $this->entityClass = $entityMetadata->getClass(); $this->entity = new $this->entityClass(); $this->loadReflectionClass(); foreach ($entityMetadata->getColumns() as $column) { $columnName = $column->getColumnName(); if (array_key_exists($columnName, $row)) { $propertyName = $column->getPropertyName(); $value = $row[$columnName]; $value = $this->setValueType($value, $column); $this->getReflectionProperty($propertyName)->setValue($this->entity, $value); } } return $this->entity; }
/** * * * @return EntityMetadata $entityMetadata */ private function storeEntityMetadata(EntityMetadata $entityMetadata) { $this->entityMetadatas[$entityMetadata->getClass()] = $entityMetadata; }
/** * * * @param object $entity * @return \perf\Db\QueryFilter */ private function getPrimaryKeyFilter($entity) { return $this->entityMetadata->getPrimaryKey()->getFilter($this->connection, $entity); }