public Iterable<KeyValuePair> getEdgeTableKeyValuePairsEdge(AccumuloEdge edge) { List<KeyValuePair> results = new ArrayList<>(); ColumnVisibility edgeColumnVisibility = visibilityToAccumuloVisibility(edge.getVisibility()); Text edgeRowKey = new Text(edge.getId()); String edgeLabel = edge.getLabel(); if (edge.getNewEdgeLabel() != null) { throw new VertexiumException("Cannot get key/value pairs for label changes"); } results.add( new KeyValuePair( new Key( edgeRowKey, AccumuloEdge.CF_SIGNAL, new Text(edgeLabel), edgeColumnVisibility, edge.getTimestamp()), ElementMutationBuilder.EMPTY_VALUE)); results.add( new KeyValuePair( new Key( edgeRowKey, AccumuloEdge.CF_OUT_VERTEX, new Text(edge.getVertexId(Direction.OUT)), edgeColumnVisibility, edge.getTimestamp()), ElementMutationBuilder.EMPTY_VALUE)); results.add( new KeyValuePair( new Key( edgeRowKey, AccumuloEdge.CF_IN_VERTEX, new Text(edge.getVertexId(Direction.IN)), edgeColumnVisibility, edge.getTimestamp()), ElementMutationBuilder.EMPTY_VALUE)); if (edge.getPropertyDeleteMutations().iterator().hasNext()) { throw new VertexiumException("Cannot get key/value pairs for property deletions"); } for (PropertySoftDeleteMutation propertySoftDeleteMutation : edge.getPropertySoftDeleteMutations()) { addPropertySoftDeleteToKeyValuePairs(results, edgeRowKey, propertySoftDeleteMutation); } for (Property property : edge.getProperties()) { addPropertyToKeyValuePairs(results, edgeRowKey, property); } return results; }
private Mutation createMutationForEdge(AccumuloEdge edge, ColumnVisibility edgeColumnVisibility) { String edgeRowKey = edge.getId(); Mutation m = new Mutation(edgeRowKey); String edgeLabel = edge.getLabel(); if (edge.getNewEdgeLabel() != null) { edgeLabel = edge.getNewEdgeLabel(); m.putDelete( AccumuloEdge.CF_SIGNAL, new Text(edge.getLabel()), edgeColumnVisibility, currentTimeMillis()); } m.put( AccumuloEdge.CF_SIGNAL, new Text(edgeLabel), edgeColumnVisibility, edge.getTimestamp(), ElementMutationBuilder.EMPTY_VALUE); m.put( AccumuloEdge.CF_OUT_VERTEX, new Text(edge.getVertexId(Direction.OUT)), edgeColumnVisibility, edge.getTimestamp(), ElementMutationBuilder.EMPTY_VALUE); m.put( AccumuloEdge.CF_IN_VERTEX, new Text(edge.getVertexId(Direction.IN)), edgeColumnVisibility, edge.getTimestamp(), ElementMutationBuilder.EMPTY_VALUE); for (PropertyDeleteMutation propertyDeleteMutation : edge.getPropertyDeleteMutations()) { addPropertyDeleteToMutation(m, propertyDeleteMutation); } for (PropertySoftDeleteMutation propertySoftDeleteMutation : edge.getPropertySoftDeleteMutations()) { addPropertySoftDeleteToMutation(m, propertySoftDeleteMutation); } for (Property property : edge.getProperties()) { addPropertyToMutation(edge.getGraph(), m, edgeRowKey, property); } return m; }