ucar.unidata.data.text
Class NwxTextProductDataSource

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.text.TextProductDataSource
                  extended by ucar.unidata.data.text.NwxTextProductDataSource
All Implemented Interfaces:
Sharable, DataSource, DataSourceFactory, XmlPersistable
Direct Known Subclasses:
AddeTextProductDataSource

public class NwxTextProductDataSource
extends TextProductDataSource

A class for handling text products configured from NWX tables

Version:
$Revision: 1.15 $
Author:
IDV development team

Nested Class Summary
protected  class NwxTextProductDataSource.TableInfo
          Class to hold the table information
 
Field Summary
protected static String GUI_TABLE
          the gui table
protected static String MASTER_TABLE
          the master table
 
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
DATAPATH_DATE_FORMAT, DATAPATH_DATE_PATTERN, 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
NwxTextProductDataSource()
          Default bean constructor; does nothing.
NwxTextProductDataSource(DataSourceDescriptor descriptor, List files, Hashtable properties)
           
NwxTextProductDataSource(DataSourceDescriptor descriptor, List newSources, String name, String description, Hashtable properties)
          Create a TrackDataSource from the specification given.
NwxTextProductDataSource(DataSourceDescriptor descriptor, String filename, Hashtable properties)
           
 
Method Summary
protected  boolean canHandleType(NwxTextProductDataSource.TableInfo ti)
          Can we handle this type of data?
 String getAdditionalResourcesError()
          Get the error message if additional resources aren't available
protected  NamedStationTable getAvailableStations(NamedStationTable all, NwxTextProductDataSource.TableInfo tableInfo, ucar.unidata.util.DateSelection dateSelection)
          Get the stations for a productType
static Date getDateFromFileName(String path)
          Get the Date from the file name
protected  String getPath(String prop, String title)
          This looks in the paths map for the given property.
 Hashtable<String,String> getPaths()
          Get the Paths property.
 List<ProductGroup> getProductGroups()
          Get the list of product groups
 NamedStationTable getStations(ProductType productType, ucar.unidata.util.DateSelection dateSelection)
          Get the stations for a productType
 NwxTextProductDataSource.TableInfo getTableInfo(ProductType productType)
          Get the table for the product type
protected  String getTablePath()
          Get the table path.
protected  void initAfter()
          Initialize after opening.
static void main(String[] args)
          Test this
protected  List<Product> readProducts(NwxTextProductDataSource.TableInfo tableInfo, List<NamedStationImpl> stations, ucar.unidata.util.DateSelection dateSelection)
          Read the products for defined by the table info.
 List<Product> readProducts(ProductType productType, List<NamedStationImpl> stations, ucar.unidata.util.DateSelection dateSelection)
          Read products
protected  boolean setAdditionalResources()
          Set the additional resources needed for this to work.
 void setPaths(Hashtable<String,String> value)
          Set the Paths property.
 
Methods inherited from class ucar.unidata.data.text.TextProductDataSource
doMakeDataChoices, makeStationMap
 
Methods inherited from class ucar.unidata.data.FilesDataSource
doRemove, equals, getDataFileExtension, getDataPaths, getFilePath, getFullDescription, getInputStreams, getLocationsForPolling, getPartialDescription, getSource, getSources, haveSources, initAfterCreation, initAfterUnpersistence, initWithPollingInfo, isFileBased, newFilesFromPolling, processDataFilename, propertiesChanged, reloadData, reloadData, saveDataToLocalDisk, setNewFiles, setSource, setSources, sourcesChanged, updateState
 
Methods inherited from class ucar.unidata.data.DataSourceImpl
addActions, addDataChangeListener, addDataChoice, addPropertiesTabs, addReloadTab, applyFieldMask, applyProperties, beginWritingDataToLocalDisk, canAddCurrentName, canCacheDataToDisk, canChangeData, canDoFieldMask, canDoGeoSelection, canDoGeoSelectionMap, canDoGeoSelectionStride, canPoll, canSaveDataToLocalDisk, canShowParameter, checkForInitAfterUnPersistence, clearCachedData, clearFileCache, clearTimes, convertSourceFile, convertToFilesIfDirectory, createAutoDisplay, createCacheKey, createElement, decrOutstandingGetDataCalls, doDirectory, doMakeDateTimes, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSubsetPropertiesComponent, endWritingDataToLocalDisk, expandIfNeeded, findDataChoice, findDataChoices, flushCache, getAbsoluteDateTimes, getActions, getAlias, getAllDateTimes, getAllDateTimes, getAllLevels, getAllLevels, getAllTimesForTimeDriver, getCache, getCache, getCacheClearDelay, getCacheDataToDisk, getCompositeDataChoices, getData, getData, getDataCachePath, getDataChangeListeners, getDataChoices, getDataContext, getDataInner, getDataInner, getDataIsEditable, getDataPrefix, getDataSelection, getDataSelectionComponents, getDataSource, getDateTimes, getDateTimeSelection, getDescription, getDescriptor, getErrorMessage, getEverChangedName, getExtraGeoSelectionComponent, getExtraTimesComponent, getFileFilterForPolling, getid, getIdv, 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, initDataChoice, initDataSelectionComponents, initFromXml, isPolling, loadFieldMask, loadFieldMask, loadLatestFile, logException, logException, makeDerivedDataChoices, makeSaveLocalActions, newFileFromPolling, notifyDataChange, putCache, putCache, reloadProperties, removeCache, removeDataChangeListener, removeDataChoice, removeProperty, replaceDataChoice, resetTmpState, saveDataToLocalDisk, saveDataToLocalDisk, selectTimesFromList, setAlias, setAskToUpdate, setCacheClearDelay, setCacheDataToDisk, setDataEditableStrings, setDataIsEditable, setDataIsRelative, setDataRelativeStrings, setDataSelection, setDateTimeSelection, setDescription, setDescriptor, setDirectory, setEverChangedName, setInError, setInError, setInError, setName, setObjectProperties, setObjectProperty, setPassword, setPollingInfo, setPollLocation, setProperties, setProperty, setProperty, setRelativePaths, setTemplateName, setTmpPaths, setUserName, shouldCache, 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, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setReceiveShareTime, 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

