protected function fetch() { $v0 = $this->it0->current(); $v1 = $this->it1->current(); $k0 = $this->it0->key(); $k1 = $this->it1->key(); $this->v = $this->valueJoinSelector->select($v0, $v1, $k0, $k1); $this->k = $this->keyJoinSelector->select($v0, $v1, $k0, $k1); }
protected function fetchInner() { if ($this->valid()) { $innerV = $this->inner->current(); $innerK = $this->inner->key(); $this->v = $this->valueJoinSelector->select($this->outerV, $innerV, $this->outerK, $innerK); $this->k = $this->keyJoinSelector->select($this->outerV, $innerV, $this->outerK, $innerK); } }
protected function fetchIfValid() { if ($this->outer->valid()) { $outerV = $this->outer->current(); $outerK = $this->outer->key(); $compareKey = $this->outerCompareKeySelector->select($outerV, $outerK); $inners = $this->lookup->get($compareKey); $inners = new GroupingGinq(IteratorUtil::iterator($inners), $compareKey); $this->v = $this->resultValueSelector->select($outerV, $inners, $outerK, $compareKey); $this->k = $this->outer->key(); } }