/* * 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 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; } }