org.jfree.data.statistics.HistogramBin Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jfreechart Show documentation
Show all versions of jfreechart Show documentation
JFreeChart is a class library, written in Java, for generating charts.
Utilising the Java2D APIs, it currently supports bar charts, pie charts,
line charts, XY-plots and time series plots.
/* ===========================================================
* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2013, by Object Refinery Limited and Contributors.
*
* Project Info: http://www.jfree.org/jfreechart/index.html
*
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.]
*
* -----------------
* HistogramBin.java
* -----------------
* (C) Copyright 2003-2008, by Jelai Wang and Contributors.
*
* Original Author: Jelai Wang (jelaiw AT mindspring.com);
* Contributor(s): David Gilbert (for Object Refinery Limited);
*
* Changes
* -------
* 06-Jul-2003 : Version 1, contributed by Jelai Wang (DG);
* 07-Jul-2003 : Changed package and added Javadocs (DG);
* 01-Mar-2004 : Moved from org.jfree.data --> org.jfree.data.statistics (DG);
* ------------- JFREECHART 1.0.x ---------------------------------------------
* 02-Feb-2007 : Removed author tags from all over JFreeChart sources (DG);
*
*/
package org.jfree.data.statistics;
import java.io.Serializable;
/**
* A bin for the {@link HistogramDataset} class.
*/
public class HistogramBin implements Cloneable, Serializable {
/** For serialization. */
private static final long serialVersionUID = 7614685080015589931L;
/** The number of items in the bin. */
private int count;
/** The start boundary. */
private double startBoundary;
/** The end boundary. */
private double endBoundary;
/**
* Creates a new bin.
*
* @param startBoundary the start boundary.
* @param endBoundary the end boundary.
*/
public HistogramBin(double startBoundary, double endBoundary) {
if (startBoundary > endBoundary) {
throw new IllegalArgumentException(
"HistogramBin(): startBoundary > endBoundary.");
}
this.count = 0;
this.startBoundary = startBoundary;
this.endBoundary = endBoundary;
}
/**
* Returns the number of items in the bin.
*
* @return The item count.
*/
public int getCount() {
return this.count;
}
/**
* Increments the item count.
*/
public void incrementCount() {
this.count++;
}
/**
* Returns the start boundary.
*
* @return The start boundary.
*/
public double getStartBoundary() {
return this.startBoundary;
}
/**
* Returns the end boundary.
*
* @return The end boundary.
*/
public double getEndBoundary() {
return this.endBoundary;
}
/**
* Returns the bin width.
*
* @return The bin width.
*/
public double getBinWidth() {
return this.endBoundary - this.startBoundary;
}
/**
* Tests this object for equality with an arbitrary object.
*
* @param obj the object to test against.
*
* @return A boolean.
*/
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj instanceof HistogramBin) {
HistogramBin bin = (HistogramBin) obj;
boolean b0 = bin.startBoundary == this.startBoundary;
boolean b1 = bin.endBoundary == this.endBoundary;
boolean b2 = bin.count == this.count;
return b0 && b1 && b2;
}
return false;
}
/**
* Returns a clone of the bin.
*
* @return A clone.
*
* @throws CloneNotSupportedException not thrown by this class.
*/
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}