public Object execute(Object currentValue, OCommandContext ctx) { if (currentValue instanceof OResult) { return execute((OResult) currentValue, ctx); } if (currentValue instanceof OIdentifiable) { return execute((OIdentifiable) currentValue, ctx); } if (currentValue instanceof Map) { return execute((Map) currentValue, ctx); } if (currentValue instanceof OCommandContext) { return execute((OCommandContext) currentValue); } if (currentValue instanceof Iterable) { return execute((Iterable) currentValue, ctx); } if (currentValue instanceof Iterator) { return execute((Iterator) currentValue, ctx); } if (currentValue == null) { return execute((OResult) null, ctx); } return null; // TODO other cases? }
public Object execute(Iterable iterable, OCommandContext ctx) { if (star) { return null; } List<Object> result = new ArrayList<>(); for (Object o : iterable) { result.add(execute(o, ctx)); } return result; }
public Object execute(OResult iCurrentRecord, OCommandContext ctx) { if (levelZero != null) { return levelZero.execute(iCurrentRecord, ctx); } if (suffix != null) { return suffix.execute(iCurrentRecord, ctx); } return null; }
public Object execute(OIdentifiable iCurrentRecord, OCommandContext ctx) { if (levelZero != null) { return levelZero.execute(iCurrentRecord, ctx); } if (suffix != null) { return suffix.execute(iCurrentRecord, ctx); } return null; }
public Object execute(Iterator iterator, OCommandContext ctx) { if (star) { return null; } List<Object> result = new ArrayList<>(); while (iterator.hasNext()) { result.add(execute(iterator.next(), ctx)); } if (iterator instanceof OResultSet) { try { ((OResultSet) iterator).reset(); } catch (Exception ignore) { } } return result; }
return methodCall.execute(target, ctx); } else if (suffix != null) { return suffix.execute(target, ctx); } else if (arrayRange != null) { return arrayRange.execute(currentRecord, target, ctx);
public Object execute(OResult iCurrentRecord, Object result, OCommandContext ctx) { if (ctx.getVariable("$current") == null) { ctx.setVariable("$current", iCurrentRecord); } if (methodCall != null) { result = methodCall.execute(result, ctx); } else if (suffix != null) { result = suffix.execute(result, ctx); } else if (arrayRange != null) { result = arrayRange.execute(iCurrentRecord, result, ctx); } else if (condition != null) { result = filterByCondition(result, ctx); } else if (arraySingleValues != null) { result = arraySingleValues.execute(iCurrentRecord, result, ctx); } else if (rightBinaryCondition != null) { result = rightBinaryCondition.execute(iCurrentRecord, result, ctx); } if (next != null) { result = next.execute(iCurrentRecord, result, ctx); } return result; }
public Object execute(OIdentifiable iCurrentRecord, Object result, OCommandContext ctx) { if (ctx.getVariable("$current") == null) { ctx.setVariable("$current", iCurrentRecord); } if (methodCall != null) { result = methodCall.execute(result, ctx); } else if (suffix != null) { result = suffix.execute(result, ctx); } else if (arrayRange != null) { result = arrayRange.execute(iCurrentRecord, result, ctx); } else if (condition != null) { result = filterByCondition(result, ctx); } else if (arraySingleValues != null) { result = arraySingleValues.execute(iCurrentRecord, result, ctx); } else if (rightBinaryCondition != null) { result = rightBinaryCondition.execute(iCurrentRecord, result, ctx); } if (next != null) { result = next.execute(iCurrentRecord, result, ctx); } return result; }