MASTER_TABLE

protected static String MASTER_TABLE
the master table


GUI_TABLE

protected static String GUI_TABLE
the gui table

Constructor Detail

NwxTextProductDataSource

public NwxTextProductDataSource()
Default bean constructor; does nothing.


NwxTextProductDataSource

public NwxTextProductDataSource(DataSourceDescriptor descriptor,
                                String filename,
                                Hashtable properties)
Parameters:
descriptor - descriptor for this DataSource
filename - name of the file (or URL)
properties - extra data source properties

NwxTextProductDataSource

public NwxTextProductDataSource(DataSourceDescriptor descriptor,
                                List files,
                                Hashtable properties)
Parameters:
descriptor - Descriptor for this DataSource
files - List of files or urls
properties - Extra data source properties

NwxTextProductDataSource

public NwxTextProductDataSource(DataSourceDescriptor descriptor,
                                List newSources,
                                String name,
                                String description,
                                Hashtable properties)
Create a TrackDataSource from the specification given.

Parameters:
descriptor - data source descriptor
newSources - List of sources of data (filename/URL)
name - my name
description - description of the data
properties - extra properties for initialization
Method Detail

getTableInfo

public NwxTextProductDataSource.TableInfo getTableInfo(ProductType productType)
Get the table for the product type

Parameters:
productType - the product type
Returns:
the table or null if one can't be found

getStations

public NamedStationTable getStations(ProductType productType,
                                     ucar.unidata.util.DateSelection dateSelection)
                              throws Exception
Get the stations for a productType

Specified by:
getStations in class TextProductDataSource
Parameters:
productType - the product type
dateSelection - the date selection
Returns:
the list of stations
Throws:
Exception - problem reading the stations

getAvailableStations

protected NamedStationTable getAvailableStations(NamedStationTable all,
                                                 NwxTextProductDataSource.TableInfo tableInfo,
                                                 ucar.unidata.util.DateSelection dateSelection)
Get the stations for a productType

Parameters:
all - all the possible station
tableInfo - table info for the product
dateSelection - the date selection
Returns:
the list of stations with reports

readProducts

public List<Product> readProducts(ProductType productType,
                                  List<NamedStationImpl> stations,
                                  ucar.unidata.util.DateSelection dateSelection)
Read products

Specified by:
readProducts in class TextProductDataSource
Parameters:
productType - the product type
stations - the stations
dateSelection - the date selection
Returns:
the list of products

getProductGroups

public List<ProductGroup> getProductGroups()
Get the list of product groups

Specified by:
getProductGroups in class TextProductDataSource
Returns:
the list of product groups

getPath

protected String getPath(String prop,
                         String title)
This looks in the paths map for the given property. If not found it checks the environment variables. If still not found it prompts the user for a directory

Parameters:
prop - property id
title - title for the file chooser
Returns:
The path or null

getTablePath

protected String getTablePath()
Get the table path. Subclasses can overrid

Returns:
the base path of the data.

setAdditionalResources

protected boolean setAdditionalResources()
Set the additional resources needed for this to work.

Returns:
true if resources set okay

getAdditionalResourcesError

public String getAdditionalResourcesError()
Get the error message if additional resources aren't available

Returns:
error messaage

initAfter

protected void initAfter()
Initialize after opening.

Overrides:
initAfter in class DataSourceImpl

readProducts

protected List<Product> readProducts(NwxTextProductDataSource.TableInfo tableInfo,
                                     List<NamedStationImpl> stations,
                                     ucar.unidata.util.DateSelection dateSelection)
Read the products for defined by the table info. Subclasses need to override this method for their particular stuff

Parameters:
tableInfo - the table info
stations - the stations
dateSelection - the date selection
Returns:
the products

getDateFromFileName

public static Date getDateFromFileName(String path)
Get the Date from the file name

Parameters:
path - file path
Returns:
the date or null

canHandleType

protected boolean canHandleType(NwxTextProductDataSource.TableInfo ti)
Can we handle this type of data?

Parameters:
ti - the table info
Returns:
true if we can handle it.

setPaths

public void setPaths(Hashtable<String,String> value)
Set the Paths property.

Parameters:
value - The new value for Paths

getPaths

public Hashtable<String,String> getPaths()
Get the Paths property.

Returns:
The Paths

main

public static void main(String[] args)
Test this

Parameters:
args - input