org.jfree.data.general

Class AbstractDataset

Implemented Interfaces:
Cloneable, Dataset, ObjectInputValidation, Serializable
Known Direct Subclasses:
AbstractSeriesDataset, CategoryToPieDataset, DefaultBoxAndWhiskerCategoryDataset, DefaultCategoryDataset, DefaultKeyedValueDataset, DefaultPieDataset, DefaultStatisticalCategoryDataset, DefaultValueDataset, WaferMapDataset

public abstract class AbstractDataset
extends java.lang.Object
implements Dataset, Cloneable, Serializable, ObjectInputValidation

An abstract implementation of the Dataset interface, containing a mechanism for registering change listeners.

Constructor Summary

AbstractDataset()
Constructs a dataset.

Method Summary

void
addChangeListener(DatasetChangeListener listener)
Registers an object to receive notification of changes to the dataset.
Object
clone()
Returns a clone of the dataset.
protected void
fireDatasetChanged()
Notifies all registered listeners that the dataset has changed.
DatasetGroup
getGroup()
Returns the dataset group for the dataset.
boolean
hasListener(EventListener listener)
Returns true if the specified object is registered with the dataset as a listener.
protected void
notifyListeners(DatasetChangeEvent event)
Notifies all registered listeners that the dataset has changed.
void
removeChangeListener(DatasetChangeListener listener)
Deregisters an object so that it no longer receives notification of changes to the dataset.
void
setGroup(DatasetGroup group)
Sets the dataset group for the dataset.
void
validateObject()
Validates the object.

Constructor Details

AbstractDataset

protected AbstractDataset()
Constructs a dataset. By default, the dataset is assigned to its own group.

Method Details

addChangeListener

public void addChangeListener(DatasetChangeListener listener)
Registers an object to receive notification of changes to the dataset.
Specified by:
addChangeListener in interface Dataset
Parameters:
listener - the object to register.

clone

public Object clone()
            throws CloneNotSupportedException
Returns a clone of the dataset. The cloned dataset will NOT include the DatasetChangeListener references that have been registered with this dataset.
Returns:
A clone.

fireDatasetChanged

protected void fireDatasetChanged()
Notifies all registered listeners that the dataset has changed.

getGroup

public DatasetGroup getGroup()
Returns the dataset group for the dataset.
Specified by:
getGroup in interface Dataset
Returns:
The group.

hasListener

public boolean hasListener(EventListener listener)
Returns true if the specified object is registered with the dataset as a listener. Most applications won't need to call this method, it exists mainly for use by unit testing code.
Parameters:
listener - the listener.
Returns:
A boolean.

notifyListeners

protected void notifyListeners(DatasetChangeEvent event)
Notifies all registered listeners that the dataset has changed.
Parameters:
event - contains information about the event that triggered the notification.

removeChangeListener

public void removeChangeListener(DatasetChangeListener listener)
Deregisters an object so that it no longer receives notification of changes to the dataset.
Specified by:
removeChangeListener in interface Dataset
Parameters:
listener - the object to deregister.

setGroup

public void setGroup(DatasetGroup group)
Sets the dataset group for the dataset.
Specified by:
setGroup in interface Dataset
Parameters:
group - the group (null not permitted).

validateObject

public void validateObject()
            throws InvalidObjectException
Validates the object. We use this opportunity to call listeners who have registered during the deserialization process, as listeners are not serialized. This method is called by the serialization system after the entire graph is read. This object has registered itself to the system with a priority of 10. Other callbacks may register with a higher priority number to be called before this object, or with a lower priority number to be called after the listeners were notified. All listeners are supposed to have register by now, either in their readObject or validateObject methods. Notify them that this dataset has changed.