@Override public void add(final String key, final Object value) { checkKeyValue(key, value); if (!this.inExecute && ("incr".equals(key) || "and".equals(key) || "or".equals(key))) throw Memory.Exceptions.memoryIsCurrentlyImmutable(); else if (!this.inExecute) throw Memory.Exceptions.memoryAddOnlyDuringVertexProgramExecute(key); this.currentMap.compute(key, (k, v) -> null == v ? value : this.memoryKeys.get(key).getReducer().apply(v, value)); }
@Override public void workerIterationEnd(final Memory memory) { assertEquals(memory.getIteration() * 6, memory.<Integer>get("test").intValue()); try { memory.set("test", memory.getIteration()); fail("Should throw an immutable memory exception"); } catch (IllegalStateException e) { assertEquals(Memory.Exceptions.memoryIsCurrentlyImmutable().getMessage(), e.getMessage()); } }
@Override public void workerIterationStart(final Memory memory) { assertEquals(memory.getIteration() * 6, memory.<Integer>get("test").intValue()); try { memory.add("test", memory.getIteration()); fail("Should throw an immutable memory exception"); } catch (IllegalStateException e) { assertEquals(Memory.Exceptions.memoryIsCurrentlyImmutable().getMessage(), e.getMessage()); } }
@Override public void incrIteration() { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void add(final String key, final Object value) throws IllegalArgumentException, IllegalStateException { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void setRuntime(final long runtime) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void setIteration(final int iteration) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void set(final String key, final Object value) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void workerIterationStart(final Memory memory) { assertEquals(memory.getIteration() * 6, memory.<Integer>get("test").intValue()); try { memory.add("test", memory.getIteration()); fail("Should throw an immutable memory exception"); } catch (IllegalStateException e) { assertEquals(Memory.Exceptions.memoryIsCurrentlyImmutable().getMessage(), e.getMessage()); } }
@Override public void workerIterationEnd(final Memory memory) { assertEquals(memory.getIteration() * 6, memory.<Integer>get("test").intValue()); try { memory.set("test", memory.getIteration()); fail("Should throw an immutable memory exception"); } catch (IllegalStateException e) { assertEquals(Memory.Exceptions.memoryIsCurrentlyImmutable().getMessage(), e.getMessage()); } }
@Test @LoadGraphWith(MODERN) public void shouldHaveImmutableComputeResultMemory() throws Exception { final ComputerResult results = graphProvider.getGraphComputer(graph).program(new VertexProgramB()).submit().get(); try { results.memory().set("set", "test"); } catch (Exception ex) { validateException(Memory.Exceptions.memoryIsCurrentlyImmutable(), ex); } try { results.memory().add("incr", 1); } catch (Exception ex) { validateException(Memory.Exceptions.memoryIsCurrentlyImmutable(), ex); } try { results.memory().add("and", true); } catch (Exception ex) { validateException(Memory.Exceptions.memoryIsCurrentlyImmutable(), ex); } try { results.memory().add("or", false); } catch (Exception ex) { validateException(Memory.Exceptions.memoryIsCurrentlyImmutable(), ex); } }
@Override public void add(final String key, final Object value) throws IllegalArgumentException, IllegalStateException { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void setIteration(final int iteration) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void set(final String key, final Object value) throws IllegalArgumentException, IllegalStateException { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void setRuntime(final long runtime) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void incrIteration() { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void add(final String key, final Object value) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void set(final String key, final Object value) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void setIteration(final int iteration) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }
@Override public void setRuntime(final long runtime) { throw Memory.Exceptions.memoryIsCurrentlyImmutable(); }