thredds.catalog
Class InvCatalogRef

java.lang.Object
  extended by thredds.catalog.InvDataset
      extended by thredds.catalog.InvDatasetImpl
          extended by thredds.catalog.InvCatalogRef
Direct Known Subclasses:
InvDatasetFmrc, InvDatasetScan

public class InvCatalogRef
extends InvDatasetImpl

A reference to a InvCatalog. The referenced catalog is not read until getDatasets() is called. A client will see the referenced catalog as a nested dataset.

The client can also do asynchronous reading, if the InvCatalogFactory supports it, and if readAsynch() is used.

 Parent relationship:
   ds -> catRef -- catalog
                      ^ top  -> ds ...
 

ParentView relationship: ds -> catRef -> top -> ds ... (or) -> ds if UseProxy

Author:
john caron
See Also:
for API, thredds.catalog.ui.CatalogTreeView as example to read asynchronously

Field Summary
 
Fields inherited from class thredds.catalog.InvDataset
gc, tc
 
Constructor Summary
InvCatalogRef(InvDatasetImpl parent, java.lang.String title, java.lang.String href)
          Constructor.
 
Method Summary
 boolean equals(java.lang.Object o)
          InvDatasetImpl elements with same values are equal.
 InvDatasetImpl findDatasetByName(java.lang.String p0)
          Find an immediate child dataset by its name.
 java.lang.String findProperty(java.lang.String p0)
          Find named property.
 InvService findService(java.lang.String p0)
          Find the named service declared in this dataset or one of its parents.
 boolean finish()
          Finish constructing after all elements have been added.
 java.util.List<InvAccess> getAccess()
          Get all access elements for this dataset.
 InvAccess getAccess(ServiceType p0)
          Get access element of the specified service type for this dataset.
 java.lang.String getAlias()
           
 java.lang.String getAuthority()
          Get authority for this Dataset, may be null.
 CollectionType getCollectionType()
          Get collectionType
 java.util.List<ThreddsMetadata.Contributor> getContributors()
          get Contributor metadata
 java.util.List<ThreddsMetadata.Source> getCreators()
          get any Creator metadata
 DataFormatType getDataFormatType()
          Get the DataFormatType (which may be inherited from parent), or null .
 java.util.List<InvDataset> getDatasets()
          Get a list of all the nested datasets.
 FeatureType getDataType()
          Get the DataType (which may be inherited from parent), or null .
 java.util.List<DateType> getDates()
          get any DateType metadata
 java.util.List<InvDocumentation> getDocumentation()
          Get list of documentation elements for this dataset.
 java.lang.String getDocumentation(java.lang.String p0)
          get specific type of documentation
 java.lang.String getFullName()
          Get the full, heirarchical name of the dataset, which has all parent collection names.
 ThreddsMetadata.GeospatialCoverage getGeospatialCoverage()
          get geospatial coverage
 java.lang.String getID()
          Get the id of the dataset, or null.
 java.util.List<ThreddsMetadata.Vocab> getKeywords()
          get any Keyword metadata
 java.util.List<InvMetadata> getMetadata()
          Get the metadata elements for this InvDataset.
 java.util.List<InvMetadata> getMetadata(MetadataType p0)
          Get the metadata elements of the specified type.
 java.lang.String getName()
          Get the "human readable" name of the dataset.
 InvDataset getParent()
          Get parent dataset.
 java.util.List<ThreddsMetadata.Vocab> getProjects()
          get Projects metadata
 java.util.List<InvProperty> getProperties()
          Get all properties for this dataset.
 InvDatasetImpl getProxyDataset()
          This triggers a read of the referenced catalog the first time its called.
 java.util.List<ThreddsMetadata.Source> getPublishers()
          get Publisher metadata
 InvService getServiceDefault()
          Find the default service for this dataset and its children.
 DateRange getTimeCoverage()
          get time coverage
 java.lang.String getUniqueID()
          If this dataset has an authority and an ID, then the concatenation of them is the globally unique ID.
 java.net.URI getURI()
           
 java.lang.String getUrlPath()
          Get urlPath for this Dataset
 java.lang.Object getUserProperty(java.lang.Object p0)
          Look up the User property having the given key
 java.util.List<ThreddsMetadata.Variables> getVariables()
          get Variable metadata
 java.lang.String getXlinkHref()
           
 boolean hasAccess()
          If this dataset has access elements.
 int hashCode()
          Override Object.hashCode() to implement equals.
 boolean hasNestedDatasets()
          If this dataset has nested datasets.
 boolean isHarvest()
           
 boolean isRead()
           
 void readAsynch(InvCatalogFactory factory, CatalogSetCallback caller)
          Read the referenced catalog asynchronously, if the catalog factory supports it.
 void release()
          Release resources - undo the read of the catalog.
 void setXlinkHref(java.lang.String href)
           
 
