thredds.catalog
Class InvCatalog

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

public abstract class InvCatalog
extends 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  URI baseURI
           
protected  List<InvDataset> datasets
           
protected  Map<String,InvDataset> dsHash
           
protected  DateType expires
           
protected  String name
           
protected  List<InvProperty> properties
           
protected  Map<String,InvService> serviceHash
           
protected  List<InvService> services
           
protected  InvDatasetImpl topDataset
           
protected  String version
           
 
Constructor Summary
protected InvCatalog()
          Protected constructor.
 
Method Summary
 boolean check(StringBuilder out)
          Check internal data structures.
abstract  boolean check(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(String id)
          Find a contained dataset by its ID.
 String findProperty(String name)
          Find named property.
 InvService findService(String name)
          Find the named service declared in the top level of this catalog.
 InvDatasetImpl getDataset()
          Deprecated. use getDatasets()
 List<InvDataset> getDatasets()
          Get top-level datasets.
 DateType getExpires()
          Get date catalog expires, or null if none given.
 String getName()
          Get the name of the catalog
 List<InvProperty> getProperties()
          Get catalog properties.
 List<InvService> getServices()
          Get top-level services.
 String getUriString()
          Get the base URI as a String
 String getVersion()
          Get the version of the catalog
 URI resolveUri(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 String name

version

protected String version

baseURI

protected URI baseURI

topDataset

protected InvDatasetImpl topDataset

dsHash

protected Map<String,InvDataset> dsHash

serviceHash

protected Map<String,InvService> serviceHash

services

protected List<InvService> services

properties

protected List<InvProperty> properties

datasets

protected List<InvDataset> datasets

expires

protected DateType expires
Constructor Detail

InvCatalog

protected InvCatalog()
Protected constructor.

Method Detail

getName

public String getName()
Get the name of the catalog

Returns:
name of catalog

getVersion

public String getVersion()
Get the version of the catalog

Returns:
catalog version

getDataset

public InvDatasetImpl getDataset()
Deprecated. use getDatasets()

Get top-level dataset.

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

findDatasetByID

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

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

getDatasets

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

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

getServices

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

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

getProperties

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

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

findProperty

public String findProperty(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(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 URI resolveUri(String uriString)
               throws 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:
URISyntaxException - if uriString violates RFC 2396
See Also:
URI.resolve(java.net.URI)

getUriString

public String getUriString()
Get the base URI as a String

Returns:
baseURI as a String

check

public abstract boolean check(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(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.


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