thredds.catalog
Class InvCatalog

java.lang.Object
  extended by thredds.catalog.InvCatalog
Direct Known Subclasses:
InvCatalogImpl

public abstract class InvCatalog
extends java.lang.Object

Public interface to a thredds catalog, a virtual directory of datasets. A catalog consists of nested collections of InvDatasets.

Author:
john caron

Method Summary
 boolean check(java.lang.StringBuilder out)
          Check internal data structures.
abstract  boolean check(java.lang.StringBuilder out, boolean show)
          Check internal data structures.
abstract  void filter(DatasetFilter filter)
          Munge this catalog to remove any dataset that doesnt pass through the filter.
 InvDataset findDatasetByID(java.lang.String id)
          Find a contained dataset by its ID.
 java.lang.String findProperty(java.lang.String name)
          Find named property.
 InvService findService(java.lang.String name)
          Find the named service declared in the top level of this catalog.
 InvDataset getDataset()
          Deprecated. use getDatasets()
 java.util.List<InvDataset> getDatasets()
          Get top-level datasets.
 DateType getExpires()
          Get date catalog expires, or null if none given.
 java.lang.String getName()
          Get the name of the catalog
 java.util.List<InvProperty> getProperties()
          Get catalog properties.
 java.util.List<InvService> getServices()
          Get top-level services.
 java.lang.String getUriString()
          Get the base URI as a String
 java.lang.String getVersion()
          Get the version of the catalog
 java.net.URI resolveUri(java.lang.String uriString)
          Resolve reletive URIs, using the catalog's base URI.
abstract  void subset(InvDataset dataset)
          Munge this catalog so the given dataset is the top catalog.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getName

public java.lang.String getName()
Get the name of the catalog

Returns:
name of catalog

getVersion

public java.lang.String getVersion()
Get the version of the catalog

Returns:
catalog version

getDataset

public InvDataset getDataset()
Deprecated. use getDatasets()

Get top-level dataset.

Returns:
top-level InvDataset. May not be null.

findDatasetByID

public InvDataset findDatasetByID(java.lang.String id)
Find a contained dataset by its ID.

Parameters:
id - : dataset ID
Returns:
InvDataset or null if not found.

getDatasets

public java.util.List<InvDataset> getDatasets()
Get top-level datasets.

Returns:
List of InvDataset. May be empty, may not be null.

getServices

public java.util.List<InvService> getServices()
Get top-level services.

Returns:
List of InvService. May be empty, may not be null.

getProperties

public java.util.List<InvProperty> getProperties()
Get catalog properties.

Returns:
List of InvProperty. May be empty, may not be null.

findProperty

public java.lang.String findProperty(java.lang.String name)
Find named property.

Parameters:
name - match this name
Returns:
string value of property or null if not exist.

getExpires

public DateType getExpires()
Get date catalog expires, or null if none given.

Returns:
expiration date, or null

findService

public InvService findService(java.lang.String name)
Find the named service declared in the top level of this catalog.

Parameters:
name - match this name
Returns:
service that matches the given name, or null if none found.

resolveUri

public java.net.URI resolveUri(java.lang.String uriString)
                        throws java.net.URISyntaxException
Resolve reletive URIs, using the catalog's base URI. If the uriString is not reletive, then no resolution is done. This also allows baseURI to be a file: scheme.

Parameters:
uriString - any uri, reletive or absolute
Returns:
resolved uri string, or null on error
Throws:
java.net.URISyntaxException - if uriString violates RFC 2396
See Also:
URI.resolve(java.net.URI)

getUriString

public java.lang.String getUriString()
Get the base URI as a String

Returns:
baseURI as a String

check

public abstract boolean check(java.lang.StringBuilder out,
                              boolean show)
Check internal data structures.

Parameters:
out - : print errors here
show - : print messages for each object (debug)
Returns:
true if no fatal consistency errors.

check

public boolean check(java.lang.StringBuilder out)
Check internal data structures.

Parameters:
out - : print errors here
Returns:
true if no fatal consistency errors.

subset

public abstract void subset(InvDataset dataset)
Munge this catalog so the given dataset is the top catalog.

Parameters:
dataset - make this top; must be existing dataset in this catalog.

filter

public abstract void filter(DatasetFilter filter)
Munge this catalog to remove any dataset that doesnt pass through the filter.

Parameters:
filter - remove datasets that dont pass this filter.