protected function hydrateResult(Result $result)
 {
     $repo = $this->em->getRepository($this->className);
     $instances = [];
     foreach ($result->records() as $record) {
         $instances[] = $repo->hydrate($record, true, 'end', $this->className, true, true);
     }
     return $instances;
 }
예제 #2
0
 /**
  * @param \GraphAware\Common\Result\Result $result
  *
  * @return \GraphAware\Common\Type\NodeInterface[]
  */
 public function buildBlackList(Result $result)
 {
     $nodes = [];
     foreach ($result->records() as $record) {
         if ($record->hasValue($this->itemResultName()) && $record->value($this->itemResultName() instanceof NodeInterface)) {
             $nodes[] = $record->value($this->itemResultName());
         }
     }
     return $nodes;
 }
 public final function handleResultSet(Node $input, Result $result, Recommendations $recommendations)
 {
     $recordsMap = [];
     foreach ($result->records() as $i => $record) {
         if (!$record->hasValue($this->idResultName())) {
             throw new \InvalidArgumentException(sprintf('The record does not contain a value with key "%s" in "%s"', $this->idResultName(), $this->name()));
         }
         $recordsMap[$record->get($this->idResultName())] = $record;
     }
     foreach ($recommendations->getItems() as $recommendation) {
         if (array_key_exists($recommendation->item()->identity(), $recordsMap)) {
             $this->postProcess($input, $recommendation, $recordsMap[$recommendation->item()->identity()]);
         }
     }
 }
 protected function hydrateResult(Result $result)
 {
     $startNodeMetadata = $this->em->getClassMetadataFor($this->relationshipEntityMetadata->getStartNode());
     $endNodeMetadata = $this->em->getClassMetadataFor($this->relationshipEntityMetadata->getEndNode());
     $repo = $this->em->getRepository(get_class($this->baseInstance));
     $identifier = 'rel_' . $this->relationshipMetadata->getPropertyName() . '_' . $this->relationshipEntityMetadata->getType();
     $instances = [];
     foreach ($result->records() as $record) {
         foreach ($record->get($identifier) as $i) {
             $instance = $repo->hydrateRelationshipEntity($this->relationshipEntityMetadata, $i, $startNodeMetadata, $endNodeMetadata, $this->baseInstance, $this->relationshipMetadata, $this->baseInstance->getId());
             $instances[] = $instance;
         }
     }
     return $instances;
 }
예제 #5
0
 private function hydrateResultSet(Result $result)
 {
     $entities = [];
     foreach ($result->records() as $record) {
         $entities[] = $this->hydrate($record);
     }
     return $entities;
 }
예제 #6
0
 /**
  * @param \GraphAware\Common\Result\Result $result
  *
  * @return \GraphAware\Common\Type\Node
  */
 public function validateInput($result)
 {
     if (count($result->records()) < 1 || !$result->getRecord()->value('input') instanceof Node) {
         throw new \InvalidArgumentException(sprintf('Node not found'));
     }
     return $result->getRecord()->value('input');
 }