亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? timeseries.java

?? jfreechart1.0.1 jsp繪制圖表的開發包
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* ===========================================================
 * JFreeChart : a free chart library for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2000-2005, 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.  
 *
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
 * in the United States and other countries.]
 *
 * ---------------
 * TimeSeries.java
 * ---------------
 * (C) Copyright 2001-2005, by Object Refinery Limited.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   Bryan Scott;
 *
 * $Id: TimeSeries.java,v 1.10.2.6 2005/12/01 22:03:07 mungady Exp $
 *
 * Changes
 * -------
 * 11-Oct-2001 : Version 1 (DG);
 * 14-Nov-2001 : Added listener mechanism (DG);
 * 15-Nov-2001 : Updated argument checking and exceptions in add() method (DG);
 * 29-Nov-2001 : Added properties to describe the domain and range (DG);
 * 07-Dec-2001 : Renamed TimeSeries --> BasicTimeSeries (DG);
 * 01-Mar-2002 : Updated import statements (DG);
 * 28-Mar-2002 : Added a method add(TimePeriod, double) (DG);
 * 27-Aug-2002 : Changed return type of delete method to void (DG);
 * 04-Oct-2002 : Added itemCount and historyCount attributes, fixed errors 
 *               reported by Checkstyle (DG);
 * 29-Oct-2002 : Added series change notification to addOrUpdate() method (DG);
 * 28-Jan-2003 : Changed name back to TimeSeries (DG);
 * 13-Mar-2003 : Moved to com.jrefinery.data.time package and implemented 
 *               Serializable (DG);
 * 01-May-2003 : Updated equals() method (see bug report 727575) (DG);
 * 14-Aug-2003 : Added ageHistoryCountItems method (copied existing code for 
 *               contents) made a method and added to addOrUpdate.  Made a 
 *               public method to enable ageing against a specified time 
 *               (eg now) as opposed to lastest time in series (BS);
 * 15-Oct-2003 : Added fix for setItemCount method - see bug report 804425.  
 *               Modified exception message in add() method to be more 
 *               informative (DG);
 * 13-Apr-2004 : Added clear() method (DG);
 * 21-May-2004 : Added an extra addOrUpdate() method (DG);
 * 15-Jun-2004 : Fixed NullPointerException in equals() method (DG);
 * 29-Nov-2004 : Fixed bug 1075255 (DG);
 * 17-Nov-2005 : Renamed historyCount --> maximumItemAge (DG);
 * 28-Nov-2005 : Changed maximumItemAge from int to long (DG);
 * 01-Dec-2005 : New add methods accept notify flag (DG);
 * 
 */

package org.jfree.data.time;

import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import org.jfree.data.general.Series;
import org.jfree.data.general.SeriesChangeEvent;
import org.jfree.data.general.SeriesException;
import org.jfree.util.ObjectUtilities;

/**
 * Represents a sequence of zero or more data items in the form (period, value).
 */
public class TimeSeries extends Series implements Cloneable, Serializable {

    /** For serialization. */
    private static final long serialVersionUID = -5032960206869675528L;
    
    /** Default value for the domain description. */
    protected static final String DEFAULT_DOMAIN_DESCRIPTION = "Time";

    /** Default value for the range description. */
    protected static final String DEFAULT_RANGE_DESCRIPTION = "Value";

    /** A description of the domain. */
    private String domain;

    /** A description of the range. */
    private String range;

    /** The type of period for the data. */
    protected Class timePeriodClass;

    /** The list of data items in the series. */
    protected List data;

    /** The maximum number of items for the series. */
    private int maximumItemCount;

    /** The maximum age of items for the series. */
    private long maximumItemAge;
    
    /**
     * Creates a new (empty) time series.  By default, a daily time series is 
     * created.  Use one of the other constructors if you require a different 
     * time period.
     *
     * @param name  the series name (<code>null</code> not permitted).
     */
    public TimeSeries(String name) {
        this(
            name, DEFAULT_DOMAIN_DESCRIPTION, DEFAULT_RANGE_DESCRIPTION, 
            Day.class
        );
    }

