package esl.cuenet.ranking.network;
import esl.cuenet.ranking.TypedEdge;
import esl.cuenet.ranking.URINode;
import org.neo4j.graphdb.Node;
import java.util.HashMap;
public class NeoCache {
private static NeoCache cache = new NeoCache();
private HashMap<Long, URINode> uriNodeMap = new HashMap<Long, URINode>(100);
private HashMap<Long, TypedEdge> edgeMap = new HashMap<Long, TypedEdge>(100);
private HashMap<Long, Node> neoNodeMap = new HashMap<Long, Node>(100);
public static NeoCache getInstance() {
return cache;
}
private NeoCache() {
}
public void putNode(Node _node, URINode _uriNode) {
uriNodeMap.put(_node.getId(), _uriNode);
neoNodeMap.put(_node.getId(), _node);
}
public void putEdge(long id, TypedEdge r) {
edgeMap.put(id, r);
}
private URINode lookupNode(long id) {
return uriNodeMap.get(id);
}
public URINode lookupNode(Node _node) {
if ( !uriNodeMap.containsKey(_node.getId()) ) {
putNode(_node, new NeoURINode(_node));
}
return lookupNode(_node.getId());
}
public TypedEdge lookupEdge(long id) {
return edgeMap.get(id);
}
}