blob: d44c49f4f6393c104055ccd28cae9e77f0c19abc [file] [log] [blame]
tom91c7bd02014-09-25 22:50:44 -07001package org.onlab.onos.cli;
tom1380eee2014-09-24 09:22:02 -07002
3import org.onlab.onos.cluster.ControllerNode;
4import org.onlab.onos.net.Element;
5import org.onlab.onos.net.ElementId;
6import org.onlab.onos.net.Port;
7import org.onlab.onos.net.flow.FlowRule;
8import org.onlab.onos.net.topology.TopologyCluster;
9
10import java.util.Comparator;
11
12/**
13 * Various comparators.
14 */
15public final class Comparators {
16
17 // Ban construction
18 private Comparators() {
19 }
20
21 public static final Comparator<ElementId> ELEMENT_ID_COMPARATOR = new Comparator<ElementId>() {
22 @Override
23 public int compare(ElementId id1, ElementId id2) {
tom545708e2014-10-09 17:10:02 -070024 return id1.toString().compareTo(id2.toString());
tom1380eee2014-09-24 09:22:02 -070025 }
26 };
27
28 public static final Comparator<Element> ELEMENT_COMPARATOR = new Comparator<Element>() {
29 @Override
30 public int compare(Element e1, Element e2) {
tom545708e2014-10-09 17:10:02 -070031 return e1.id().toString().compareTo(e2.id().toString());
tom1380eee2014-09-24 09:22:02 -070032 }
33 };
34
35 public static final Comparator<FlowRule> FLOW_RULE_COMPARATOR = new Comparator<FlowRule>() {
36 @Override
37 public int compare(FlowRule f1, FlowRule f2) {
38 return Long.valueOf(f1.id().value()).compareTo(f2.id().value());
39 }
40 };
41
42 public static final Comparator<Port> PORT_COMPARATOR = new Comparator<Port>() {
43 @Override
44 public int compare(Port p1, Port p2) {
45 long delta = p1.number().toLong() - p2.number().toLong();
46 return delta == 0 ? 0 : (delta < 0 ? -1 : +1);
47 }
48 };
49
50 public static final Comparator<TopologyCluster> CLUSTER_COMPARATOR = new Comparator<TopologyCluster>() {
51 @Override
52 public int compare(TopologyCluster c1, TopologyCluster c2) {
53 return c1.id().index() - c2.id().index();
54 }
55 };
56
57 public static final Comparator<ControllerNode> NODE_COMPARATOR = new Comparator<ControllerNode>() {
58 @Override
59 public int compare(ControllerNode ci1, ControllerNode ci2) {
60 return ci1.id().toString().compareTo(ci2.id().toString());
61 }
62 };
63
64}