Methods inherited from class thredds.catalog.InvDatasetImpl
addAccess, addAccess, addDataset, addDataset, addDocumentation, addProperty, addService, dump, getAccessLocal, getDataSize, getLastModifiedDate, getLocalMetadata, getLocalMetadataInheritable, getNcmlElement, getParentReal, getServiceName, getServicesLocal, main, removeDataset, removeLocalMetadata, removeService, replaceDataset, resolve, setAlias, setAuthority, setCatalog, setCollectionType, setContributors, setDataFormatType, setDataSize, setDataType, setGeospatialCoverage, setHarvest, setID, setKeywords, setLastModifiedDate, setLastModifiedDate, setLocalMetadata, setName, setNcmlElement, setParent, setProjects, setPublishers, setResourceControl, setServiceName, setServicesLocal, setTimeCoverage, setUrlPath, setUserProperty, toString, transferMetadata, writeHtmlDescription, writeHtmlDescription
 
Methods inherited from class thredds.catalog.InvDataset
findAccess, getCatalogUrl, getHistory, getParentCatalog, getProcessing, getRestrictAccess, getRights, getSubsetUrl, getSummary, getVariables
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InvCatalogRef

public InvCatalogRef(InvDatasetImpl parent,
                     java.lang.String title,
                     java.lang.String href)
Constructor.

Parameters:
parent - : parent dataset
title - : display name of collection
href - : URL to another catalog
Method Detail

getXlinkHref

public java.lang.String getXlinkHref()
Returns:
Xlink Href, as a String, unresolved

setXlinkHref

public void setXlinkHref(java.lang.String href)

getURI

public java.net.URI getURI()
Returns:
Xlink reference as a URI, resolved

getDatasets

public java.util.List<InvDataset> getDatasets()
Description copied from class: InvDataset
Get a list of all the nested datasets.

Overrides:
getDatasets in class InvDataset
Returns:
Datasets. This triggers a read of the referenced catalog the first time its called.

isRead

public boolean isRead()
Returns:
true the referenced catalog has been read

getProxyDataset

public InvDatasetImpl getProxyDataset()
This triggers a read of the referenced catalog the first time its called.

Returns:
top dataset of referenced catalog.

release

public void release()
Release resources - undo the read of the catalog. This is needed when crawling large catalogs. For modest catalogs that you will repeatedly examine, do not use this method.


finish

public boolean finish()
Description copied from class: InvDatasetImpl
Finish constructing after all elements have been added. This does the inheritence thing This can be called again if new elements are added.

Overrides:
finish in class InvDatasetImpl
Returns:
true if successful.

readAsynch

public void readAsynch(InvCatalogFactory factory,
                       CatalogSetCallback caller)
Read the referenced catalog asynchronously, if the catalog factory supports it. If it doesnt, this method will work equivilently to read(), which is called the first time getDatasets() is called. If the catalog is already read in, the callback will be called immediately, before this method exits.

Parameters:
factory - : use this catalog factory
caller - when catalog is read
See Also:
CatalogSetCallback

equals

public boolean equals(java.lang.Object o)
Description copied from class: InvDatasetImpl
InvDatasetImpl elements with same values are equal.

Overrides:
equals in class InvDatasetImpl

hashCode

public int hashCode()
Description copied from class: InvDatasetImpl
Override Object.hashCode() to implement equals.

Overrides:
hashCode in class InvDatasetImpl

findDatasetByName

public InvDatasetImpl findDatasetByName(java.lang.String p0)
Description copied from class: InvDataset
Find an immediate child dataset by its name.

