ucar.unidata.data.imagery
Class ImageXmlDataSource

java.lang.Object
  extended by ucar.unidata.collab.SharableImpl
      extended by ucar.unidata.data.DataSourceImpl
          extended by ucar.unidata.data.FilesDataSource
              extended by ucar.unidata.data.imagery.ImageXmlDataSource
All Implemented Interfaces:
Sharable, DataSource, DataSourceFactory, XmlPersistable

public class ImageXmlDataSource
extends FilesDataSource

This is an implementation that will read in a generic data file and return a single Data choice that is a VisAD Data object.


Field Summary
static String ATTR_BASE
          xml attr name
static String ATTR_BYTES
          xml attr name
static String ATTR_DATE
          xml attr name
static String ATTR_FORMAT
          xml attr name
static String ATTR_ID
          xml attr name
static String ATTR_NAME
          xml attr name
static String ATTR_URL
          xml attr name
static String EXT_XIMG
          For ximg files
static PatternFileFilter FILTER_XIMG
          For ximg files
static String TAG_BYTES
          xml tag name
static String TAG_COLLECTION
          xml tag name
static String TAG_GROUP
          xml tag name
static String TAG_IMAGE
          xml tag name
static String TAG_SHAPE
          xml tag name
 
Fields inherited from class ucar.unidata.data.FilesDataSource
adapters, oldSourceFromBundles, sources
 
Fields inherited from class ucar.unidata.data.DataSourceImpl
changeDataPathsCbx, dataCacheKey, dataChoices, geoSelectionPanel, haveBeenUnPersisted, okToContinue, PARAM_SHOW_HIDE, PARAM_SHOW_NO, PARAM_SHOW_YES
 
Fields inherited from interface ucar.unidata.data.DataSource
MOST_RECENT, ordinalNames, PROP_AUTOCREATEDISPLAY, PROP_BASEDIRECTORY, PROP_CACHEABLE, PROP_DATACHOICENAME, PROP_DISPLAYPROPERTIES, PROP_DOCUMENTLINKS, PROP_FILEPATTERN, PROP_GEOLOCATION, PROP_ICON, PROP_NAME, PROP_POLLINFO, PROP_RESOLVERURL, PROP_SERVICE_HTTP, PROP_SUBPROPERTIES, PROP_TIMELABELS, PROP_TITLE
 
Constructor Summary
ImageXmlDataSource()
          Parameterless ctor for xml encoding.
ImageXmlDataSource(DataSourceDescriptor descriptor, String filename, Hashtable properties)
          Just pass through to the base class the ctor arguments.
 
Method Summary
 boolean canSaveDataToLocalDisk()
          Is this data source capable of saving its data to local disk
protected  void doMakeDataChoices()
          This method is called at initialization time and should create a set of DirectDataChoice-s and add them into the base class managed list of DataChoice-s with the method addDataChoice.
protected  List doMakeDateTimes()
          You can also override the base class method to return the list of all date/times that this DataSource holds.
 List getAllDateTimes(DataChoice dataChoice)
          Override the base class method to return the times for the data choice
protected  Data getDataInner(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties)
          This method should create and return the visad.Data that is identified by the given DataChoice.
 List getDataPaths()
          tmp
protected  void recurseXml(Element root, CompositeDataChoice cdc)
          Process the xml
protected  List saveDataToLocalDisk(String prefix, Object loadId, boolean changeLinks)
          Save remote data to local disk.
 void setXmlFile(String value)
          Set the XmlFile property.
static void writeToFile(String filename, GeoLocationInfo bounds, byte[] bytes, String format)
          A utility method that writes out the given image bytes and the ximg file
static void writeToFile(String filename, GeoLocationInfo bounds, String imageFileName)
          A utility method that writes out the given image bytes and the ximg file
 
Methods inherited from class ucar.unidata.data.FilesDataSource
doRemove, equals, getDataFileExtension, getFilePath, getFullDescription, getInputStreams, getLocationsForPolling, getPartialDescription, getSource, getSources, haveSources, initAfterCreation, initAfterUnpersistence, initWithPollingInfo, isFileBased, newFilesFromPolling, processDataFilename, propertiesChanged, reloadData, setNewFiles, setSource, setSources, sourcesChanged, updateState
 
