www.pudn.com > jfreechart-0.9.12.zip > TickUnit.java


/* ====================================== 
 * JFreeChart : a free Java chart library 
 * ====================================== 
 * 
 * Project Info:  http://www.jfree.org/jfreechart/index.html 
 * Project Lead:  David Gilbert (david.gilbert@object-refinery.com); 
 * 
 * (C) Copyright 2000-2003, by Object Refinery Limited and Contributors. 
 * 
 * This library is free software; you can redistribute it and/or modify it under the terms 
 * of the GNU Lesser General Public License as published by the Free Software Foundation; 
 * either version 2.1 of the License, or (at your option) any later version. 
 * 
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 * See the GNU Lesser General Public License for more details. 
 * 
 * You should have received a copy of the GNU Lesser General Public License along with this 
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
 * Boston, MA 02111-1307, USA. 
 * 
 * ------------- 
 * TickUnit.java 
 * ------------- 
 * (C) Copyright 2001-2003, by Object Refinery Limited. 
 * 
 * Original Author:  David Gilbert (for Object Refinery Limited); 
 * Contributor(s):   -; 
 * 
 * $Id: TickUnit.java,v 1.3 2003/06/13 15:45:57 mungady Exp $ 
 * 
 * Changes (from 19-Dec-2001) 
 * -------------------------- 
 * 19-Dec-2001 : Added standard header (DG); 
 * 01-May-2002 : Changed the unit size from Number to double (DG); 
 * 26-Sep-2002 : Fixed errors reported by Checkstyle (DG); 
 * 08-Nov-2002 : Moved to new package com.jrefinery.chart.axis (DG); 
 * 26-Mar-2003 : Implemented Serializable (DG); 
 * 
 */ 
 
package org.jfree.chart.axis; 
 
import java.io.Serializable; 
 
/** 
 * Base class representing a tick unit.  This determines the spacing of the 
 * tick marks on an axis. 
 * 

* This class (and any subclasses) should be immutable, the reason being that * ORDERED collections of tick units are maintained and if one instance can be * changed, it may destroy the order of the collection that it belongs to. * In addition, if the implementations are immutable, they can belong to * multiple collections. * * @see ValueAxis * * @author David Gilbert */ public abstract class TickUnit implements Comparable, Serializable { /** The size of the tick unit. */ private double size; /** * Constructs a new tick unit. * * @param size the tick unit size. */ public TickUnit(double size) { this.size = size; } /** * Returns the size of the tick unit. * * @return the size of the tick unit. */ public double getSize() { return this.size; } /** * Converts the supplied value to a string. *

* Subclasses may implement special formatting by overriding this method. * * @param value the data value. * * @return value as string. */ public String valueToString(double value) { return String.valueOf(value); } /** * Compares this tick unit to an arbitrary object. * * @param object the object to compare against. * * @return 1 if the size of the other object is less than this, * 0 if both have the same size and -1 this * size is less than the others. */ public int compareTo(Object object) { if (object instanceof TickUnit) { TickUnit other = (TickUnit) object; if (this.size > other.getSize()) { return 1; } else if (this.size < other.getSize()) { return -1; } else { return 0; } } else { return -1; } } /** * Tests this unit for equality with another object. * * @param obj the object. * * @return true or false. */ public boolean equals(Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj instanceof TickUnit) { TickUnit tu = (TickUnit) obj; return this.size == tu.size; } return false; } }