/*
* Copyright 1998, University Corporation for Atmospheric Research
* All Rights Reserved.
* See file LICENSE for copying and redistribution conditions.
*
* $Id: NetcdfInBean.java,v 1.2 2001-11-27 22:29:32 dglo Exp $
*/
package visad.data.netcdf;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.IOException;
import java.io.Serializable;
import visad.DataImpl;
import visad.VisADException;
import visad.data.BadFormException;
/**
* Adapt a netCDF input file to a Java bean.
*/
public class
NetcdfInBean
implements Serializable
{
/**
* The pathname property of the netCDF dataset.
*/
private String pathname = null;
/**
* The VisAD data object.
*/
private DataImpl data = null;
/**
* Support for property changes.
*/
private PropertyChangeSupport changes =
new PropertyChangeSupport(this);
/**
* Set the dataset pathname property.
*/
public synchronized void
setPathname(String pathname)
throws IOException, VisADException, BadFormException
{
String oldPathname = this.pathname;
DataImpl oldData = data;
Plain plain = new Plain();
data = plain.open(pathname);
this.pathname = pathname;
changes.firePropertyChange("pathname", oldPathname, this.pathname);
changes.firePropertyChange("data", oldData, this.data);
}
/**
* Get the dataset pathname property.
*/
public synchronized String
getPathname()
{
return pathname;
}
/**
* Get the VisAD data object property.
*/
public synchronized DataImpl
getData()
{
return data;
}
/**
* Add a property change listener.
*/
public synchronized void
addPropertyChangeListener(PropertyChangeListener p)
{
changes.addPropertyChangeListener(p);
}
/**
* Remove a property change listener.
*/
public synchronized void
removePropertyChangeListener(PropertyChangeListener p)
{
changes.removePropertyChangeListener(p);
}
}