Methods inherited from class ucar.unidata.data.DataSourceImpl
addActions, addDataChangeListener, addDataChoice, addPropertiesTabs, applyFieldMask, applyProperties, beginWritingDataToLocalDisk, canCacheDataToDisk, canChangeData, canDoFieldMask, canDoGeoSelection, canDoGeoSelectionMap, canDoGeoSelectionStride, canPoll, canShowParameter, checkForInitAfterUnPersistence, clearCachedData, clearFileCache, clearTimes, convertToFilesIfDirectory, createAutoDisplay, createCacheKey, createElement, decrOutstandingGetDataCalls, doDirectory, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSubsetPropertiesComponent, endWritingDataToLocalDisk, expandIfNeeded, findDataChoice, findDataChoices, flushCache, getAbsoluteDateTimes, getActions, getAlias, getAllDateTimes, getAllLevels, getAllLevels, getCache, getCacheClearDelay, getCacheDataToDisk, getCompositeDataChoices, getData, getData, getDataCachePath, getDataChangeListeners, getDataChoices, getDataContext, getDataInner, getDataIsEditable, getDataPrefix, getDataSelection, getDataSelectionComponents, getDataSource, getDateTimes, getDateTimeSelection, getDescription, getDescriptor, getErrorMessage, getExtraGeoSelectionComponent, getFileFilterForPolling, getid, getInError, getLocalDirectory, getLocationForPolling, getMostRecentFiles, getName, getNameForDataSource, getNeedToShowErrorToUser, getNextId, getOutstandingGetDataCalls, getPassword, getPathsThatCanBeRelative, getPollingInfo, getProperties, getPropertiesComponents, getPropertiesHeader, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getRelativePaths, getSampleDataProjection, getSaveDataFileLabel, getSelectedDateTimes, getSelectedDateTimes, getTimesFromDataSelection, getTmpPaths, getTypeName, getUserName, handlePropertiesAction, hasPollingInfo, holdsDateTimes, holdsIndices, identifiedBy, identifiedByName, incrOutstandingGetDataCalls, initAfter, initDataChoice, initDataSelectionComponents, initFromXml, isPolling, loadFieldMask, loadFieldMask, loadLatestFile, logException, logException, makeDerivedDataChoices, makeSaveLocalActions, newFileFromPolling, notifyDataChange, putCache, removeCache, removeDataChangeListener, removeDataChoice, removeProperty, replaceDataChoice, resetTmpState, saveDataToLocalDisk, saveDataToLocalDisk, setAlias, setAskToUpdate, setCacheClearDelay, setCacheDataToDisk, setDataEditableStrings, setDataIsEditable, setDataIsRelative, setDataRelativeStrings, setDataSelection, setDateTimeSelection, setDescription, setDescriptor, setDirectory, setInError, setInError, setInError, setName, setObjectProperties, setObjectProperty, setPassword, setPollingInfo, setPollLocation, setProperties, setProperty, setProperty, setRelativePaths, setTemplateName, setTmpPaths, setUserName, shouldCache, showPasswordDialog, showPropertiesDialog, showPropertiesDialog, showPropertiesDialog, showWaitDialog, tick, toString, toStringTruncated, updateDetailsText, writeFieldMaskFile, writeFieldMaskFile
 
Methods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setShareGroup, setSharing, setUniqueId, showSharableDialog
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ucar.unidata.data.DataSource
getUniqueId
 

Field Detail

FILTER_XIMG

public static final PatternFileFilter FILTER_XIMG
For ximg files


EXT_XIMG

public static final String EXT_XIMG
For ximg files

See Also:
Constant Field Values

TAG_COLLECTION

public static final String TAG_COLLECTION
xml tag name

See Also:
Constant Field Values

TAG_GROUP

public static final String TAG_GROUP
xml tag name

See Also:
Constant Field Values

TAG_IMAGE

public static final String TAG_IMAGE
xml tag name

See Also:
Constant Field Values

TAG_BYTES

public static final String TAG_BYTES
xml tag name

See Also:
Constant Field Values

TAG_SHAPE

public static final String TAG_SHAPE
xml tag name

See Also:
Constant Field Values

ATTR_BASE

public static final String ATTR_BASE
xml attr name

See Also:
Constant Field Values

ATTR_ID

public static final String ATTR_ID
xml attr name

See Also:
Constant Field Values

ATTR_FORMAT

public static final String ATTR_FORMAT
xml attr name

See Also:
Constant Field Values

ATTR_BYTES

public static final String ATTR_BYTES
xml attr name

See Also:
Constant Field Values

ATTR_DATE

public static final String ATTR_DATE
xml attr name

