## visad.data.netcdf.in
Class FileStrategy

    java.lang.Object
      visad.data.netcdf.in.Strategy
          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 `FileFlatField`s wherever possible, but merging the data so as to keep the number of `FileFlatField`s to a minimum.

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

Instances are immutable.

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.