package edu.isi.karma.modeling.research.graph.roek.nlpged.graph;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class Graph {
protected String id, originalText;
protected List<Node> nodes;
protected HashMap<String, List<Edge>> edges;
public Graph(String id) {
this();
this.id = id;
}
public Graph(String id, String originalText) {
this();
this.id = id;
this.originalText = originalText;
}
public Graph() {
nodes = new ArrayList<Node>();
edges = new HashMap<String, List<Edge>>();
}
public void addNode(Node node) {
if(!edges.containsKey(node.getId())) {
edges.put(node.getId(), new ArrayList<Edge>());
}
nodes.add(node);
}
public int getSize() {
return nodes.size();
}
public HashMap<String, List<Edge>> getEdges() {
return edges;
}
public void addEdge(Edge edge) {
edges.get(edge.getFrom().getId()).add(edge);
}
public List<Edge> getEdges(Node node) {
return getEdges(node.getId());
}
public List<Edge> getEdges(String nodeId) {
return edges.get(nodeId);
}
public void removeNode(int i) {
nodes.remove(i);
}
public Node getNode(int i) {
return nodes.get(i);
}
public Node getNode(String id) {
for (Node node : nodes) {
if(node.getId().equals(id)) {
return node;
}
}
return null;
}
public List<Node> getNodes() {
return nodes;
}
public String getId() {
return id;
}
public String getOriginalText() {
return originalText;
}
}