Changeset View
Changeset View
Standalone View
Standalone View
api/server/src/main/java/org/softwareheritage/graph/Graph.java
package org.softwareheritage.graph; | package org.softwareheritage.graph; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import it.unimi.dsi.big.webgraph.BVGraph; | import it.unimi.dsi.big.webgraph.BVGraph; | ||||
import it.unimi.dsi.big.webgraph.LazyLongIterator; | import it.unimi.dsi.big.webgraph.LazyLongIterator; | ||||
import org.softwareheritage.graph.Node; | |||||
import org.softwareheritage.graph.SwhId; | import org.softwareheritage.graph.SwhId; | ||||
import org.softwareheritage.graph.backend.NodeIdMap; | import org.softwareheritage.graph.backend.NodeIdMap; | ||||
import org.softwareheritage.graph.backend.NodeTypesMap; | |||||
public class Graph { | public class Graph { | ||||
BVGraph graph; | BVGraph graph; | ||||
BVGraph graphTransposed; | BVGraph graphTransposed; | ||||
String path; | String path; | ||||
NodeIdMap nodeIdMap; | NodeIdMap nodeIdMap; | ||||
NodeTypesMap nodeTypesMap; | |||||
public Graph(String path) throws IOException { | public Graph(String path) throws IOException { | ||||
this.graph = BVGraph.load(path); | this.graph = BVGraph.load(path); | ||||
this.graphTransposed = BVGraph.load(path + "-transposed"); | this.graphTransposed = BVGraph.load(path + "-transposed"); | ||||
this.path = path; | this.path = path; | ||||
this.nodeIdMap = new NodeIdMap(path, getNbNodes()); | this.nodeIdMap = new NodeIdMap(path, getNbNodes()); | ||||
this.nodeTypesMap = new NodeTypesMap(path); | |||||
} | } | ||||
public void cleanUp() throws IOException { | public void cleanUp() throws IOException { | ||||
nodeIdMap.close(); | nodeIdMap.close(); | ||||
} | } | ||||
public String getPath() { | public String getPath() { | ||||
return path; | return path; | ||||
} | } | ||||
public long getNodeId(SwhId swhId) { | public long getNodeId(SwhId swhId) { | ||||
return nodeIdMap.getNodeId(swhId); | return nodeIdMap.getNodeId(swhId); | ||||
} | } | ||||
public SwhId getSwhId(long nodeId) { | public SwhId getSwhId(long nodeId) { | ||||
return nodeIdMap.getSwhId(nodeId); | return nodeIdMap.getSwhId(nodeId); | ||||
} | } | ||||
public Node.Type getNodeType(long nodeId) { | |||||
return nodeTypesMap.getType(nodeId); | |||||
} | |||||
public long getNbNodes() { | public long getNbNodes() { | ||||
return graph.numNodes(); | return graph.numNodes(); | ||||
} | } | ||||
public long getNbEdges() { | public long getNbEdges() { | ||||
return graph.numArcs(); | return graph.numArcs(); | ||||
} | } | ||||
Show All 24 Lines |