zorba::URIMapper

#include <zorba/uri_resolvers.h>

Interface for URI mapping. Subclass this to provide a URI mapper to the method StaticContext::addURIMapper().

Public Types

Kind

enum defining legal return values for mapperKind().

Public Static Attributes

const zorba::String

DENY_ACCESS

Constant indicating that Zorba should deny access to the given URI.

Public Functions

Kind

mapperKind()

Declare whether this is a "component" or "candidate" URI mapper.

void

mapURI(const zorba::String aUri, EntityData const *aEntityData, std::vector< zorba::String > &oUris)=0

Transform an input URI into a set of output URIs.

URIMapper()

~URIMapper()

Public Types

Kind

 Kind

enum defining legal return values for mapperKind().

Public Static Attributes

DENY_ACCESS

const zorba::String DENY_ACCESS

Constant indicating that Zorba should deny access to the given URI.

If any kind of URIMapper returns this value at any point in the vector of URIs, Zorba will cause the resolution of this URI to be denied with an error. This can be used, for example, to suppress importing particular modules by URI.

Public Functions

mapperKind

Kind mapperKind()

Declare whether this is a "component" or "candidate" URI mapper.

Zorba supports two different kinds of URI mapping. The first, "component URI mapping", is to allow mapping from an input URI to a set of URIs which, taken together, comprise the entire entity to be resolved. This is currently only supported for module import, where it can be used to load a module which is physically stored in multiple library module files."Candidate URI mapping" is to allow mapping from an input URI to a set or URIs which are *potential* identifiers of the entity being resolved. Each of these URIs will be treated to any subsequent URI mappers, and then treated as URLs and passed in turn to all registered URLResolvers. This type of URI mapping is supported for all uses of URIs in Zorba. It can be used for example to redirect http: URIs to locally-cached file: URLs, or to provide several alternative locations for a given resource.If you do not override this method, the default is "candidate".

mapURI

void mapURI(const zorba::String aUri, EntityData const *aEntityData, std::vector< zorba::String > &oUris)=0

Transform an input URI into a set of output URIs.

The "aEntityData" parameter informs the URIMapper what kind of entity is being referenced by URI. URIMappers may choose to make use of this information to alter their behaviour.Implementers of this method should provide output URIs by adding them to the oUris output parameter, using the push_back() method. They should not otherwise view or manipulate this vector.If a URIMapper does not wish to provide any output URIs for the given input URI, they should simply do nothing and return. In this case, Zorba will continue with the original, unmapped URI.

URIMapper

 URIMapper()

~URIMapper

 ~URIMapper()