01: package net.sf.saxon.sort;
02:
03: import net.sf.saxon.Configuration;
04:
05: import java.util.Comparator;
06: import java.io.Serializable;
07:
08: /**
09: * A CollationURIResolver accepts a collation name as input, and returns
10: * a collation (represented by a Comparator) as output. A CollationURIResolver
11: * can be registered with the Configuration (or with the TransformerFactory)
12: * to resolve all collation URIs used in a stylesheet or query.
13: */
14: public interface CollationURIResolver extends Serializable {
15:
16: /**
17: * Resolve a collation URI (expressed as a string) and return
18: * the corresponding collation.
19: * @param relativeURI the collation URI as written in the query or stylesheet
20: * @param baseURI The base URI of the static context where the collation URI
21: * appears. The base URI is available only in cases where the collation URI is resolved
22: * at compile time; in cases where the collation URI is not resolved until execution
23: * time (typically because it is supplied as an expression rather than as a string literal)
24: * this parameter is currently set to null.
25: * @param config The configuration. Provided in case the collation URI resolver
26: * needs it.
27: * @return a Comparator, representing the collation to be used. Note that although
28: * any Comparator may be returned, functions such as contains() that need to break
29: * a string into its collation units will work only if the returned Comparator
30: * is a {@link java.text.Collator}. If the Collation URI cannot be resolved, return null.
31: * Note that unlike the JAXP URIResolver, returning null does not cause the default
32: * CollationURIResolver to be invoked; if this is required, the user-written CollationURIResolver
33: * should explicitly instantiate and invoke the {@link StandardCollationURIResolver} before
34: * returning null.
35: * @since 8.5 (this interface is new in Saxon 8.5 and may be revised in the light of
36: * experience)
37: */
38:
39: public Comparator resolve(String relativeURI, String baseURI,
40: Configuration config);
41: }
42:
43: //
44: // The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License");
45: // you may not use this file except in compliance with the License. You may obtain a copy of the
46: // License at http://www.mozilla.org/MPL/
47: //
48: // Software distributed under the License is distributed on an "AS IS" basis,
49: // WITHOUT WARRANTY OF ANY KIND, either express or implied.
50: // See the License for the specific language governing rights and limitations under the License.
51: //
52: // The Original Code is: all this file.
53: //
54: // The Initial Developer of the Original Code is Michael Kay
55: //
56: // Portions created by (your name) are Copyright (C) (your legal entity). All Rights Reserved.
57: //
58: // Contributor(s): none.
59: //
|