public Object executeReverse(Object targetObjects, OCommandContext ctx) { if (!isBidirectional()) { throw new UnsupportedOperationException(); } String straightName = methodName.getStringValue(); if (straightName.equalsIgnoreCase("out")) { return execute(targetObjects, ctx, "in", params, null); } if (straightName.equalsIgnoreCase("in")) { return execute(targetObjects, ctx, "out", params, null); } if (straightName.equalsIgnoreCase("both")) { return execute(targetObjects, ctx, "both", params, null); } if (straightName.equalsIgnoreCase("outE")) { return execute(targetObjects, ctx, "outV", params, null); } if (straightName.equalsIgnoreCase("outV")) { return execute(targetObjects, ctx, "outE", params, null); } if (straightName.equalsIgnoreCase("inE")) { return execute(targetObjects, ctx, "inV", params, null); } if (straightName.equalsIgnoreCase("inV")) { return execute(targetObjects, ctx, "inE", params, null); } throw new UnsupportedOperationException("Invalid reverse traversal: " + methodName); }
public Object execute(Object targetObjects, OCommandContext ctx) { return execute(targetObjects, ctx, methodName.getStringValue(), params, null); }
public Object execute(Object targetObjects, Iterable<OIdentifiable> iPossibleResults, OCommandContext ctx) { return execute(targetObjects, ctx, methodName.getStringValue(), params, iPossibleResults); }
protected Iterable<OIdentifiable> traversePatternEdge(OMatchStatement.MatchContext matchContext, OIdentifiable startingPoint, OCommandContext iCommandContext) { Iterable possibleResults = null; if (filter != null) { OIdentifiable matchedNode = matchContext.matched.get(filter.getAlias()); if (matchedNode != null) { possibleResults = Collections.singleton(matchedNode); } else if (matchContext.matched.containsKey(filter.getAlias())) { possibleResults = Collections.emptySet();//optional node, the matched element is a null value } else { possibleResults = matchContext.candidates == null ? null : matchContext.candidates.get(filter.getAlias()); } } Object qR = this.method.execute(startingPoint, possibleResults, iCommandContext); return (qR instanceof Iterable && !(qR instanceof ODocument)) ? (Iterable) qR : Collections.singleton((OIdentifiable) qR); }
Object nextSteps = method.execute(o, possibleResults, iCommandContext); if (nextSteps instanceof Collection) { ((Collection) nextSteps).stream().map(x -> toOResultInternal(x)).filter(Objects::nonNull)
private Object calculateLocal(OResult currentRecord, Object target, OCommandContext ctx) { if (methodCall != null) { return methodCall.execute(target, ctx); } else if (suffix != null) { return suffix.execute(target, ctx);
Object qR; try { qR = this.item.getMethod().execute(startingPoint, possibleResults, iCommandContext); } finally { iCommandContext.setVariable("$current", prevCurrent);
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; }