    /**
     * Creates a new (empty) time series.
     *
     * @param name  the series name (<code>null</code> not permitted).
     * @param timePeriodClass  the type of time period (<code>null</code> not 
     *                         permitted).
     */
    public TimeSeries(String name, Class timePeriodClass) {
        this(
            name, DEFAULT_DOMAIN_DESCRIPTION, DEFAULT_RANGE_DESCRIPTION, 
            timePeriodClass
        );
    }

    /**
     * Creates a new time series that contains no data.
     * <P>
     * Descriptions can be specified for the domain and range.  One situation
     * where this is helpful is when generating a chart for the time series -
     * axis labels can be taken from the domain and range description.
     *
     * @param name  the name of the series (<code>null</code> not permitted).
     * @param domain  the domain description (<code>null</code> permitted).
     * @param range  the range description (<code>null</code> permitted).
     * @param timePeriodClass  the type of time period (<code>null</code> not 
     *                         permitted).
     */
    public TimeSeries(String name, String domain, String range, 
                      Class timePeriodClass) {

        super(name);
        this.domain = domain;
        this.range = range;
        this.timePeriodClass = timePeriodClass;
        this.data = new java.util.ArrayList();
        this.maximumItemCount = Integer.MAX_VALUE;
        this.maximumItemAge = Long.MAX_VALUE;
        
    }

    /**
     * Returns the domain description.
     *
     * @return The domain description (possibly <code>null</code>).
     */
    public String getDomainDescription() {
        return this.domain;
    }

    /**
     * Sets the domain description.
     * <P>
     * A property change event is fired, and an undoable edit is posted.
     *
     * @param description  the description (<code>null</code> permitted).
     */
    public void setDomainDescription(String description) {
        String old = this.domain;
        this.domain = description;
        firePropertyChange("Domain", old, description);
    }

    /**
     * Returns the range description.
     *
     * @return The range description (possibly <code>null</code>).
     */
    public String getRangeDescription() {
        return this.range;
    }

    /**
     * Sets the range description and fires a property change event for the 
     * 'Range' property.
     *
     * @param description  the description (<code>null</code> permitted).
     */
    public void setRangeDescription(String description) {
        String old = this.range;
        this.range = description;
        firePropertyChange("Range", old, description);
    }

    /**
     * Returns the number of items in the series.
     *
     * @return The item count.
     */
    public int getItemCount() {
        return this.data.size();
    }

    /**
     * Returns the list of data items for the series (the list contains 
     * {@link TimeSeriesDataItem} objects and is unmodifiable).
     *
     * @return The list of data items.
     */
    public List getItems() {
        return Collections.unmodifiableList(this.data);
    }

    /**
     * Returns the maximum number of items that will be retained in the series.
     * The default value is <code>Integer.MAX_VALUE</code>.
     *
     * @return The maximum item count.
     * 
     * @see #setMaximumItemCount(int)
     */
    public int getMaximumItemCount() {
        return this.maximumItemCount;
    }

    /**
     * Sets the maximum number of items that will be retained in the series.  
     * If you add a new item to the series such that the number of items will 
     * exceed the maximum item count, then the FIRST element in the series is 
     * automatically removed, ensuring that the maximum item count is not 
     * exceeded.
     *
     * @param maximum  the maximum (requires >= 0).
     * 
     * @see #getMaximumItemCount()
     */
    public void setMaximumItemCount(int maximum) {
        if (maximum < 0) {
            throw new IllegalArgumentException("Negative 'maximum' argument.");
        }
        this.maximumItemCount = maximum;
        int count = this.data.size();
        if (count > maximum) {
            delete(0, count - maximum - 1);
        }
    }

    /**
     * Returns the maximum item age (in time periods) for the series.
     *
     * @return The maximum item age.
     * 
     * @see #setMaximumItemAge(long)
     */
    public long getMaximumItemAge() {
        return this.maximumItemAge;
    }

