The following features are supported:
The primary purpose of the Catalog is to associate resources in the document with local system identifiers. Some entities (document types, XML entities, and notations) have names and all of them can have either public or system identifiers or both. (In XML, only a notation can have a public identifier without a system identifier, but the methods implemented in this class obey the Catalog semantics from the SGML days when system identifiers were optional.)
The system identifiers returned by the resolution methods in this class are valid, i.e. usable by, and in fact constructed by, the java.net.URL class. Unfortunately, this class seems to behave in somewhat non-standard ways and the system identifiers returned may not be directly usable in a browser or filesystem context.
This class recognizes all of the Catalog entries defined in TR9401:1997:
Note that BASE entries are treated as described by RFC2396. In particular, this has the counter-intuitive property that after a BASE entry identifing "http://example.com/a/b/c" as the base URI, the relative URI "foo" is resolved to the absolute URI "http://example.com/a/b/foo". You must provide the trailing slash if you do not want the final component of the path to be discarded as a filename would in a URI for a resource: "http://example.com/a/b/c/".
Note that subordinate catalogs (all catalogs except the first, including CATALOG and DELEGATE* catalogs) are only loaded if and when they are required.
This class relies on classes which implement the CatalogReader interface to actually load catalog files. This allows the catalog semantics to be implemented for TR9401 text-based catalogs, XML catalogs, or any number of other storage formats.
Additional catalogs may also be loaded with the {@link #parseCatalog} method.
Change Log:
Rewrite to use CatalogReaders.
Allow quoted components in xml.catalog.files so that URLs containing colons can be used on Unix. The string passed to xml.catalog.files can now have the form:
unquoted-path-with-no-sep-chars:"double-quoted path with or without sep chars":'single-quoted path with or without sep chars'
(Where ":" is the separater character in this example.)
If an unquoted path contains an embedded double or single quote character, no special processig is performed on that character. No path can contain separater characters, double, and single quotes simultaneously.
Fix bug in calculation of BASE entries: if a catalog contains multiple BASE entries, each is relative to the preceding base, not the default base URI of the catalog.
Fixed a bug in the calculation of the list of subordinate catalogs. This bug caused an infinite loop where parsing would alternately process two catalogs indefinitely.
Derived from public domain code originally published by Arbortext, Inc.
The primary purpose of the Catalog is to associate resources in the document with local system identifiers. Some entities (document types, XML entities, and notations) have names and all of them can have either public or system identifiers or both. (In XML, only a notation can have a public identifier without a system identifier, but the methods implemented in this class obey the Catalog semantics from the SGML days when system identifiers were optional.)
The system identifiers returned by the resolution methods in this class are valid, i.e. usable by, and in fact constructed by, the java.net.URL class. Unfortunately, this class seems to behave in somewhat non-standard ways and the system identifiers returned may not be directly usable in a browser or filesystem context.
This class recognizes all of the Catalog entries defined in TR9401:1997:
Note that BASE entries are treated as described by RFC2396. In particular, this has the counter-intuitive property that after a BASE entry identifing "http://example.com/a/b/c" as the base URI, the relative URI "foo" is resolved to the absolute URI "http://example.com/a/b/foo". You must provide the trailing slash if you do not want the final component of the path to be discarded as a filename would in a URI for a resource: "http://example.com/a/b/c/".
Note that subordinate catalogs (all catalogs except the first, including CATALOG and DELEGATE* catalogs) are only loaded if and when they are required.
This class relies on classes which implement the CatalogReader interface to actually load catalog files. This allows the catalog semantics to be implemented for TR9401 text-based catalogs, XML catalogs, or any number of other storage formats.
Additional catalogs may also be loaded with the {@link #parseCatalog} method.
Change Log:
Rewrite to use CatalogReaders.
Allow quoted components in xml.catalog.files so that URLs containing colons can be used on Unix. The string passed to xml.catalog.files can now have the form:
unquoted-path-with-no-sep-chars:"double-quoted path with or without sep chars":'single-quoted path with or without sep chars'
(Where ":" is the separater character in this example.)
If an unquoted path contains an embedded double or single quote character, no special processig is performed on that character. No path can contain separater characters, double, and single quotes simultaneously.
Fix bug in calculation of BASE entries: if a catalog contains multiple BASE entries, each is relative to the preceding base, not the default base URI of the catalog.
Fixed a bug in the calculation of the list of subordinate catalogs. This bug caused an infinite loop where parsing would alternately process two catalogs indefinitely.
Derived from public domain code originally published by Arbortext, Inc.
A Catalog is a collection of {@link Command}s or {@link Chain}s. It is used as a convenience for organizing sets of {@link Command}s together.
A {@link Catalog} is a collection of named {@link Command}s (or {@link Chain}s) that can be used retrieve the set of commands that should be performed based on a symbolic identifier. Use of catalogs is optional, but convenient when there are multiple possible chains that can be selected and executed based on environmental conditions.
@author Craig R. McClanahan @version $Revision: 1.7 $ $Date: 2004/11/30 05:52:22 $ CMS om interface for Catalog.
@author Christophe Lombart
A Calatog is a communication interface between the CatalogService and an underlying database or index service
A Catalog is the front end object interface for a back end peristance layer for storing product references and metadata. Classes implementing this interface implement methods to retrieve and store product references and metadata from a particular backend repository.
The primary purpose of the Catalog is to associate resources in the document with local system identifiers. Some entities (document types, XML entities, and notations) have names and all of them can have either public or system identifiers or both. (In XML, only a notation can have a public identifier without a system identifier, but the methods implemented in this class obey the Catalog semantics from the SGML days when system identifiers were optional.)
The system identifiers returned by the resolution methods in this class are valid, i.e. usable by, and in fact constructed by, the java.net.URL class. Unfortunately, this class seems to behave in somewhat non-standard ways and the system identifiers returned may not be directly usable in a browser or filesystem context.
This class recognizes all of the Catalog entries defined in TR9401:1997:
Note that BASE entries are treated as described by RFC2396. In particular, this has the counter-intuitive property that after a BASE entry identifing "http://example.com/a/b/c" as the base URI, the relative URI "foo" is resolved to the absolute URI "http://example.com/a/b/foo". You must provide the trailing slash if you do not want the final component of the path to be discarded as a filename would in a URI for a resource: "http://example.com/a/b/c/".
Note that subordinate catalogs (all catalogs except the first, including CATALOG and DELEGATE* catalogs) are only loaded if and when they are required.
This class relies on classes which implement the CatalogReader interface to actually load catalog files. This allows the catalog semantics to be implemented for TR9401 text-based catalogs, XML catalogs, or any number of other storage formats.
Additional catalogs may also be loaded with the {@link #parseCatalog} method.
Change Log:
Rewrite to use CatalogReaders.
Allow quoted components in xml.catalog.files so that URLs containing colons can be used on Unix. The string passed to xml.catalog.files can now have the form:
unquoted-path-with-no-sep-chars:"double-quoted path with or without sep chars":'single-quoted path with or without sep chars'
(Where ":" is the separater character in this example.)
If an unquoted path contains an embedded double or single quote character, no special processig is performed on that character. No path can contain separater characters, double, and single quotes simultaneously.
Fix bug in calculation of BASE entries: if a catalog contains multiple BASE entries, each is relative to the preceding base, not the default base URI of the catalog.
Fixed a bug in the calculation of the list of subordinate catalogs. This bug caused an infinite loop where parsing would alternately process two catalogs indefinitely.
Derived from public domain code originally published by Arbortext, Inc.
A store is contained within a workspace (see {@link StoreInfo#getWorkspace()}). The {@link #getStoresByWorkspace(WorkspaceInfo,Class)} method for only stores contained with a specific workspace. For instance, the following would obtain all datastores store within a particular workspace:
//get a workspace WorkspaceInfo workspace = catalog.getWorkspace( "myWorkspace" ); //get all datastores in that workspace ListdataStores = catalog.getStoresByWorkspace( workspace, DataStoreInfo.class );
The {@link #getResources(Class)} method provides access to all resources in the catalog of a particular type. For instance, to acess all feature types in the catalog:
ListThe {@link #getFeatureTypes()} and {@link #getCoverages()} methods are a conveniencefor the well known types.featureTypes = catalog.getResources( FeatureTypeInfo.class );
A resource is contained within a namespace, therefore it is identified by a namespace uri, local name pair. The {@link #getResourceByName(String,String,Class)} method provides access to a resource by its namespace qualified name. The method {@link #getResourceByName(String,Class)} provides access to a resource by its unqualified name. The latter method will do an exhaustive search of all namespaces for a resource with the specified name. If only a single resoure with the name is found it is returned. Some examples:
//get a feature type by its qualified name FeatureTypeInfo ft = catalog.getResourceByName( "http://myNamespace.org", "myFeatureType", FeatureTypeInfo.class ); //get a feature type by its unqualified name ft = catalog.getResourceByName( "myFeatureType", FeatureTypeInfo.class ); //get all feature types in a namespace NamespaceInfo ns = catalog.getNamespaceByURI( "http://myNamespace.org" ); ListfeatureTypes = catalog.getResourcesByNamespace( ns, FeatureTypeINfo.class );
A layers is used to publish a resource. The {@link #getLayers()} provides access to all layers in the catalog. A layer is uniquely identified by its name. The {@link #getLayerByName(String)} method provides access to a layer by its name.The {@link #getLayers(ResourceInfo)} return all the layers publish a specific resource. Some examples:
//get a layer by its name LayerInfo layer = catalog.getLayer( "myLayer" ); //get all the layers for a particualr feature type FeatureTypeInfo ft = catalog.getFeatureType( "http://myNamespace", "myFeatureType" ); Listlayers = catalog.getLayers( ft );
Catalog objects such as stores and resoures are mutable and can be modified. However, any modifications made on an object do not apply until they are saved. For instance, consider the following example of modifying a feature type:
//get a feature type FeatureTypeInfo featureType = catalog.getFeatureType( "http://myNamespace.org", "myFeatureType" ); //modify it featureType.setBoundingBox( new Envelope(...) ); //save it catalog.save( featureType );@author Justin Deoliveira, The Open Planning project
The primary purpose of the Catalog is to associate resources in the document with local system identifiers. Some entities (document types, XML entities, and notations) have names and all of them can have either public or system identifiers or both. (In XML, only a notation can have a public identifier without a system identifier, but the methods implemented in this class obey the Catalog semantics from the SGML days when system identifiers were optional.)
The system identifiers returned by the resolution methods in this class are valid, i.e. usable by, and in fact constructed by, the java.net.URL class. Unfortunately, this class seems to behave in somewhat non-standard ways and the system identifiers returned may not be directly usable in a browser or filesystem context.
This class recognizes all of the Catalog entries defined in TR9401:1997:
Note that BASE entries are treated as described by RFC2396. In particular, this has the counter-intuitive property that after a BASE entry identifing "http://example.com/a/b/c" as the base URI, the relative URI "foo" is resolved to the absolute URI "http://example.com/a/b/foo". You must provide the trailing slash if you do not want the final component of the path to be discarded as a filename would in a URI for a resource: "http://example.com/a/b/c/".
Note that subordinate catalogs (all catalogs except the first, including CATALOG and DELEGATE* catalogs) are only loaded if and when they are required.
This class relies on classes which implement the CatalogReader interface to actually load catalog files. This allows the catalog semantics to be implemented for TR9401 text-based catalogs, XML catalogs, or any number of other storage formats.
Additional catalogs may also be loaded with the {@link #parseCatalog(String)} method.
Change Log:
Rewrite to use CatalogReaders.
Allow quoted components in xml.catalog.files so that URLs containing colons can be used on Unix. The string passed to xml.catalog.files can now have the form:
unquoted-path-with-no-sep-chars:"double-quoted path with or without sep chars":'single-quoted path with or without sep chars'
(Where ":" is the separater character in this example.)
If an unquoted path contains an embedded double or single quote character, no special processig is performed on that character. No path can contain separater characters, double, and single quotes simultaneously.
Fix bug in calculation of BASE entries: if a catalog contains multiple BASE entries, each is relative to the preceding base, not the default base URI of the catalog.
Fixed a bug in the calculation of the list of subordinate catalogs. This bug caused an infinite loop where parsing would alternately process two catalogs indefinitely.
Derived from public domain code originally published by Arbortext, Inc.
<complexType name="CatalogType" />@author danikov
Catalogs are the second element of the hierarchy of metadata objects. A Catalog contains one or more {@link Schema}s and has a parent {@link Database}.
Some OLAP servers may only have one Catalog. Mondrian is one such OLAP server; its sole catalog is called "LOCALDB".
To obtain the collection of catalogs in the current server, call the {@link OlapConnection#getOlapCatalogs()} method.
The hierarchy of metadata objects, rooted at the connection from which they are accessed, is as follows:
@author jhyde @version $Id: Catalog.java 404 2011-03-18 21:54:56Z lucboudreau $ @since Oct 24, 2006
- {@link org.olap4j.OlapConnection}
- {@link Database}
- {@link Catalog}
- {@link Schema}
- {@link Cube}
- {@link Dimension}
- {@link Hierarchy}
- {@link Level}
- {@link Member}
- {@link Property}
- {@link NamedSet}
- {@link Dimension} (shared)
Invariants:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|