/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.stat; import java.util.Random; import net.sourceforge.pmd.lang.ast.Node; /** * Datapoint used for rules that deal with metrics. * * @author David Dixon-Peugh * @since Aug 8, 2002 */ public class DataPoint implements Comparable<DataPoint> { private Node node; private int random; private double score; private String message; /** * Constructor for DataPoint. */ public DataPoint() { super(); // Random number is so that the TreeSet doesn't // whack things with the same score. Random rand = new Random(); random = rand.nextInt(11061973); } /** * Compares this data point with the given datapoint. * * @param rhs * the other data point * @return 0 if equal; a value less than 0 if this point's score is smaller * than the other data point; a value greater than 0 if this point's * score is greater than the other data point. */ @Override public int compareTo(DataPoint rhs) { if (score != rhs.getScore()) { return Double.compare(score, rhs.getScore()); } return random - rhs.random; } public Node getNode() { return node; } public void setNode(Node node) { this.node = node; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } }