ucar.nc2.ft
Class FeatureDatasetFactoryManager

java.lang.Object
  extended by ucar.nc2.ft.FeatureDatasetFactoryManager

public class FeatureDatasetFactoryManager
extends Object

Manager of factories for FeatureDatasets. This supercedes ucar.nc2.dt.TypedDatasetFactory

All point datasets are going through PointDatasetStandardFactory, which uses TableAnalyzer to deal with specific dataset conventions.

Since:
Mar 19, 2008
Author:
caron
See Also:
FeatureDatasetFactory

Constructor Summary
FeatureDatasetFactoryManager()
           
 
Method Summary
static boolean featureTypeOk(FeatureType want, FeatureType facType)
          Determine if factory type matches wanted feature type.
static FeatureType findFeatureType(NetcdfDataset ncd)
          Try to determine the feature type of the dataset, by looking at its metadata.
static void main(String[] args)
           
static FeatureDataset open(FeatureType wantFeatureType, String location, CancelTask task, Formatter errlog)
          Open a dataset as a FeatureDataset.
static void registerFactory(Class c)
          Register a class that implements a FeatureDatasetFactory.
static void registerFactory(FeatureType datatype, Class c)
          Register a class that implements a FeatureDatasetFactory.
static void registerFactory(FeatureType datatype, String className)
          Register a class that implements a FeatureDatasetFactory.
static void registerFactory(String className)
          Register a class that implements a FeatureDatasetFactory.
static FeatureDataset wrap(FeatureType wantFeatureType, NetcdfDataset ncd, CancelTask task, Formatter errlog)
          Wrap a NetcdfDataset as a FeatureDataset.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FeatureDatasetFactoryManager

public FeatureDatasetFactoryManager()
Method Detail

registerFactory

public static void registerFactory(FeatureType datatype,
                                   String className)
                            throws ClassNotFoundException
Register a class that implements a FeatureDatasetFactory.

Parameters:
className - name of class that implements FeatureDatasetFactory.
datatype - scientific data type
Throws:
ClassNotFoundException - if loading error

registerFactory

public static void registerFactory(FeatureType datatype,
                                   Class c)
Register a class that implements a FeatureDatasetFactory.

Parameters:
datatype - scientific data type
c - class that implements FeatureDatasetFactory.

registerFactory

public static void registerFactory(String className)
                            throws ClassNotFoundException
Register a class that implements a FeatureDatasetFactory.

Parameters:
className - name of class that implements FeatureDatasetFactory.
Throws:
ClassNotFoundException - if loading error

registerFactory

public static void registerFactory(Class c)
Register a class that implements a FeatureDatasetFactory. Find out which type by calling getFeatureType().

Parameters:
c - class that implements FeatureDatasetFactory.

open

public static FeatureDataset open(FeatureType wantFeatureType,
                                  String location,
                                  CancelTask task,
                                  Formatter errlog)
                           throws IOException
Open a dataset as a FeatureDataset.

Parameters:
wantFeatureType - open this kind of FeatureDataset; may be null, which means search all factories. If datatype is not null, only return correct FeatureDataset (eg PointFeatureDataset for DataType.POINT).
location - URL or file location of the dataset. This may be a
  1. thredds catalog#dataset (with a thredds: prefix)
  2. cdmremote dataset (with an cdmremote: prefix)
  3. collection dataset (with a collection: prefix)
  4. cdm dataset opened with NetcdfDataset.acquireDataset(), then wrapped
task - user may cancel
errlog - place errors here, may not be null
Returns:
a subclass of FeatureDataset, or null if no suitable factory was found
Throws:
IOException - on io error

wrap

public static FeatureDataset wrap(FeatureType wantFeatureType,
                                  NetcdfDataset ncd,
                                  CancelTask task,
                                  Formatter errlog)
                           throws IOException
Wrap a NetcdfDataset as a FeatureDataset.

Parameters:
wantFeatureType - open this kind of FeatureDataset; may be null, which means search all factories. If datatype is not null, only return FeatureDataset with objects of that type
ncd - the NetcdfDataset to wrap as a FeatureDataset
task - user may cancel
errlog - place errors here, may not be null
Returns:
a subclass of FeatureDataset, or null if no suitable factory was found
Throws:
IOException - on io error

featureTypeOk

public static boolean featureTypeOk(FeatureType want,
                                    FeatureType facType)
Determine if factory type matches wanted feature type.

Parameters:
want - looking for this FeatureType
facType - factory is of this type
Returns:
true if match

findFeatureType

public static FeatureType findFeatureType(NetcdfDataset ncd)
Try to determine the feature type of the dataset, by looking at its metadata.

Parameters:
ncd - the dataset
Returns:
FeatureType if found, else null

main

public static void main(String[] args)
                 throws IOException
Throws:
IOException


Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.