/** * Returns an integer indicating the order of this Quarter object relative * to the specified object: * * negative == before, zero == same, positive == after. * * @param o1 the object to compare * * @return negative == before, zero == same, positive == after. */ public int compareTo(Object o1) { int result; // CASE 1 : Comparing to another Quarter object // -------------------------------------------- if (o1 instanceof Quarter) { Quarter q = (Quarter) o1; result = this.year - q.getYearValue(); if (result == 0) { result = this.quarter - q.getQuarter(); } } // CASE 2 : Comparing to another TimePeriod object // ----------------------------------------------- else if (o1 instanceof RegularTimePeriod) { // more difficult case - evaluate later... result = 0; } // CASE 3 : Comparing to a non-TimePeriod object // --------------------------------------------- else { // consider time periods to be ordered after general objects result = 1; } return result; }
/** * Tests the equality of this Quarter object to an arbitrary object. * Returns <code>true</code> if the target is a Quarter instance * representing the same quarter as this object. In all other cases, * returns <code>false</code>. * * @param obj the object (<code>null</code> permitted). * * @return <code>true</code> if quarter and year of this and the object are * the same. */ public boolean equals(Object obj) { if (obj != null) { if (obj instanceof Quarter) { Quarter target = (Quarter) obj; return (this.quarter == target.getQuarter() && (this.year == target.getYearValue())); } else { return false; } } else { return false; } }