public Operation exec()

in owners/src/main/java/gerrit_owners/PRED_matcher_owner_2.java [65:91]


    public Operation exec(Prolog engine) throws PrologException {
      Term a1 = engine.r1;
      Term a2 = engine.r2;
      Term a3 = engine.r3;

      Term term = engine.r1.dereference();
      String pathS = term.toString();

      @SuppressWarnings("unchecked")
      Iterator<Account.Id> iter = (Iterator<Account.Id>) ((JavaObjectTerm) a3).object();
      while (iter.hasNext()) {
        Account.Id entry = iter.next();

        SymbolTerm path = SymbolTerm.create(pathS);
        if (!a1.unify(path, engine.trail)) {
          continue;
        }

        StructureTerm user = new StructureTerm("user", new IntegerTerm(entry.get()));
        if (!a2.unify(user, engine.trail)) {
          continue;
        }

        return engine.cont;
      }
      return engine.fail();
    }