visad.data.netcdf.in
Class FileStrategy

java.lang.Object
  extended by visad.data.netcdf.in.Strategy
      extended by visad.data.netcdf.in.FileStrategy
Direct Known Subclasses:
MaxFileFieldStrategy

public class FileStrategy
extends Strategy

Provides support for importing netCDF datasets using the strategy of employing FileFlatFields wherever possible, but merging the data so as to keep the number of FileFlatFields to a minimum.

This class may be subclassed in order to use a different data merger tactic -- one that maximizes the number of FileFlatFields, for example (see getMerger()).

Instances are immutable.

Author:
Steven R. Emmerson

Field Summary
 
Fields inherited from class visad.data.netcdf.in.Strategy
DEFAULT, IN_MEMORY, MERGED_FILE_FLAT_FIELDS, UNMERGED_FILE_FLAT_FIELDS
 
Constructor Summary
protected FileStrategy()
          Constructs from nothing.
 
Method Summary
 DataImpl getData(NetcdfAdapter adapter)
          Returns a VisAD data object corresponding to the netCDF dataset.
protected  Merger getMerger()
          Returns the Merger for cosolidating virtual data objects together.
static Strategy instance()
          Returns an instance of this class.
static void main(String[] args)
          Tests this class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileStrategy

protected FileStrategy()
Constructs from nothing. Protected to ensure use of instance() method.

See Also:
instance()
Method Detail

instance

public static Strategy instance()
Returns an instance of this class.

Returns:
An instance of this class.

getData

public DataImpl getData(NetcdfAdapter adapter)
                 throws IOException,
                        VisADException,
                        RemoteException,
                        BadFormException,
                        OutOfMemoryError
Returns a VisAD data object corresponding to the netCDF dataset. This method uses the Merger returned by getMerger().

Specified by:
getData in class Strategy
Parameters:
adapter - The netCDF-to-VisAD adapter.
Returns:
The top-level, VisAD data object in the netCDF dataset.
Throws:
VisADException - if a problem occurs in core VisAD -- probably because a VisAD object couldn't be created.
IOException - if a data access I/O failure occurs.
BadFormException - if the netCDF dataset doesn't conform to conventions implicit in constructing View.
OutOfMemoryError - if the netCDF dataset couldn't be imported into memory.
RemoteException - if a Java RMI failure occurs.
See Also:
getMerger()

getMerger

protected Merger getMerger()
Returns the Merger for cosolidating virtual data objects together. The Merger returned by this method is Merger.instance(). This method may be overridden in subclasses to supply a different merger strategy (e.g. maximizing the number of FileFlatField-s).

Returns:
The Merger for cosolidating virtual data objects together.
See Also:
Merger

main

public static void main(String[] args)
                 throws Exception
Tests this class.

Parameters:
args - File pathnames.
Throws:
Exception - Something went wrong.