getKeyId() public méthode

Get the key ID
public getKeyId ( ) : string
Résultat string
 /**
  * Create a fully qualified Key path
  *
  * @equivalent ProtoBuf::configureKey() ?
  *
  * @param Entity $obj_gds_entity
  * @param bool $bol_first_node
  * @return array
  * @throws \Exception
  */
 private function buildKeyPath(Entity $obj_gds_entity, $bol_first_node = TRUE)
 {
     $str_kind = $obj_gds_entity->getKind();
     if (null === $str_kind) {
         if ($bol_first_node) {
             $str_kind = $this->obj_schema->getKind();
         } else {
             throw new \Exception('Could not build full key path, no Kind set on (nth node) GDS Entity');
         }
     }
     // Build the first node in the Key Path from this entity
     $arr_full_path = [$this->createKeyPathElement(['kind' => $str_kind, 'id' => $obj_gds_entity->getKeyId(), 'name' => $obj_gds_entity->getKeyName()])];
     // Add any ancestors to the Key Path
     $mix_ancestry = $obj_gds_entity->getAncestry();
     if (is_array($mix_ancestry)) {
         foreach ((array) $obj_gds_entity->getAncestry() as $arr_ancestor_element) {
             array_unshift($arr_full_path, $this->createKeyPathElement($arr_ancestor_element));
         }
     } elseif ($mix_ancestry instanceof Entity) {
         $arr_full_path = array_merge($this->buildKeyPath($mix_ancestry, FALSE), $arr_full_path);
     }
     return $arr_full_path;
 }
Exemple #2
0
 /**
  * Create a fully qualified Key path
  *
  * @equivalent ProtoBuf::configureKey() ?
  *
  * @param Entity $obj_gds_entity
  * @param bool $bol_first_node
  * @return array
  * @throws \Exception
  */
 public function buildKeyPath(Entity $obj_gds_entity, $bol_first_node = true)
 {
     $str_kind = $obj_gds_entity->getKind();
     if (null === $str_kind) {
         if ($bol_first_node) {
             if ($this->obj_schema instanceof Schema) {
                 $str_kind = $this->obj_schema->getKind();
             } else {
                 throw new \Exception('Could not build full key path, no Schema set on Mapper and no Kind set on Entity');
             }
         } else {
             throw new \Exception('Could not build full key path, no Kind set on (nth node) GDS Entity');
         }
     }
     // Build the first node in the Key Path from this entity
     $arr_full_path = [$this->createKeyPathElement(['kind' => $str_kind, 'id' => $obj_gds_entity->getKeyId(), 'name' => $obj_gds_entity->getKeyName()])];
     // Add any ancestors to the Key Path
     $mix_ancestry = $obj_gds_entity->getAncestry();
     if (is_array($mix_ancestry)) {
         $arr_ancestor_path = [];
         foreach ($mix_ancestry as $arr_ancestor_element) {
             $arr_ancestor_path[] = $this->createKeyPathElement($arr_ancestor_element);
         }
         $arr_full_path = array_merge($arr_ancestor_path, $arr_full_path);
     } elseif ($mix_ancestry instanceof Entity) {
         $arr_full_path = array_merge($this->buildKeyPath($mix_ancestry, false), $arr_full_path);
     }
     return $arr_full_path;
 }
 /**
  * Populate a ProtoBuf Key from a GDS Entity
  *
  * @param Key $obj_key
  * @param Entity $obj_gds_entity
  * @return Key
  */
 public function configureGoogleKey(Key $obj_key, Entity $obj_gds_entity)
 {
     // Add any ancestors FIRST
     $mix_ancestry = $obj_gds_entity->getAncestry();
     if (is_array($mix_ancestry)) {
         // @todo Get direction right!
         foreach ($mix_ancestry as $arr_ancestor_element) {
             $this->configureGoogleKeyPathElement($obj_key->addPathElement(), $arr_ancestor_element);
         }
     } elseif ($mix_ancestry instanceof Entity) {
         // Recursive
         $this->configureGoogleKey($obj_key, $mix_ancestry);
     }
     // Root Key (must be the last in the chain)
     $this->configureGoogleKeyPathElement($obj_key->addPathElement(), ['kind' => $obj_gds_entity->getKind(), 'id' => $obj_gds_entity->getKeyId(), 'name' => $obj_gds_entity->getKeyName()]);
     return $obj_key;
 }