    /**
     * Sets the number of time units in the 'history' for the series.  This 
     * provides one mechanism for automatically dropping old data from the
     * time series. For example, if a series contains daily data, you might set
     * the history count to 30.  Then, when you add a new data item, all data
     * items more than 30 days older than the latest value are automatically 
     * dropped from the series.
     *
     * @param periods  the number of time periods.
     * 
     * @see #getMaximumItemAge()
     */
    public void setMaximumItemAge(long periods) {
        if (periods < 0) {
            throw new IllegalArgumentException("Negative 'periods' argument.");
        }
        this.maximumItemAge = periods;
        removeAgedItems(true);  // remove old items and notify if necessary
    }

    /**
     * Returns the time period class for this series.
     * <p>
     * Only one time period class can be used within a single series (enforced).
     * If you add a data item with a {@link Year} for the time period, then all
     * subsequent data items must also have a {@link Year} for the time period.
     *
     * @return The time period class (never <code>null</code>).
     */
    public Class getTimePeriodClass() {
        return this.timePeriodClass;
    }

    /**
     * Returns a data item for the series.
     *
     * @param index  the item index (zero-based).
     *
     * @return The data item.
     */
    public TimeSeriesDataItem getDataItem(int index) {
        return (TimeSeriesDataItem) this.data.get(index);
    }

