/** * @param array $source data * @param QueryBuilder $qb * @param EntityManager $em * * @return mixed Entity */ public function hydrate(array $source, QueryBuilder $qb, EntityManager $em = null) { $classname = $this->handler; $entity = new $classname(); $entity->setContenttype($this->metadata->getBoltName()); foreach ($this->metadata->getFieldMappings() as $key => $mapping) { // First step is to allow each Bolt field to transform the data. /** @var FieldTypeInterface $field */ $field = new $mapping['fieldtype']($mapping); $field->hydrate($source, $entity, $em); } return $entity; }
/** * @param QueryInterface $query * @param ClassMetadata $metadata * * @return QueryInterface */ public function query(QueryInterface $query, ClassMetadata $metadata) { foreach ($metadata->getFieldMappings() as $field) { /** @var FieldTypeInterface $fieldtype */ $fieldtype = new $field['fieldtype']($field); $fieldtype->query($query, $metadata); } return $query; }
/** * @param QueryBuilder $qb * @param ClassMetadata $metadata * * @return QueryBuilder */ public function load(QueryBuilder $qb, ClassMetadata $metadata) { foreach ($metadata->getFieldMappings() as $field) { /** @var FieldTypeInterface $fieldtype */ $fieldtype = new $field['fieldtype']($field); $fieldtype->load($qb, $metadata); } return $qb; }