@Override public void applyInTx() { Vertex meshRoot = getMeshRootVertex(); Vertex projectRoot = meshRoot.getVertices(Direction.OUT, "HAS_PROJECT_ROOT").iterator().next(); // Iterate over all projects for (Vertex project : projectRoot.getVertices(Direction.OUT, "HAS_PROJECT")) { // Migrate all nodes of the project Vertex baseNode = project.getVertices(Direction.OUT, "HAS_ROOT_NODE").iterator().next(); migrateNode(baseNode); } }
private Vertex findEnglish() { Vertex english = null; Iterator<Vertex> langIt = getMeshRootVertex().getVertices(Direction.OUT, "HAS_LANGUAGE_ROOT").iterator().next() .getVertices(Direction.OUT, "HAS_LANGUAGE").iterator(); while (langIt.hasNext()) { Vertex language = langIt.next(); if (language.getProperty("languageTag").equals("en")) { english = language; } } return english; }
private Vertex findAdmin() { Vertex admin = null; Iterator<Vertex> langIt = getMeshRootVertex().getVertices(Direction.OUT, "HAS_USER_ROOT").iterator().next() .getVertices(Direction.OUT, "HAS_USER").iterator(); while (langIt.hasNext()) { Vertex user = langIt.next(); if (user.getProperty("username").equals("admin")) { admin = user; } } return admin; }
public double getNodeOutDegree(Vertex vertex) { @SuppressWarnings("rawtypes") OMultiCollectionIterator result = (OMultiCollectionIterator) vertex.getVertices(Direction.OUT, SIMILAR); return (double) result.size(); }
private double testAllVertices(long vid, int numV) { long start = System.nanoTime(); Vertex v = graph.getVertex(vid); for (int i=1; i<numV; i++) { v = Iterables.getOnlyElement(v.getVertices(Direction.OUT, "knows")); } return ((System.nanoTime()-start)/1000000.0); }
public double getNodeInDegree(Vertex vertex) { @SuppressWarnings("rawtypes") OMultiCollectionIterator result = (OMultiCollectionIterator) vertex.getVertices(Direction.IN, SIMILAR); return (double) result.size(); }
private void migrateUsers(Vertex meshRoot) { Vertex userRoot = meshRoot.getVertices(Direction.OUT, "HAS_USER_ROOT").iterator().next(); for (Vertex user : userRoot.getVertices(Direction.OUT, "HAS_USER")) { // Check editor/creator getOrFixUserReference(user, "HAS_EDITOR"); getOrFixUserReference(user, "HAS_CREATOR"); } }
private Vertex findBinary(String hash, Vertex binaryRoot) { for (Vertex binary : binaryRoot.getVertices(OUT, "HAS_BINARY")) { String foundHash = binary.getProperty(NEW_HASH_KEY); if (foundHash.equals(hash)) { return binary; } } return null; }
private double testAllVertices(long vid, int numV) { long start = System.nanoTime(); Vertex v = graph.getVertex(vid); for (int i=1; i<numV; i++) { v = Iterables.getOnlyElement(v.getVertices(Direction.OUT, "knows")); } return ((System.nanoTime()-start)/1000000.0); }
@Override public void applyInTx() { Vertex meshRoot = getMeshRootVertex(); Vertex searchQueueRoot = meshRoot.getVertices(OUT, "HAS_SEARCH_QUEUE_ROOT").iterator().next(); for (Vertex batch : searchQueueRoot.getVertices(OUT, "HAS_BATCH")) { for (Vertex entry : batch.getVertices(OUT, "HAS_ITEM")) { entry.remove(); } batch.remove(); } searchQueueRoot.remove(); }
private void updateLists(Vertex container, Map<String, JsonObject> fieldMap) { for (Vertex listElement: container.getVertices(Direction.OUT, HAS_LIST)) { String fieldName = listElement.getProperty(FIELD_KEY); if (fieldMap.containsKey(fieldName) && NUMBER_TYPE.equals(fieldMap.get(fieldName).getString(FIELD_LIST_TYPE_KEY))) { listElement.getPropertyKeys().stream() .filter(k -> k.startsWith(ITEM_PREFIX)) .forEach(k -> updateProperty(k, listElement)); } } }
protected Set<OrientVertex> getNeighbors(final Vertex node) { context.incrementVariable("getNeighbors"); final Set<OrientVertex> neighbors = new HashSet<OrientVertex>(); if (node != null) { for (Vertex v : node.getVertices(paramDirection)) { final OrientVertex ov = (OrientVertex) v; if (ov != null && isNotSettled(ov)) neighbors.add(ov); } } return neighbors; }
protected Vertex processNextStart() { while (true) { if (this.nextEnds.hasNext()) { return this.nextEnds.next(); } else { this.nextEnds = this.doBranchFactor ? this.starts.next().query().direction(this.direction).labels(this.labels).limit(this.branchFactor).vertices().iterator() : this.starts.next().getVertices(this.direction, this.labels).iterator(); } } }
@Override protected boolean isSetReference(PersistentEObject object, EReference reference) { boolean isSet = false; Vertex vertex = backend.getVertex(object.id()); if (nonNull(vertex)) { isSet = !Iterables.isEmpty(vertex.getVertices(Direction.OUT, reference.getName())); } return isSet; }
private Vertex getOrFixUserReference(Vertex element, String edge) { Vertex creator; Iterator<Vertex> creatorIterator = element.getVertices(Direction.OUT, edge).iterator(); if (!creatorIterator.hasNext()) { log.error("The element {" + element.getProperty("uuid") + "} has no {" + edge + "}. Using admin instead."); creator = findAdmin(); element.addEdge(edge, creator); } else { creator = creatorIterator.next(); } return creator; }
@Override public InternalEObject getContainer(InternalEObject internalObject) { InternalEObject container = null; PersistentEObject object = PersistentEObject.from(internalObject); Vertex vertex = backend.getVertex(object.id()); Vertex containerVertex = Iterables.getOnlyElement(vertex.getVertices(Direction.OUT, CONTAINER), null); if (nonNull(containerVertex)) { container = reifyVertex(containerVertex); } return container; }
@Override protected boolean containsReference(PersistentEObject object, EReference reference, PersistentEObject value) { Vertex v = backend.getOrCreateVertex(object); for (Vertex vOut : v.getVertices(Direction.OUT, reference.getName())) { if (Objects.equals(vOut.getId(), value.id().toString())) { return true; } } return false; }
public void updateVerticesForSchema(Vertex schemaVertex, Map<String, JsonObject> fieldMap, String label) { long count = 0; for (Vertex vertex : schemaVertex.getVertices(Direction.IN, label)) { count++; updateFields(vertex, fieldMap); updateLists(vertex, fieldMap); if (count % 10000 == 0) { log.debug("Commit the changes for the last 10.000 vertices to database..."); getGraph().commit(); log.info("Updated vertices {}", count); } } }
public void testVertexReattachment() { TransactionalGraph graph = (TransactionalGraph) graphTest.generateGraph(); Vertex a = graph.addVertex(null); Vertex b = graph.addVertex(null); Edge e = graph.addEdge(null, a, b, "friend"); graph.commit(); a = graph.getVertex(a); Assert.assertNotNull(a); Assert.assertEquals(1, BaseTest.count(a.getVertices(Direction.OUT))); graph.shutdown(); }
public void testVertexReattachment() { TransactionalGraph graph = (TransactionalGraph) graphTest.generateGraph(); Vertex a = graph.addVertex(null); Vertex b = graph.addVertex(null); Edge e = graph.addEdge(null, a, b, "friend"); graph.commit(); a = graph.getVertex(a); Assert.assertNotNull(a); Assert.assertEquals(1, BaseTest.count(a.getVertices(Direction.OUT))); graph.shutdown(); }