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

Field Summary
protected  java.net.URI baseURI
           
protected  java.util.List<InvDataset> datasets
           
protected  java.util.Map<java.lang.String,InvDataset> dsHash
           
protected  DateType expires
           
protected  java.lang.String name
           
protected  java.util.List<InvProperty> properties
           
protected  java.util.Map<java.lang.String,InvService> serviceHash
           
protected  java.util.List<InvService> services
           
protected  InvDatasetImpl topDataset
           
protected  java.lang.String version
           
 
Constructor Summary
protected InvCatalog()
          Protected constructor.
 
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

name

protected java.lang.String name

version

protected java.lang.String version

baseURI

protected java.net.URI baseURI

topDataset

protected InvDatasetImpl topDataset

dsHash

protected java.util.Map<java.lang.String,InvDataset> dsHash

serviceHash

protected java.util.Map<java.lang.String,InvService> serviceHash

services

protected java.util.List<InvService> services

properties

protected java.util.List<InvProperty> properties

datasets

protected java.util.List<InvDataset> datasets

expires

protected DateType expires
Constructor Detail

InvCatalog

protected InvCatalog()
Protected constructor.

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.