See Also:
Constant Field Values

ATTR_URL

public static final String ATTR_URL
xml attr name

See Also:
Constant Field Values

ATTR_NAME

public static final String ATTR_NAME
xml attr name

See Also:
Constant Field Values
Constructor Detail

ImageXmlDataSource

public ImageXmlDataSource()
Parameterless ctor for xml encoding.


ImageXmlDataSource

public ImageXmlDataSource(DataSourceDescriptor descriptor,
                          String filename,
                          Hashtable properties)
                   throws VisADException
Just pass through to the base class the ctor arguments.

Parameters:
descriptor - Describes this data source, has a label etc.
filename - This is the filename (or url) that points to the actual data source.
properties - General properties used in the base class idv * @throws VisADException problem getting the data
Throws:
VisADException
Method Detail

getDataPaths

public List getDataPaths()
tmp

Specified by:
getDataPaths in interface DataSource
Overrides:
getDataPaths in class FilesDataSource
Returns:
tmp

canSaveDataToLocalDisk

public boolean canSaveDataToLocalDisk()
Is this data source capable of saving its data to local disk

Specified by:
canSaveDataToLocalDisk in interface DataSource
Overrides:
canSaveDataToLocalDisk in class DataSourceImpl
Returns:
Can save to local disk

saveDataToLocalDisk

protected List saveDataToLocalDisk(String prefix,
                                   Object loadId,
                                   boolean changeLinks)
                            throws Exception
Save remote data to local disk. This is a NOOP.

Overrides:
saveDataToLocalDisk in class FilesDataSource
Parameters:
prefix - file dir and prefix
loadId - For JobManager
changeLinks - Change internal references
Returns:
List of files
Throws:
Exception - On badness

getAllDateTimes

public List getAllDateTimes(DataChoice dataChoice)
Override the base class method to return the times for the data choice

Specified by:
getAllDateTimes in interface DataSource
Overrides:
getAllDateTimes in class DataSourceImpl
Parameters:
dataChoice - DataChoice in question
Returns:
List of all times for that choice

doMakeDataChoices

protected void doMakeDataChoices()
This method is called at initialization time and should create a set of DirectDataChoice-s and add them into the base class managed list of DataChoice-s with the method addDataChoice.

Overrides:
doMakeDataChoices in class DataSourceImpl

recurseXml

protected void recurseXml(Element root,
                          CompositeDataChoice cdc)
                   throws Exception
Process the xml

Parameters:
root - xml node
cdc - The parent data choice
Throws:
Exception - On badness

getDataInner

protected Data getDataInner(DataChoice dataChoice,
                            DataCategory category,
                            DataSelection dataSelection,
                            Hashtable requestProperties)
                     throws VisADException,
                            RemoteException
This method should create and return the visad.Data that is identified by the given DataChoice.

Overrides:
getDataInner in class DataSourceImpl
Parameters:
dataChoice - This is one of the DataChoice-s that was created in the doMakeDataChoices call above.
category - The specific DataCategory which the DisplayControl was instantiated with. Usually can be ignored.
dataSelection - This may contain a list of times which subsets the request.
requestProperties - extra request properties
Returns:
The Data object represented by the given dataChoice
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

doMakeDateTimes

protected List doMakeDateTimes()
You can also override the base class method to return the list of all date/times that this DataSource holds.

Overrides:
doMakeDateTimes in class DataSourceImpl
Returns:
This should be an List of DateTime objects.

setXmlFile

public void setXmlFile(String value)
Set the XmlFile property.

Parameters:
value - The new value for XmlFile

writeToFile

public static void writeToFile(String filename,
                               GeoLocationInfo bounds,
                               byte[] bytes,
                               String format)
                        throws FileNotFoundException,
                               IOException
A utility method that writes out the given image bytes and the ximg file

Parameters:
filename - Filename to write to. Will use this to write the image.
bounds - The lat/lon bounds
bytes - The image bytes
format - Image format
Throws:
FileNotFoundException - On badness
IOException - On badness

writeToFile

public static void writeToFile(String filename,
                               GeoLocationInfo bounds,
                               String imageFileName)
                        throws FileNotFoundException,
                               IOException
A utility method that writes out the given image bytes and the ximg file

Parameters:
filename - Filename to write to. Will use this to write the image.
bounds - The lat/lon bounds
imageFileName - The image file this represents
Throws:
FileNotFoundException - On badness
IOException - On badness