@Override public <V> V get(final String key) throws IllegalArgumentException { return sideEffects.get(key); }
public default <V> void forEach(final BiConsumer<String, V> biConsumer) { this.keys().forEach(key -> biConsumer.accept(key, this.<V>get(key))); }
/** * Get a particular value from the side-effects of the traverser (thus, traversal). * * @param sideEffectKey the key of the value to get from the sideEffects * @param <A> the type of the returned object * @return the object in the sideEffects of the respective key */ public default <A> A sideEffects(final String sideEffectKey) throws IllegalArgumentException { return this.asAdmin().getSideEffects().<A>get(sideEffectKey); }
@Override public <V> V get(final String key) throws IllegalArgumentException { return (null != this.memory && this.memory.exists(key)) ? this.memory.get(key) : this.sideEffects.get(key); }
private DefaultTraversalMetrics getTraversalMetricsFromSideEffects() { return (DefaultTraversalMetrics) this.getTraversal().getSideEffects().get(this.sideEffectKey); }
public default <S> S getScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) throws IllegalArgumentException { final Object object = traverser.get(); if (object instanceof Map && ((Map<String, S>) object).containsKey(key)) return ((Map<String, S>) object).get(key); /// if (traverser.getSideEffects().exists(key)) return traverser.getSideEffects().get(key); /// final Path path = traverser.path(); if (path.hasLabel(key)) return path.get(pop, key); /// throw new IllegalArgumentException("Neither the sideEffects, map, nor path has a " + key + "-key: " + this); }
@Test @LoadGraphWith(MODERN) @IgnoreEngine(TraversalEngine.Type.COMPUTER) public void g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profileXmetricsX() { final Traversal<Vertex, Vertex> traversal = get_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); // This assertion is really only meant for tinkergraph if (graph.getClass().getSimpleName().equals("TinkerGraph")) assertEquals("There should be 7 steps in this traversal (counting injected profile steps).", 7, traversal.asAdmin().getSteps().size()); final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(traversalMetrics); }
metrics = (TraversalMetrics) t.asAdmin().getSideEffects().get("~metrics").get(); verifyMetrics(metrics.getMetrics(0), true, false); verifyMetrics(metrics.getMetrics(1), true, true); metrics = (TraversalMetrics) t.asAdmin().getSideEffects().get("~metrics").get(); verifyMetrics(metrics.getMetrics(0), true, false); verifyMetrics(metrics.getMetrics(1), true, true); metrics = (TraversalMetrics) t.asAdmin().getSideEffects().get("~metrics").get(); metrics = (TraversalMetrics) t.asAdmin().getSideEffects().get("~metrics").get();
@Test @LoadGraphWith(MODERN) @IgnoreEngine(TraversalEngine.Type.COMPUTER) public void g_VX1X_out_sideEffectXincr_cX_name() { final Traversal<Vertex, String> traversal = get_g_VX1X_out_sideEffectXincr_cX_name(convertToVertexId("marko")); printTraversalForm(traversal); assert_g_v1_out_sideEffectXincr_cX_valueXnameX(traversal); assertEquals(new Integer(3), traversal.asAdmin().getSideEffects().<List<Integer>>get("c").get(0)); checkSideEffects(traversal.asAdmin().getSideEffects(), "c", ArrayList.class); }
@Test @LoadGraphWith(MODERN) public void g_withSideEffectXa_0_sumX_V_out_sideEffectXsideEffectsXa_bulkXX_capXaX() { final Traversal<Vertex, Integer> traversal = get_g_withSideEffectXa_0_sumX_V_out_sideEffectXsideEffectsXa_bulkXX_capXaX(); assertEquals(6, traversal.next().intValue()); assertFalse(traversal.hasNext()); assertEquals(6, traversal.asAdmin().getSideEffects().<Integer>get("a").intValue()); assertEquals(1, traversal.asAdmin().getSideEffects().keys().size()); checkSideEffects(traversal.asAdmin().getSideEffects(), "a", Integer.class); }
@Test @LoadGraphWith(MODERN) public void g_withSideEffectXa_0X_V_out_sideEffectXsideEffectsXa_1XX_capXaX() { final Traversal<Vertex, Integer> traversal = get_g_withSideEffectXa_0X_V_out_sideEffectXsideEffectsXa_1XX_capXaX(); assertEquals(1, traversal.next().intValue()); assertFalse(traversal.hasNext()); assertEquals(1, traversal.asAdmin().getSideEffects().<Integer>get("a").intValue()); assertEquals(1, traversal.asAdmin().getSideEffects().keys().size()); checkSideEffects(traversal.asAdmin().getSideEffects(), "a", Integer.class); }
@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()); }
@Test @LoadGraphWith(MODERN) public void modern_V_out_out_profileXmetricsX() { final Traversal<Vertex, Vertex> traversal = get_g_V_out_out_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); validate_g_V_out_out_profile_modern(traversal, traversal.asAdmin().getSideEffects().get(METRICS_KEY)); }
@Test @LoadGraphWith(GRATEFUL) public void grateful_V_out_out_profileXmetricsX() { final Traversal<Vertex, Vertex> traversal = get_g_V_out_out_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_out_out_profile_grateful(traversalMetrics); }
@Test @LoadGraphWith(MODERN) public void g_V_whereXinXcreatedX_count_isX1XX_name_profileXmetricsX() { final Traversal<Vertex, String> traversal = get_g_V_whereXinXcreatedX_count_isX1XX_name_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_whereXinXcreatedX_count_isX1XX_name_profile(traversal, traversalMetrics); }
@Test @LoadGraphWith(MODERN) public void g_V_repeat_both_profileXmetricsX() { final Traversal<Vertex, Vertex> traversal = get_g_V_repeatXbothX_timesX3X_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_repeat_both_modern_profile(traversalMetrics, traversal.asAdmin().getStrategies().toList().contains(RepeatUnrollStrategy.instance()) && !traversal.asAdmin().getStrategies().toList().contains(ComputerVerificationStrategy.instance())); }
@Test @LoadGraphWith(MODERN) public void testProfileStrategyCallbackSideEffect() { final Traversal<Vertex, Vertex> t = get_g_V_out_out_profileXmetricsX(); MockStep mockStep = new MockStep(t.asAdmin()); t.asAdmin().addStep(3, mockStep); t.iterate(); assertTrue(mockStep.callbackCalled); if (!onGraphComputer(t.asAdmin())) { final TraversalMetrics traversalMetrics = t.asAdmin().getSideEffects().get(METRICS_KEY); assertEquals(100, traversalMetrics.getMetrics(3).getCount("bogusCount").longValue()); } }
private void checkSideEffects() { assertEquals(0, this.haltedTraversers.size()); assertTrue(this.haltedTraversers.isEmpty()); final TraversalSideEffects sideEffects = this.traversal.get().getSideEffects(); assertTrue(sideEffects instanceof MemoryTraversalSideEffects); assertEquals(1, sideEffects.keys().size()); assertFalse(sideEffects.exists(TraversalVertexProgram.HALTED_TRAVERSERS)); assertTrue(sideEffects.exists("x")); final BulkSet<String> bulkSet = sideEffects.get("x"); assertEquals(4, bulkSet.size()); assertEquals(4, bulkSet.get("java")); } }
@Test @LoadGraphWith(MODERN) @IgnoreEngine(TraversalEngine.Type.COMPUTER) public void g_VX1X_sideEffectXstore_aX_name() { final Traversal<Vertex, String> traversal = get_g_VX1X_sideEffectXstore_aX_name(convertToVertexId("marko")); printTraversalForm(traversal); assertEquals(traversal.next(), "marko"); assertFalse(traversal.hasNext()); assertEquals(convertToVertexId("marko"), traversal.asAdmin().getSideEffects().<List<Vertex>>get("a").get(0).id()); checkSideEffects(traversal.asAdmin().getSideEffects(), "a", ArrayList.class); }