@Override public boolean visitMiddle(Select o) { WikittyQueryFunction f = null; if (o.getFunction() != null) { List<WikittyQueryFunction> fs = getAndClearFunction(1); // normalement il ne devrait rester qu'une element dans functions et on // vient de le prendre, si ce n'est pas le cas, c'est un probleme if (!functions.isEmpty()) { throw new IllegalStateException("function list must be empty here"); } f = fs.get(0); } getQueryMaker().select(f); getQueryMaker().where(); return true; }
@Override public void visitLeave(WikittyQueryFunction function, boolean enterOrMiddleResult) { List<WikittyQueryFunction> args = getAndClearFunction(function.getArgs().size()); WikittyQueryFunction f = WikittyQueryFunction.create(function.getMethodName(), function.getName(), args); addFunction(f); }