| /* |
| * reserved comment block |
| * DO NOT REMOVE OR ALTER! |
| */ |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.sun.org.apache.xalan.internal.xsltc.dom; |
| |
| import java.text.Collator; |
| import java.util.Locale; |
| |
| import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; |
| |
| /** |
| * Class for carrying settings that are to be used for a particular set |
| * of <code>xsl:sort</code> elements. |
| */ |
| final class SortSettings { |
| /** |
| * A reference to the translet object for the transformation. |
| */ |
| private AbstractTranslet _translet; |
| |
| /** |
| * The sort order (ascending or descending) for each level of |
| * <code>xsl:sort</code> |
| */ |
| private int[] _sortOrders; |
| |
| /** |
| * The type of comparison (text or number) for each level of |
| * <code>xsl:sort</code> |
| */ |
| private int[] _types; |
| |
| /** |
| * The Locale for each level of <code>xsl:sort</code>, based on any lang |
| * attribute or the default Locale. |
| */ |
| private Locale[] _locales; |
| |
| /** |
| * The Collator object in effect for each level of <code>xsl:sort</code> |
| */ |
| private Collator[] _collators; |
| |
| /** |
| * Case ordering for each level of <code>xsl:sort</code>. |
| */ |
| private String[] _caseOrders; |
| |
| /** |
| * Create an instance of <code>SortSettings</code>. |
| * @param translet {@link com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet} |
| * object for the transformation |
| * @param sortOrders an array specifying the sort order for each sort level |
| * @param types an array specifying the type of comparison for each sort |
| * level (text or number) |
| * @param locales an array specifying the Locale for each sort level |
| * @param collators an array specifying the Collation in effect for each |
| * sort level |
| * @param caseOrders an array specifying whether upper-case, lower-case |
| * or neither is to take precedence for each sort level. |
| * The value of each element is equal to one of |
| * <code>"upper-first", "lower-first", or ""</code>. |
| */ |
| SortSettings(AbstractTranslet translet, int[] sortOrders, int[] types, |
| Locale[] locales, Collator[] collators, String[] caseOrders) { |
| _translet = translet; |
| _sortOrders = sortOrders; |
| _types = types; |
| _locales = locales; |
| _collators = collators; |
| _caseOrders = caseOrders; |
| } |
| |
| /** |
| * @return A reference to the translet object for the transformation. |
| */ |
| AbstractTranslet getTranslet() { |
| return _translet; |
| } |
| |
| /** |
| * @return An array containing the sort order (ascending or descending) |
| * for each level of <code>xsl:sort</code> |
| */ |
| int[] getSortOrders() { |
| return _sortOrders; |
| } |
| |
| /** |
| * @return An array containing the type of comparison (text or number) |
| * to perform for each level of <code>xsl:sort</code> |
| */ |
| int[] getTypes() { |
| return _types; |
| } |
| |
| /** |
| * @return An array containing the Locale object in effect for each level |
| * of <code>xsl:sort</code> |
| */ |
| Locale[] getLocales() { |
| return _locales; |
| } |
| |
| /** |
| * @return An array containing the Collator object in effect for each level |
| * of <code>xsl:sort</code> |
| */ |
| Collator[] getCollators() { |
| return _collators; |
| } |
| |
| /** |
| * @return An array specifying the case ordering for each level of |
| * <code>xsl:sort</code>. |
| */ |
| String[] getCaseOrders() { |
| return _caseOrders; |
| } |
| } |