Initial opendaylight infrastructure commit!!
[controller.git] / third-party / net.sf.jung2 / src / main / java / edu / uci / ics / jung / algorithms / importance / Ranking.java
diff --git a/third-party/net.sf.jung2/src/main/java/edu/uci/ics/jung/algorithms/importance/Ranking.java b/third-party/net.sf.jung2/src/main/java/edu/uci/ics/jung/algorithms/importance/Ranking.java
new file mode 100644 (file)
index 0000000..b96e559
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2003, the JUNG Project and the Regents of the University 
+* of California
+* All rights reserved.
+*
+* This software is open-source under the BSD license; see either
+* "license.txt" or
+* http://jung.sourceforge.net/license.txt for a description.
+*/
+package edu.uci.ics.jung.algorithms.importance;
+
+
+/**
+ * Abstract data container for ranking objects. Stores common data relevant to both node and edge rankings, namely,
+ * the original position of the instance in the list and the actual ranking score.
+ * @author Scott White
+ */
+public class Ranking<V> implements Comparable {
+    /**
+     * The original (0-indexed) position of the instance being ranked
+     */
+    public int originalPos;
+    /**
+     * The actual rank score (normally between 0 and 1)
+     */
+    public double rankScore;
+    
+    /**
+     * what is being ranked
+     */
+    private V ranked;
+
+    /**
+     * Constructor which allows values to be set on construction
+     * @param originalPos The original (0-indexed) position of the instance being ranked
+     * @param rankScore The actual rank score (normally between 0 and 1)
+     */
+    public Ranking(int originalPos, double rankScore, V ranked) {
+        this.originalPos = originalPos;
+        this.rankScore = rankScore;
+        this.ranked = ranked;
+    }
+
+    /**
+     * Compares two ranking based on the rank score.
+     * @param o The other ranking
+     * @return -1 if the other ranking is higher, 0 if they are equal, and 1 if this ranking is higher
+     */
+    public int compareTo(Object o) {
+
+        Ranking otherRanking = (Ranking) o;
+        return Double.compare(otherRanking.rankScore,rankScore);
+    }
+
+    /**
+     * Returns the rank score as a string.
+     * @return the stringified rank score
+     */
+    @Override
+    public String toString() {
+        return String.valueOf(rankScore);
+    }
+
+       /**
+        * @return the ranked
+        */
+       public V getRanked() {
+               return ranked;
+       }
+
+       /**
+        * @param ranked the ranked to set
+        */
+       public void setRanked(V ranked) {
+               this.ranked = ranked;
+       }
+}