/* * WPCleaner: A tool to help on Wikipedia maintenance tasks. * Copyright (C) 2013 Nicolas Vervelle * * See README.txt file for licensing information. */ package org.wikipediacleaner.api.data; /** * Simple class to store current progression. */ public class ProgressionValue implements Comparable<ProgressionValue> { private Integer currentValue; private Integer goalValue; private final boolean displayZero; /** * @param current Current value. * @param goal Goal value. */ public ProgressionValue(Integer current, Integer goal, boolean displayZero) { this.currentValue = current; this.goalValue = goal; this.displayZero = displayZero; } public Integer getCurrent() { return currentValue; } public void setCurrent(Integer current) { currentValue = current; } public Integer getGoal() { return goalValue; } public void setGoal(Integer goal) { goalValue = goal; } public int getStatus() { if ((currentValue != null) && (goalValue != null)) { return currentValue.compareTo(goalValue); } return 0; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { if (currentValue != null) { if ((goalValue != null) && (!currentValue.equals(goalValue))) { return "" + currentValue + " / " + goalValue; } if (!displayZero && (currentValue.intValue() == 0) && (goalValue == null)) { return ""; } return currentValue.toString(); } return ""; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (!(obj instanceof ProgressionValue)) { return false; } ProgressionValue value = (ProgressionValue) obj; if (currentValue == null) { if (value.currentValue != null) { return false; } } else { if (!currentValue.equals(value.currentValue)) { return false; } } if (goalValue == null) { if (value.goalValue != null) { return false; } } else { if (!goalValue.equals(value.goalValue)) { return false; } } return true; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { int hashCode = 0; if (currentValue != null) { hashCode = 17 * hashCode + currentValue.hashCode(); } if (goalValue != null) { hashCode = 17 * hashCode + goalValue.hashCode(); } return hashCode; } /* (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */ @Override public int compareTo(ProgressionValue o) { if (o == null) { return -1; } if (currentValue == null) { if (o.currentValue != null) { return -1; } } else if (!currentValue.equals(o.currentValue)) { if (o.currentValue == null) { return 1; } return currentValue.compareTo(o.currentValue); } if (goalValue == null) { if (o.goalValue != null) { return -1; } } else if (!goalValue.equals(o.goalValue)) { if (o.goalValue == null) { return 1; } return goalValue.compareTo(o.goalValue); } return 0; } }