private static Map<Object,Object> translateToBytecode(final Map<Object,Object> conf) { final Map<Object,Object> newConf = new LinkedHashMap<>(conf.size()); conf.entrySet().forEach(entry -> { if (entry.getValue() instanceof Traversal) newConf.put(entry.getKey(), ((Traversal) entry.getValue()).asAdmin().getBytecode()); else newConf.put(entry.getKey(), entry.getValue()); }); return newConf; } }
/** * Submits the traversal asynchronously to a "remote" using {@link RemoteConnection#submitAsync(Bytecode)}. */ public CompletableFuture<Traversal<?, E>> promise() { try { if (null == traversalFuture.get()) { traversalFuture.set(this.remoteConnection.submitAsync(this.traversal.getBytecode()).<Traversal<?, E>>thenApply(t -> { this.remoteTraversal = (RemoteTraversal<?, E>) t; this.traversal.setSideEffects(this.remoteTraversal.getSideEffects()); return traversal; })); } return traversalFuture.get(); } catch (RemoteConnectionException rce) { throw new IllegalStateException(rce); } } }
return ((Traversal) argument).asAdmin().getBytecode(); else if (argument instanceof Map) { final Map<Object, Object> map = new LinkedHashMap<>(((Map) argument).size());
@Test @LoadGraphWith(MODERN) public void shouldFilterOnIterate() { final Traversal<Vertex,String> traversal = g.V().out().out().<String>values("name").aggregate("x").iterate(); assertFalse(traversal.hasNext()); assertEquals(2, traversal.asAdmin().getSideEffects().<BulkSet>get("x").size()); assertTrue(traversal.asAdmin().getSideEffects().<BulkSet>get("x").contains("ripple")); assertTrue(traversal.asAdmin().getSideEffects().<BulkSet>get("x").contains("lop")); assertEquals(Traversal.Symbols.none, traversal.asAdmin().getBytecode().getStepInstructions().get(traversal.asAdmin().getBytecode().getStepInstructions().size()-1).getOperator()); }
private static Map<Object,Object> translateToBytecode(final Map<Object,Object> conf) { final Map<Object,Object> newConf = new LinkedHashMap<>(conf.size()); conf.entrySet().forEach(entry -> { if (entry.getValue() instanceof Traversal) newConf.put(entry.getKey(), ((Traversal) entry.getValue()).asAdmin().getBytecode()); else newConf.put(entry.getKey(), entry.getValue()); }); return newConf; } }
@Override public Bytecode getBytecode() { return null == this.bypassTraversal ? new Bytecode() : this.bypassTraversal.getBytecode(); }
/** * Profile the traversal. * * @return the updated traversal with respective {@link ProfileSideEffectStep}. */ public default Traversal<S, TraversalMetrics> profile() { this.asAdmin().getBytecode().addStep(Symbols.profile); return this.asAdmin() .addStep(new ProfileSideEffectStep<>(this.asAdmin(), ProfileSideEffectStep.DEFAULT_METRICS_KEY)) .addStep(new SideEffectCapStep<Object, TraversalMetrics>(this.asAdmin(), ProfileSideEffectStep.DEFAULT_METRICS_KEY)); }
@Override public void serialize(final Traversal traversal, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeObject(traversal.asAdmin().getBytecode()); }
/** * Filter all traversers in the traversal. * * @return the updated traversal with respective {@link NoneStep}. */ public default Traversal<S, E> none() { this.asAdmin().getBytecode().addStep(Symbols.none); return this.asAdmin().addStep(new NoneStep<>(this.asAdmin())); }
return internalTranslate("__", (Bytecode) object); else if (object instanceof Traversal) return convertToString(((Traversal) object).asAdmin().getBytecode()); else if (object instanceof String) { return (((String) object).contains("\"") ? "\"\"\"" + StringEscapeUtils.escapeJava((String) object) + "\"\"\"" : "\"" + StringEscapeUtils.escapeJava((String) object) + "\"")
return this.internalTranslate("__", (Bytecode) object); else if (object instanceof Traversal) return convertToString(((Traversal) object).asAdmin().getBytecode()); else if (object instanceof String) return ((String) object).contains("\"") ? "\"\"\"" + object + "\"\"\"" : "\"" + object + "\"";
final Bytecode bytecode = removeTranslationStrategy(insertBindingsForTesting(traversal.getBytecode())); assertEquals(removeTranslationStrategy(traversal.getBytecode()), translatedTraversal.getBytecode());
@Override public CompletableFuture<ResultSet> submitAsync(final Traversal traversal) { return submitAsync(traversal.asAdmin().getBytecode()); }
public DefaultTraversal(final TraversalSource traversalSource, final DefaultTraversal.Admin<S,E> traversal) { this(traversalSource.getGraph(), traversalSource.getStrategies(), traversal.getBytecode()); steps.addAll(traversal.getSteps()); }
@Override public Bytecode getBytecode() { return null == this.bypassTraversal ? new Bytecode() : this.bypassTraversal.getBytecode(); }
@Test @LoadGraphWith(MODERN) public void shouldFilterOnIterate() { final Traversal<Vertex,String> traversal = g.V().out().out().<String>values("name").aggregate("x").iterate(); assertFalse(traversal.hasNext()); assertEquals(2, traversal.asAdmin().getSideEffects().<BulkSet>get("x").size()); assertTrue(traversal.asAdmin().getSideEffects().<BulkSet>get("x").contains("ripple")); assertTrue(traversal.asAdmin().getSideEffects().<BulkSet>get("x").contains("lop")); assertEquals(Traversal.Symbols.none, traversal.asAdmin().getBytecode().getStepInstructions().get(traversal.asAdmin().getBytecode().getStepInstructions().size()-1).getOperator()); }
/** * Filter all traversers in the traversal. * * @return the updated traversal with respective {@link NoneStep}. */ public default Traversal<S, E> none() { this.asAdmin().getBytecode().addStep(Symbols.none); return this.asAdmin().addStep(new NoneStep<>(this.asAdmin())); }
@Override public void serialize(final Traversal traversal, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeObject(traversal.asAdmin().getBytecode()); }
@Override public void serialize(final Traversal traversal, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeObject(traversal.asAdmin().getBytecode()); }
/** * Profile the traversal. * * @return the updated traversal with respective {@link ProfileSideEffectStep}. */ public default Traversal<S, TraversalMetrics> profile() { this.asAdmin().getBytecode().addStep(Symbols.profile); return this.asAdmin() .addStep(new ProfileSideEffectStep<>(this.asAdmin(), ProfileSideEffectStep.DEFAULT_METRICS_KEY)) .addStep(new SideEffectCapStep<Object, TraversalMetrics>(this.asAdmin(), ProfileSideEffectStep.DEFAULT_METRICS_KEY)); }