Overrides:
findDatasetByName in class InvDataset
Parameters:
p0 - match on this name
Returns:
dataset if found or null if not exist.

findProperty

public java.lang.String findProperty(java.lang.String p0)
Description copied from class: InvDataset
Find named property. This may have been specified in the dataset or an enclosing parent element.

Overrides:
findProperty in class InvDataset
Parameters:
p0 - match on this name
Returns:
string value of property or null if not exist.

findService

public InvService findService(java.lang.String p0)
Description copied from class: InvDataset
Find the named service declared in this dataset or one of its parents.

Overrides:
findService in class InvDataset
Parameters:
p0 - match this name
Returns:
first service that matches the given name, or null if none found.

getAccess

public InvAccess getAccess(ServiceType p0)
Description copied from class: InvDataset
Get access element of the specified service type for this dataset. If more than one, get the first one.

Overrides:
getAccess in class InvDataset
Parameters:
p0 - find this ServiceType
Returns:
InvAccess or null if there is not one.

getAccess

public java.util.List<InvAccess> getAccess()
Description copied from class: InvDataset
Get all access elements for this dataset. This list will expand any compound services.

Overrides:
getAccess in class InvDataset
Returns:
List of InvAccess objects. List may not be null, may be empty.

getAlias

public java.lang.String getAlias()
Overrides:
getAlias in class InvDatasetImpl
Returns:
alias for this Dataset, if there is one

getAuthority

public java.lang.String getAuthority()
Description copied from class: InvDataset
Get authority for this Dataset, may be null.

Overrides:
getAuthority in class InvDataset
Returns:
authority for this Dataset, or null.

getCollectionType

public CollectionType getCollectionType()
Description copied from class: InvDataset
Get collectionType

Overrides:
getCollectionType in class InvDataset
Returns:
collectionType, or null

getContributors

public java.util.List<ThreddsMetadata.Contributor> getContributors()
Description copied from class: InvDataset
get Contributor metadata

Overrides:
getContributors in class InvDataset
Returns:
List of type ThreddsMetadata.Contributor, may be empty

getCreators

public java.util.List<ThreddsMetadata.Source> getCreators()
Description copied from class: InvDataset
get any Creator metadata

Overrides:
getCreators in class InvDataset
Returns:
List of type ThreddsMetadata.Source, may be empty

getDataFormatType

public DataFormatType getDataFormatType()
Description copied from class: InvDataset
Get the DataFormatType (which may be inherited from parent), or null .

Overrides:
getDataFormatType in class InvDataset
Returns:
the DataFormatType or null .

getDataType

public FeatureType getDataType()
Description copied from class: InvDataset
Get the DataType (which may be inherited from parent), or null .

Overrides:
getDataType in class InvDataset
Returns:
the DataType or null

getDates

public java.util.List<DateType> getDates()
Description copied from class: InvDataset
get any DateType metadata

Overrides:
getDates in class InvDataset
Returns:
List of type DateType, may be empty

getDocumentation

public java.util.List<InvDocumentation> getDocumentation()
Description copied from class: InvDataset
Get list of documentation elements for this dataset.

Overrides:
getDocumentation in class InvDataset
Returns:
list of InvDocumentation objects. May be empty, not null.

getDocumentation

public java.lang.String getDocumentation(java.lang.String p0)
Description copied from class: InvDataset
get specific type of documentation

Overrides:
getDocumentation in class InvDataset
Parameters:
p0 - find this type of documentation
Returns:
contents of documentation of specified type

getFullName

public java.lang.String getFullName()
Description copied from class: InvDataset
Get the full, heirarchical name of the dataset, which has all parent collection names.

Overrides:
getFullName in class InvDataset
Returns:
full, heirarchical name of the dataset, which has all parent collection names.

getGeospatialCoverage

public ThreddsMetadata.GeospatialCoverage getGeospatialCoverage()
Description copied from class: InvDataset
get geospatial coverage

Overrides:
getGeospatialCoverage in class InvDataset
Returns:
geospatial coverage, or null if none

getID

public java.lang.String getID()
Description copied from class: InvDataset
Get the id of the dataset, or null.

