@Override public Iterable<Edge> getEdges(FetchHints fetchHints, final Long endTime, final Authorizations authorizations) { return new ConvertingIterable<InMemoryEdge, Edge>(this.edges.getAll(InMemoryGraph.this, fetchHints, endTime, authorizations)) { @Override protected Edge convert(InMemoryEdge o) { return o; } }; }
@Override protected Iterator<InMemoryTableEdge> createIterator() { return edges.getAllTableElements().iterator(); } };
@Override public Iterable<InMemoryTableEdge> getAllTableElements() { return new ConvertingIterable<InMemoryTableElement<InMemoryEdge>, InMemoryTableEdge>(super.getRowValues()) { @Override protected InMemoryTableEdge convert(InMemoryTableElement<InMemoryEdge> inMemoryTableElement) { return ((SqlTableEdge) inMemoryTableElement).asInMemoryTableElement(); } }; } }
InMemoryTableElement edgeTableElement = this.edges.getTableElement(edgeBuilder.getElementId()); boolean isNew = false; if (edgeTableElement == null) { isNew = true; edges.append( edgeBuilder.getElementId(), new AlterVisibilityMutation(incrementingTimestamp++, edgeBuilder.getVisibility()), ); } else { edges.append(edgeBuilder.getElementId(), new ElementTimestampMutation(incrementingTimestamp++)); edges.append(edgeBuilder.getElementId(), new AlterEdgeLabelMutation(incrementingTimestamp, edgeBuilder.getNewEdgeLabel())); InMemoryEdge edge = this.edges.get(InMemoryGraph.this, edgeBuilder.getElementId(), FetchHints.ALL_INCLUDING_HIDDEN, authorizations); if (isNew && hasEventListeners()) { fireGraphEvent(new AddEdgeEvent(InMemoryGraph.this, edge));
@Override public void softDeleteEdge(Edge edge, Long timestamp, Authorizations authorizations) { checkNotNull(edge, "Edge cannot be null"); if (!((InMemoryEdge) edge).canRead(authorizations)) { return; } if (timestamp == null) { timestamp = IncreasingTime.currentTimeMillis(); } this.edges.getTableElement(edge.getId()).appendSoftDeleteMutation(timestamp); getSearchIndex().deleteElement(this, edge, authorizations); if (hasEventListeners()) { fireGraphEvent(new SoftDeleteEdgeEvent(this, edge)); } }
protected InMemoryGraph(InMemoryGraphConfiguration configuration, IdGenerator idGenerator, SearchIndex searchIndex) { this( configuration, idGenerator, searchIndex, new InMemoryVertexTable(), new InMemoryEdgeTable(), new MapInMemoryExtendedDataTable() ); }
@Override public void truncate() { this.vertices.clear(); this.edges.clear(); getSearchIndex().truncate(this); }
@Override public void deleteEdge(Edge edge, Authorizations authorizations) { checkNotNull(edge, "Edge cannot be null"); if (!((InMemoryEdge) edge).canRead(authorizations)) { return; } deleteAllExtendedDataForElement(edge, authorizations); this.edges.remove(edge.getId()); getSearchIndex().deleteElement(this, edge, authorizations); if (hasEventListeners()) { fireGraphEvent(new DeleteEdgeEvent(this, edge)); } }
@Override public void markEdgeVisible(Edge edge, Visibility visibility, Authorizations authorizations) { if (!((InMemoryEdge) edge).canRead(authorizations)) { return; } Vertex inVertex = getVertex(edge.getVertexId(Direction.IN), FetchHints.ALL_INCLUDING_HIDDEN, authorizations); checkNotNull(inVertex, "Could not find in vertex \"" + edge.getVertexId(Direction.IN) + "\" on edge \"" + edge.getId() + "\""); Vertex outVertex = getVertex(edge.getVertexId(Direction.OUT), FetchHints.ALL_INCLUDING_HIDDEN, authorizations); checkNotNull(outVertex, "Could not find out vertex \"" + edge.getVertexId(Direction.OUT) + "\" on edge \"" + edge.getId() + "\""); this.edges.getTableElement(edge.getId()).appendMarkVisibleMutation(visibility); getSearchIndex().markElementVisible(this, edge, visibility, authorizations); if (hasEventListeners()) { fireGraphEvent(new MarkVisibleEdgeEvent(this, edge)); } }
protected InMemoryGraph(InMemoryGraphConfiguration configuration) { this( configuration, new InMemoryVertexTable(), new InMemoryEdgeTable(), new MapInMemoryExtendedDataTable() ); }
@Override public void drop() { this.vertices.clear(); this.edges.clear(); getSearchIndex().drop(this); }
@Override public void markEdgeHidden(Edge edge, Visibility visibility, Authorizations authorizations) { if (!((InMemoryEdge) edge).canRead(authorizations)) { return; } Vertex inVertex = getVertex(edge.getVertexId(Direction.IN), authorizations); checkNotNull(inVertex, "Could not find in vertex \"" + edge.getVertexId(Direction.IN) + "\" on edge \"" + edge.getId() + "\""); Vertex outVertex = getVertex(edge.getVertexId(Direction.OUT), authorizations); checkNotNull(outVertex, "Could not find out vertex \"" + edge.getVertexId(Direction.OUT) + "\" on edge \"" + edge.getId() + "\""); this.edges.getTableElement(edge.getId()).appendMarkHiddenMutation(visibility); getSearchIndex().markElementHidden(this, edge, visibility, authorizations); if (hasEventListeners()) { fireGraphEvent(new MarkHiddenEdgeEvent(this, edge)); } }