    /**
     * Returns the data item for a specific period.
     *
     * @param period  the period of interest (<code>null</code> not allowed).

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产综合人成综合网站| 色综合久久久久网| eeuss鲁片一区二区三区在线看| 91黄视频在线| 国产精品美女久久久久久久久久久| 亚洲第一二三四区| 99精品热视频| 国产日韩欧美亚洲| 蜜臀av一区二区在线免费观看| 99久久综合国产精品| 精品免费国产二区三区| 亚洲图片欧美一区| 97精品视频在线观看自产线路二| 精品国内片67194| 日韩不卡一二三区| 欧美日韩国产影片| 亚洲在线中文字幕| 色爱区综合激月婷婷| 欧美高清在线精品一区| 国内不卡的二区三区中文字幕| 精品污污网站免费看| 亚洲精品成人在线| 色综合久久88色综合天天| 亚洲视频每日更新| 不卡视频一二三| 国产精品三级视频| 波多野结衣在线aⅴ中文字幕不卡| 久久久久亚洲蜜桃| 极品瑜伽女神91| 精品福利一区二区三区| 六月丁香综合在线视频| 欧美不卡一区二区三区| 久久国产精品第一页| 日韩美一区二区三区| 蜜桃视频一区二区| 精品理论电影在线| 国产麻豆一精品一av一免费 | 欧美国产国产综合| 国产精品99久久久| 欧美国产亚洲另类动漫| caoporm超碰国产精品| 亚洲欧美在线aaa| 91在线观看污| 亚洲一区二区在线播放相泽| 8x8x8国产精品| 精品一区二区免费| 亚洲国产成人私人影院tom| 99国内精品久久| 亚洲电影第三页| 日韩视频免费观看高清完整版在线观看 | 国产精品五月天| 99久久精品国产麻豆演员表| 一区二区三区在线高清| 欧美日韩国产大片| 国产在线国偷精品免费看| 国产精品日日摸夜夜摸av| 91久久精品一区二区三区| 亚洲成人激情自拍| 欧美大片拔萝卜| 丁香另类激情小说| 亚洲福利视频三区| 精品成人私密视频| 色婷婷一区二区| 人妖欧美一区二区| 国产女人18毛片水真多成人如厕 | 日本中文字幕一区| 亚洲国产精品传媒在线观看| 在线观看免费一区| 国产乱国产乱300精品| 亚洲最大的成人av| 久久综合色天天久久综合图片| 99久久er热在这里只有精品66| 无码av中文一区二区三区桃花岛| 久久久久久久久久久电影| 日本久久电影网| 欧美一区二区在线免费观看| 国产精品综合二区| 午夜精品久久久久久久蜜桃app| 久久嫩草精品久久久精品一| 色8久久精品久久久久久蜜 | 久久久久久99精品| 欧美乱妇23p| 91在线码无精品| 国产伦理精品不卡| 七七婷婷婷婷精品国产| 亚洲乱码国产乱码精品精的特点 | 欧美主播一区二区三区| 国产高清成人在线| 麻豆中文一区二区| 亚洲成人午夜影院| 自拍偷拍亚洲综合| 中文字幕av一区二区三区免费看 | 国产成人亚洲综合a∨婷婷图片| 亚洲福利一二三区| 一区二区三区日韩| 国产精品毛片a∨一区二区三区| 26uuu色噜噜精品一区二区| 91精品国产综合久久久蜜臀粉嫩| 在线观看日韩精品| 91国偷自产一区二区开放时间| 大胆欧美人体老妇| 国产精品一区二区黑丝| 久久国产免费看| 日本不卡高清视频| 日韩vs国产vs欧美| 三级一区在线视频先锋 | 一级中文字幕一区二区| 亚洲人吸女人奶水| 国产精品毛片高清在线完整版| 久久久久久一二三区| 久久久久久久精| 国产拍欧美日韩视频二区| 欧美国产精品专区| 国产精品婷婷午夜在线观看| 欧美国产日韩a欧美在线观看| 国产三级一区二区三区| 久久久久久久免费视频了| 国产日韩影视精品| 国产午夜亚洲精品不卡| 亚洲国产成人午夜在线一区| 国产精品电影一区二区三区| 最好看的中文字幕久久| 亚洲激情综合网| 午夜精品久久久久久久| 青青草97国产精品免费观看| 久久成人久久鬼色| 国产成人99久久亚洲综合精品| 国产成人精品免费| 91免费视频网址| 在线观看亚洲精品| 宅男在线国产精品| 亚洲精品一区二区三区四区高清| 国产亚洲欧美一级| 国产精品日韩精品欧美在线| 亚洲精品乱码久久久久久日本蜜臀| 亚洲女人****多毛耸耸8| 亚洲一区二区三区四区不卡| 日韩av不卡一区二区| 国产精品1区2区3区在线观看| hitomi一区二区三区精品| 欧美日韩在线亚洲一区蜜芽| 3atv在线一区二区三区| 久久久久久久av麻豆果冻| 亚洲精品写真福利| 美脚の诱脚舐め脚责91| 成+人+亚洲+综合天堂| 欧美色大人视频| 久久精品一区二区三区av| 亚洲日穴在线视频| 蜜桃视频在线观看一区| 99久久综合99久久综合网站| 欧美一区二区三区不卡| 国产精品无圣光一区二区| 午夜精品在线看| 国产乱码精品一区二区三区av| 91影视在线播放| 337p粉嫩大胆噜噜噜噜噜91av| 自拍偷拍国产精品| 另类小说一区二区三区| 91视频国产资源| 国产亚洲人成网站| 日韩激情视频网站| 94-欧美-setu| 久久夜色精品国产欧美乱极品| 一区二区三区在线视频播放| 国内精品国产三级国产a久久| 在线欧美日韩国产| 国产精品毛片久久久久久久| 久久福利资源站| 欧美怡红院视频| 中文一区二区在线观看| 免费观看一级特黄欧美大片| 在线观看日韩精品| 国产精品不卡在线| 国内欧美视频一区二区| 欧美视频你懂的| 欧美激情一区二区| 国产在线精品一区二区| 91精品欧美一区二区三区综合在 | 美女在线视频一区| 欧美自拍偷拍午夜视频| 中文字幕+乱码+中文字幕一区| 久久超碰97人人做人人爱| 91精品国产综合久久福利| 亚洲成人tv网| 91国模大尺度私拍在线视频| 综合自拍亚洲综合图不卡区| 成人免费视频app| 久久久美女艺术照精彩视频福利播放| 亚洲一级电影视频| 在线观看av不卡| 一区二区三区精品在线观看| 99九九99九九九视频精品| 国产日韩在线不卡| 国产成人av福利| 亚洲国产电影在线观看| 成人动漫av在线| 最新国产精品久久精品| 91在线看国产| 亚洲一二三级电影|