class JFreeChart implements Drawable, TitleChangeListener,
        PlotChangeListener, Serializable, Cloneable {

    @Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof JFreeChart)) {
            return false;
        }
        JFreeChart that = (JFreeChart) obj;
        if (!this.renderingHints.equals(that.renderingHints)) {
            return false;
        }
        if (!ObjectUtils.equal(this.borderPainter, that.borderPainter)) {
            return false;
        }
        if (!this.padding.equals(that.padding)) {
            return false;
        }
        if (!ObjectUtils.equal(this.title, that.title)) {
            return false;
        }
        if (!ObjectUtils.equal(this.subtitles, that.subtitles)) {
            return false;
        }
        if (!ObjectUtils.equal(this.plot, that.plot)) {
            return false;
        }
        if (!ObjectUtils.equal(this.backgroundPainter, 
                that.backgroundPainter)) {
            return false;
        }
        if (!ObjectUtils.equal(this.backgroundImage,
                that.backgroundImage)) {
            return false;
        }
        if (this.backgroundImageAlignment != that.backgroundImageAlignment) {
            return false;
        }
        if (this.backgroundImageAlpha != that.backgroundImageAlpha) {
            return false;
        }
        if (this.notify != that.notify) {
            return false;
        }
        return true;
    }

    public  JFreeChart(Plot plot);
    public  JFreeChart(String title, Plot plot);
    public  JFreeChart(String title, Font titleFont, Plot plot,
                      boolean createLegend);

}