Ejemplo n.º 1
0
 /**
  * Creates a value from a given iteration
  *
  * @param  util.address.Iteration $iteration
  * @return var
  */
 public function create($iteration)
 {
     if (null !== $this->path && $this->path !== $iteration->path()) {
         throw new IllegalStateException('Enclosing element mismatch, expecting "' . $this->path . '", have "' . $iteration->path() . '"');
     }
     $iteration->next();
     return $iteration->input();
 }
Ejemplo n.º 2
0
 /**
  * Creates a value from a given iteration
  *
  * @param  util.address.Iteration $iteration
  * @return var
  */
 public function create($iteration)
 {
     $return = clone $this->creation;
     $base = $iteration->path() . '/';
     $length = strlen($base);
     $this->next($return, '.', $iteration);
     while (0 === strncmp($iteration->path(), $base, $length)) {
         $this->next($return, substr($iteration->path(), $length), $iteration);
     }
     return $return->create();
 }
Ejemplo n.º 3
0
 /**
  * Creates a value from a given iteration
  *
  * @param  util.address.Iteration $iteration
  * @return var
  */
 public function create($iteration)
 {
     if ($this->match) {
         $match = array_map(function ($path) use($iteration) {
             return $iteration->base() . $path;
         }, $this->match);
     } else {
         $match = [$iteration->path()];
     }
     $r = [];
     while (in_array($iteration->path(), $match, true)) {
         $r[] = $iteration->next($this->component);
     }
     return $r;
 }