private static Vertex get(TitanGraph graph, String key, String value) { Iterator<Vertex> it = graph.getVertices(key, value).iterator(); Vertex vertex = null; if (it.hasNext()) { vertex = it.next(); } return vertex; } }
@Override public Iterator<Vertex> getVertexIterator() { return titanGraph.getVertices().iterator(); }
@Override public boolean nodeExists(int nodeId) { Iterable<Vertex> iter = titanGraph.getVertices(NODE_ID, nodeId); return iter.iterator().hasNext(); }
@Override public Vertex getVertex(Integer i) { return titanGraph.getVertices(NODE_ID, i.intValue()).iterator().next(); } }
@Override public double getNodeWeight(int nodeId) { Vertex vertex = titanGraph.getVertices(NODE_ID, nodeId).iterator().next(); double weight = getNodeOutDegree(vertex); return weight; }
@Override public Set<Integer> getNodesFromNodeCommunity(int nodeCommunity) { Set<Integer> nodes = new HashSet<Integer>(); Iterable<Vertex> iter = titanGraph.getVertices(NODE_COMMUNITY, nodeCommunity); for (Vertex v : iter) { Integer nodeId = v.getProperty(NODE_ID); nodes.add(nodeId); } return nodes; }
@Override public int getCommunity(int nodeCommunity) { Vertex vertex = titanGraph.getVertices(NODE_COMMUNITY, nodeCommunity).iterator().next(); int community = vertex.getProperty(COMMUNITY); return community; }
@Override public int getCommunityFromNode(int nodeId) { Vertex vertex = titanGraph.getVertices(NODE_ID, nodeId).iterator().next(); return vertex.getProperty(COMMUNITY); }
@Override public Set<Integer> getNodesFromCommunity(int community) { Set<Integer> nodes = new HashSet<Integer>(); Iterable<Vertex> iter = titanGraph.getVertices(COMMUNITY, community); for (Vertex v : iter) { Integer nodeId = v.getProperty(NODE_ID); nodes.add(nodeId); } return nodes; }
@Override public double getNodeCommunityWeight(int nodeCommunity) { double nodeCommunityWeight = 0; Iterable<Vertex> iter = titanGraph.getVertices(NODE_COMMUNITY, nodeCommunity); for (Vertex vertex : iter) { nodeCommunityWeight += getNodeOutDegree(vertex); } return nodeCommunityWeight; }
@Override public void moveNode(int nodeCommunity, int toCommunity) { Iterable<Vertex> fromIter = titanGraph.getVertices(NODE_COMMUNITY, nodeCommunity); for (Vertex vertex : fromIter) { vertex.setProperty(COMMUNITY, toCommunity); } }
@Override public double getCommunityWeight(int community) { double communityWeight = 0; Iterable<Vertex> iter = titanGraph.getVertices(COMMUNITY, community); if (Iterables.size(iter) > 1) { for (Vertex vertex : iter) { communityWeight += getNodeOutDegree(vertex); } } return communityWeight; }
@Override public Set<Integer> getNeighborsIds(int nodeId) { Set<Integer> neighbors = new HashSet<Integer>(); Vertex vertex = titanGraph.getVertices(NODE_ID, nodeId).iterator().next(); GremlinPipeline<String, Vertex> pipe = new GremlinPipeline<String, Vertex>(vertex).out(SIMILAR); Iterator<Vertex> iter = pipe.iterator(); while (iter.hasNext()) { Integer neighborId = iter.next().getProperty(NODE_ID); neighbors.add(neighborId); } return neighbors; }
@Override public void initCommunityProperty() { int communityCounter = 0; for (Vertex v : titanGraph.getVertices()) { v.setProperty(NODE_COMMUNITY, communityCounter); v.setProperty(COMMUNITY, communityCounter); communityCounter++; } }
@Override public Iterable<AtlasVertex<Titan0Vertex, Titan0Edge>> getVertices() { Iterable<Vertex> vertices = getGraph().getVertices(); return wrapVertices(vertices); }
@Override public Iterable<AtlasVertex<Titan0Vertex, Titan0Edge>> getVertices(String key, Object value) { Iterable<Vertex> result = getGraph().getVertices(key, value); return wrapVertices(result); }
public static void assertGraphOfTheGods(TitanGraph gotg) { assertEquals(12,Iterables.size(gotg.getVertices())); assertEquals(3,Iterables.size(gotg.getVertices("label","god"))); Vertex h = Iterables.getOnlyElement(gotg.getVertices("name","hercules")); assertEquals(30,h.getProperty("age")); assertEquals("demigod",((TitanVertex)h).getLabel()); assertEquals(5,Iterables.size(h.getEdges(Direction.BOTH))); gotg.commit(); }
private static void codeSnippets() throws Exception { TitanGraph g = TitanFactory.open("/tmp/titan"); g.createKeyIndex("name", Vertex.class); Vertex juno = g.addVertex(null); juno.setProperty("name", "juno"); juno = g.getVertices("name", "juno").iterator().next(); TransactionalGraph tx = g.newTransaction(); Thread[] threads = new Thread[10]; for (int i = 0; i < threads.length; i++) { //threads[i]=new Thread(new DoSomething(tx)); threads[i].start(); } for (int i = 0; i < threads.length; i++) threads[i].join(); tx.commit(); }
private static void codeSnippets() throws Exception { TitanGraph g = TitanFactory.open("/tmp/titan"); g.createKeyIndex("name", Vertex.class); Vertex juno = g.addVertex(null); juno.setProperty("name", "juno"); juno = g.getVertices("name", "juno").iterator().next(); TransactionalGraph tx = g.newTransaction(); Thread[] threads = new Thread[10]; for (int i = 0; i < threads.length; i++) { //threads[i]=new Thread(new DoSomething(tx)); threads[i].start(); } for (int i = 0; i < threads.length; i++) threads[i].join(); tx.commit(); }
@Override public void shortestPath(final Vertex fromNode, Integer node) { final Vertex v2 = titanGraph.getVertices(NODE_ID, node).iterator().next(); @SuppressWarnings("rawtypes") final GremlinPipeline<String, List> pathPipe = new GremlinPipeline<String, List>(fromNode).as(SIMILAR) .out(SIMILAR).loop(SIMILAR, new PipeFunction<LoopBundle<Vertex>, Boolean>() { // @Override public Boolean compute(LoopBundle<Vertex> bundle) { return bundle.getLoops() < 5 && !bundle.getObject().equals(v2); } }).path(); }