1 package net.sf.saxon.sort; 2 3 import net.sf.saxon.Configuration; 4 5 import java.util.Comparator; 6 import java.io.Serializable; 7 8 /** 9 * 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, Configuration config); 40 } 41 42 // 43 // The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License"); 44 // you may not use this file except in compliance with the License. You may obtain a copy of the 45 // License at http://www.mozilla.org/MPL/ 46 // 47 // Software distributed under the License is distributed on an "AS IS" basis, 48 // WITHOUT WARRANTY OF ANY KIND, either express or implied. 49 // See the License for the specific language governing rights and limitations under the License. 50 // 51 // The Original Code is: all this file. 52 // 53 // The Initial Developer of the Original Code is Michael Kay 54 // 55 // Portions created by (your name) are Copyright (C) (your legal entity). All Rights Reserved. 56 // 57 // Contributor(s): none. 58 // 59