From 9ce65c5a963b03ee97fe9cb6c5aa65a3c04a80a8 Mon Sep 17 00:00:00 2001 From: yzhou Date: Tue, 21 Apr 2015 10:34:27 +0100 Subject: initial version --- src/uk/ac/ox/cs/pagoda/summary/Edge.java | 70 ++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/uk/ac/ox/cs/pagoda/summary/Edge.java (limited to 'src/uk/ac/ox/cs/pagoda/summary/Edge.java') diff --git a/src/uk/ac/ox/cs/pagoda/summary/Edge.java b/src/uk/ac/ox/cs/pagoda/summary/Edge.java new file mode 100644 index 0000000..79d3041 --- /dev/null +++ b/src/uk/ac/ox/cs/pagoda/summary/Edge.java @@ -0,0 +1,70 @@ +package uk.ac.ox.cs.pagoda.summary; + +import java.util.Comparator; + +public class Edge { + + Node from, to; + String label; + + public String getLabel() { return label; } + public Node getFromNode() { return from; } + public Node getToNode() {return to; } + public String getFromNodeName() { return from.name; } + public String getToNodeName() { return to.name; } + + public Edge(Node u, Node v, String stringID) { + from = u; + to = v; + label = stringID; + } + + public String toString() { + return label + "(\n\t" + from.name + ",\n\t" + to.name + ")"; + } + + public static int compareLabels(Edge[] list1, Edge[] list2) { + int result = list1.length - list2.length; + if (result != 0) return result; + for (int i = 0; i < list1.length; ++i) { + if ((result = list1[i].label.compareTo(list2[i].label)) != 0) + return result; + } + return 0; + } + + public Node getDestinationNode(boolean isOutGoingEdges) { + return isOutGoingEdges ? to : from; + } + +} + +class EdgeComparatorByNodeName implements Comparator { + + @Override + public int compare(Edge o1, Edge o2) { + int result = o1.label.compareTo(o2.label); + if (result != 0) return result; + result = o1.from.name.compareTo(o2.from.name); + if (result != 0) return result; + return o1.to.name.compareTo(o2.to.name); + } +} + +class EdgeComparatorByNodeLabel implements Comparator { + + @Override + public int compare(Edge o1, Edge o2) { + int result = o1.label.compareTo(o2.label); + if (result != 0) return result; + result = o1.from.getLabel().compareTo(o2.from.getLabel()); + if (result != 0) return result; + result = o1.to.getLabel().compareTo(o2.to.getLabel()); + if (result != 0) return result; + result = o1.from.getName().compareTo(o2.from.getName()); + if (result != 0) return result; + result = o1.to.getName().compareTo(o2.to.getName()); + return result; + } +} + -- cgit v1.2.3