1 public class EdgeGraphNode implements Node {
\r
2 protected HashMap inEdges;
\r
3 protected HashMap outEdges;
\r
4 protected Object data;
\r
10 EdgeGraphNode(Object d) {
\r
12 inEdges = new HashMap();
\r
13 outEdges = new HashMap();
\r
17 protected final boolean hasInNeighbor(EdgeGraphNode n) {
\r
18 return inEdges.containsKey(n);
\r
21 protected boolean addInEdge(EdgeGraphNode n, GraphEdge e) {
\r
22 if (hasInNeighbor(n)) {
\r
30 protected boolean removeInEdge(EdgeGraphNode n) {
\r
31 if (!hasInNeighbor(n)) {
\r
39 protected GraphEdge getInEdge(EdgeGraphNode n) {
\r
40 return (GraphEdge) inEdges.get(n);
\r
43 protected Iterator getInEdges() {
\r
44 return inEdges.iterator(1);
\r
47 protected final Iterator getInNeighbors() {
\r
48 return inEdges.iterator(0);
\r
51 // TODO someone check this for performance.
\r
52 protected final Iterator getInNeighborsCopy() {
\r
53 LinkedList l = new LinkedList();
\r
54 Iterator o = inEdges.iterator(0);
\r
55 while (o.hasNext()) {
\r
58 return l.iterator();
\r
61 protected final boolean hasOutNeighbor(EdgeGraphNode n) {
\r
62 return outEdges.containsKey(n);
\r
65 protected boolean addOutEdge(EdgeGraphNode n, GraphEdge e) {
\r
66 if (hasOutNeighbor(n)) {
\r
74 protected boolean removeOutEdge(EdgeGraphNode n) {
\r
75 if (!hasOutNeighbor(n)) {
\r
83 protected GraphEdge getOutEdge(EdgeGraphNode n) {
\r
84 return (GraphEdge) outEdges.get(n);
\r
87 protected Iterator getOutEdges() {
\r
88 return outEdges.iterator(1);
\r
91 protected final Iterator getOutNeighbors() {
\r
92 return outEdges.iterator(0);
\r
95 // TODO someone check this for performance.
\r
96 protected final Iterator getOutNeighborsCopy() {
\r
97 LinkedList l = new LinkedList();
\r
98 Iterator o = outEdges.iterator(0);
\r
99 while (o.hasNext()) {
\r
102 return l.iterator();
\r