use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method replaceEntityRemovesThePropertiesThatAreNotProvided.
@Test
public void replaceEntityRemovesThePropertiesThatAreNotProvided() throws Exception {
Vres vres = createConfiguration();
Collection collection = vres.getCollection("testthings").get();
UUID id = UUID.randomUUID();
TinkerPopGraphManager graphManager = newGraph().withVertex(v -> v.withTimId(id).withVre("test").withType("thing").withProperty("testthing_prop1", "oldValue1").withProperty("testthing_prop2", "oldValue2").withProperty("isLatest", true).withProperty("rev", 1)).wrap();
TinkerPopOperations instance = forGraphWrapperAndMappings(graphManager, vres);
ArrayList<TimProperty<?>> properties = Lists.newArrayList(new StringProperty("prop1", "newValue"));
UpdateEntity updateEntity = new UpdateEntity(id, properties, 1);
long timeStamp = Instant.now().toEpochMilli();
updateEntity.setModified(new Change(timeStamp, "userId", null));
instance.replaceEntity(collection, updateEntity);
Vertex vertex = graphManager.getGraph().traversal().V().has("tim_id", id.toString()).has("isLatest", true).next();
assertThat(vertex, is(likeVertex().withoutProperty("testthing_prop2")));
}
use of org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has in project timbuctoo by HuygensING.
the class GraphLogValidator method writeReport.
@SuppressWarnings("unchecked")
public void writeReport(Writer writer) {
LOG.info("Start Vertex validation");
Graph graph = graphWrapper.getGraph();
Set<ValidationElement> vertexIdsAndVersions = graph.traversal().V().not(has(T.label, LabelP.of("searchresult"))).not(has(T.label, LabelP.of("createEdgeEntry"))).not(has(T.label, LabelP.of("updateEdgeEntry"))).not(has(T.label, LabelP.of("createVertexEntry"))).not(has(T.label, LabelP.of("updateVertexEntry"))).has("tim_id").has("rev").map(v -> new ValidationElement("Vertex", v.get().id(), v.get().value("tim_id"), v.get().value("rev"))).toSet();
Set<ValidationElement> vertexLogEntryIdsAndVersions = graph.traversal().V().or(has(T.label, LabelP.of("createVertexEntry")), has(T.label, LabelP.of("updateVertexEntry"))).map(v -> new ValidationElement("Vertex", v.get().id(), v.get().value("TIM_tim_id"), v.get().value("rev"))).toSet();
Set<ValidationElement> missingVertexLogEntries = Sets.difference(vertexIdsAndVersions, vertexLogEntryIdsAndVersions);
missingVertexLogEntries.forEach(el -> el.writeLogString(writer));
LOG.info("Start Edge validation");
Set<ValidationElement> edgeIdsAndVersions = graph.traversal().E().not(__.hasLabel("VERSION_OF", "NEXT_ITEM")).has("tim_id").has("rev").map(e -> new ValidationElement("Edge", e.get().id(), e.get().value("tim_id"), e.get().value("rev"))).toSet();
Set<ValidationElement> edgeLogEntryIdsAndVersions = graph.traversal().V().or(has(T.label, LabelP.of("createEdgeEntry")), has(T.label, LabelP.of("updateEdgeEntry"))).map(e -> new ValidationElement("Edge", e.get().id(), e.get().value("TIM_tim_id"), e.get().value("rev"))).toSet();
Set<ValidationElement> missingLogEntries = Sets.difference(edgeIdsAndVersions, edgeLogEntryIdsAndVersions);
missingLogEntries.forEach(el -> el.writeLogString(writer));
}
Aggregations