public abstract class AbstractResourceCollection extends java.lang.Object implements ResourceCollection
Modifier and Type | Class and Description |
---|---|
static class |
AbstractResourceCollection.InputDetails
Information about a resource
|
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
collectionURI |
protected Configuration |
config |
protected boolean |
noExceptions |
protected URIQueryParameters |
params |
Constructor and Description |
---|
AbstractResourceCollection(Configuration config)
Create a resource collection
|
Modifier and Type | Method and Description |
---|---|
static void |
checkNotNull(java.lang.String collectionURI,
XPathContext context)
If the collectionURI is null, report that no default collection exists
|
java.lang.String |
getCollectionURI()
Get the URI of the collection
|
protected AbstractResourceCollection.InputDetails |
getInputDetails(java.lang.String resourceURI)
Get details of a resource given the resource URI
|
protected java.lang.String |
guessContentTypeFromContent(java.io.InputStream stream)
Attempt to establish the media type of a resource, given the actual content.
|
protected java.lang.String |
guessContentTypeFromName(java.lang.String resourceURI)
Attempt to establish the media type of a resource, given the resource URI.
|
boolean |
isStable(XPathContext context)
Ask whether the collection is stable.
|
Resource |
makeResource(XPathContext context,
AbstractResourceCollection.InputDetails details)
Internal method to make a resource for a single entry in the ZIP or JAR file.
|
Resource |
makeResource(XPathContext context,
java.lang.String resourceURI)
Default method to make a resource, given a resource URI
|
Resource |
makeTypedResource(XPathContext context,
Resource basicResource)
Given a resource whose type may be unknown, create a Resource of a specific type,
for example an XML or JSON resource
|
protected ParseOptions |
optionsFromQueryParameters(URIQueryParameters params,
XPathContext context)
Analyze URI query parameters and convert them to a set of parser options
|
void |
registerContentType(java.lang.String contentType,
ResourceFactory factory)
Associate a media type with a resource factory.
|
static void |
setupErrorHandlingForCollection(ParseOptions options,
int onError,
ErrorReporter oldErrorReporter) |
boolean |
stripWhitespace(SpaceStrippingRule rules)
Supply information about the whitespace stripping rules that apply to this collection.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getResources, getResourceURIs
protected Configuration config
protected java.lang.String collectionURI
protected URIQueryParameters params
protected boolean noExceptions
public AbstractResourceCollection(Configuration config)
config
- the Saxon configurationpublic static void checkNotNull(java.lang.String collectionURI, XPathContext context) throws XPathException
collectionURI
- the collection URI to be testedcontext
- XPath evaluation contextXPathException
- if the collectionURI is nullpublic java.lang.String getCollectionURI()
ResourceCollection
getCollectionURI
in interface ResourceCollection
public boolean isStable(XPathContext context)
ResourceCollection.getResources(XPathContext)
or ResourceCollection.getResourceURIs(XPathContext)
isStable
in interface ResourceCollection
context
- the XPath evaluation context.FeatureKeys.STABLE_COLLECTION_URI
is set.public void registerContentType(java.lang.String contentType, ResourceFactory factory)
contentType
- a media type or MIME type, for example application/xsd+xmlfactory
- a ResourceFactory used to parse (or otherwise process) resources of that typeprotected ParseOptions optionsFromQueryParameters(URIQueryParameters params, XPathContext context)
params
- the query parameters extracted from the URIcontext
- the XPath evaluation contextpublic static void setupErrorHandlingForCollection(ParseOptions options, int onError, ErrorReporter oldErrorReporter)
protected AbstractResourceCollection.InputDetails getInputDetails(java.lang.String resourceURI) throws XPathException
resourceURI
- the resource URIXPathException
- if the information cannot be obtainedprotected java.lang.String guessContentTypeFromName(java.lang.String resourceURI)
URLConnection#guessContentTypeFromName
, and failing that
the mapping from file extensions to media types held in the Saxon Configuration
resourceURI
- the resource URIprotected java.lang.String guessContentTypeFromContent(java.io.InputStream stream)
URLConnection#guessContentTypeFromStream
stream
- the input stream. This should be positioned at the start; the
reading position is not affected by the call.public Resource makeResource(XPathContext context, AbstractResourceCollection.InputDetails details) throws XPathException
context
- The Saxon configurationdetails
- Details of the input.XPathException
public Resource makeTypedResource(XPathContext context, Resource basicResource) throws XPathException
context
- the evaluation contextbasicResource
- the resource, whose type may be unknownXPathException
- if a failure occurs (for example an XML or JSON parsing failure)public Resource makeResource(XPathContext context, java.lang.String resourceURI) throws XPathException
resourceURI
- the resource URIXPathException
public boolean stripWhitespace(SpaceStrippingRule rules)
rules
- the space-stripping rules that apply to this collection, derived from
the xsl:strip-space and xsl:preserve-space declarations in the stylesheet
package containing the call to the collection() function.Copyright (c) 2004-2022 Saxonica Limited. All rights reserved.