Exakat\Analyzer\Analyzer::goToAllParents PHP Метод

goToAllParents() публичный Метод

public goToAllParents ( $self = self::INCLUDE_SELF )
    public function goToAllParents($self = self::INCLUDE_SELF)
    {
        //        $this->addMethod('until(__.out("EXTENDS").in("DEFINITION").count().is(eq(0))).repeat( out("EXTENDS").in("DEFINITION") ).emit()');
        if ($self === self::INCLUDE_SELF) {
            $this->addMethod('repeat( out("EXTENDS", "IMPLEMENTS").in("DEFINITION") ).emit().times(' . self::MAX_LOOPING . ')');
        } else {
            $this->addMethod('filter{true}.emit().repeat( out("EXTENDS", "IMPLEMENTS").in("DEFINITION") ).times(' . self::MAX_LOOPING . ')');
        }
        //        $this->addMethod('repeat( out("EXTENDS").in("DEFINITION") ).times(4)');
        //        $this->addMethod('sideEffect{ allParents = []; }.until(__.out("EXTENDS").in("DEFINITION").count().is(eq(0)) ).emit().repeat( sideEffect{allParents.push(it.get().id()); }.out("EXTENDS").in("DEFINITION").filter{ !(it.get().id() in allParents); } )');
        //        $this->addMethod('sideEffect{ allParents = []; }.until(__.out("EXTENDS").in("DEFINITION").count().is(eq(0)) ).repeat( sideEffect{allParents.push(it.get().id()); }.out("EXTENDS").in("DEFINITION").filter{ !(it.get().id() in allParents); } ).emit()');
        return $this;
    }
Analyzer