Overrides:
getID in class InvDataset
Returns:
the id of the dataset, or null if none.

getKeywords

public java.util.List<ThreddsMetadata.Vocab> getKeywords()
Description copied from class: InvDataset
get any Keyword metadata

Overrides:
getKeywords in class InvDataset
Returns:
List of type ThreddsMetadata.Vocab, may be empty

getMetadata

public java.util.List<InvMetadata> getMetadata(MetadataType p0)
Description copied from class: InvDataset
Get the metadata elements of the specified type.

Overrides:
getMetadata in class InvDataset
Parameters:
p0 - find this metadata type
Returns:
List of InvMetadata objects. List may be empty but not null.

getMetadata

public java.util.List<InvMetadata> getMetadata()
Description copied from class: InvDataset
Get the metadata elements for this InvDataset.

Overrides:
getMetadata in class InvDataset
Returns:
List of InvMetadata objects. List may be empty but not null.

getName

public java.lang.String getName()
Description copied from class: InvDataset
Get the "human readable" name of the dataset.

Overrides:
getName in class InvDataset
Returns:
"human readable" name of the dataset.

getParent

public InvDataset getParent()
Description copied from class: InvDataset
Get parent dataset.

Overrides:
getParent in class InvDataset
Returns:
parent dataset. If top dataset, return null.

getProjects

public java.util.List<ThreddsMetadata.Vocab> getProjects()
Description copied from class: InvDataset
get Projects metadata

Overrides:
getProjects in class InvDataset
Returns:
List of type ThreddsMetadata.Vocab, may be empty

getProperties

public java.util.List<InvProperty> getProperties()
Description copied from class: InvDataset
Get all properties for this dataset. These may have been specified in the dataset or an enclosing parent element.

Overrides:
getProperties in class InvDataset
Returns:
List of type InvProperty. May be empty, not null.

getPublishers

public java.util.List<ThreddsMetadata.Source> getPublishers()
Description copied from class: InvDataset
get Publisher metadata

Overrides:
getPublishers in class InvDataset
Returns:
List of type ThreddsMetadata.Source, may be empty

getServiceDefault

public InvService getServiceDefault()
Description copied from class: InvDataset
Find the default service for this dataset and its children. If not declared in this dataset, search in parents. This is the default for any nested datasets or access elements.

Overrides:
getServiceDefault in class InvDataset
Returns:
default service, or null

getTimeCoverage

public DateRange getTimeCoverage()
Description copied from class: InvDataset
get time coverage

Overrides:
getTimeCoverage in class InvDataset
Returns:
time coverage, or null if none

getUniqueID

public java.lang.String getUniqueID()
Description copied from class: InvDataset
If this dataset has an authority and an ID, then the concatenation of them is the globally unique ID.

Overrides:
getUniqueID in class InvDataset
Returns:
globally unique ID, or null if missing authority or ID.

getUrlPath

public java.lang.String getUrlPath()
Description copied from class: InvDatasetImpl
Get urlPath for this Dataset

Overrides:
getUrlPath in class InvDatasetImpl
Returns:
urlPath for this Dataset

getUserProperty

public java.lang.Object getUserProperty(java.lang.Object p0)
Description copied from class: InvDatasetImpl
Look up the User property having the given key

Overrides:
getUserProperty in class InvDatasetImpl
Parameters:
p0 - property key
Returns:
User property having the given key, or null

getVariables

public java.util.List<ThreddsMetadata.Variables> getVariables()
Description copied from class: InvDataset
get Variable metadata

Overrides:
getVariables in class InvDataset
Returns:
List of type ThreddsMetadata.Variables, may be empty

hasAccess

public boolean hasAccess()
Description copied from class: InvDataset
If this dataset has access elements.

Overrides:
hasAccess in class InvDataset
Returns:
true if has access elements.

hasNestedDatasets

public boolean hasNestedDatasets()
Description copied from class: InvDataset
If this dataset has nested datasets.

Overrides:
hasNestedDatasets in class InvDataset
Returns:
true if has nested datasets.

isHarvest

public boolean isHarvest()
Overrides:
isHarvest in class InvDataset
Returns:
if harvest is true