1 /* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5 /* 6 * Licensed to the Apache Software Foundation (ASF) under one or more 7 * contributor license agreements. See the NOTICE file distributed with 8 * this work for additional information regarding copyright ownership. 9 * The ASF licenses this file to You under the Apache License, Version 2.0 10 * (the "License"); you may not use this file except in compliance with 11 * the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package com.sun.org.apache.xalan.internal.xsltc.dom; 23 24 import java.text.Collator; 25 import java.util.Locale; 26 27 import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; 28 29 /** 30 * Class for carrying settings that are to be used for a particular set 31 * of <code>xsl:sort</code> elements. 32 */ 33 final class SortSettings { 34 /** 35 * A reference to the translet object for the transformation. 36 */ 37 private AbstractTranslet _translet; 38 39 /** 40 * The sort order (ascending or descending) for each level of 41 * <code>xsl:sort</code> 42 */ 43 private int[] _sortOrders; 44 45 /** 46 * The type of comparison (text or number) for each level of 47 * <code>xsl:sort</code> 48 */ 49 private int[] _types; 50 51 /** 52 * The Locale for each level of <code>xsl:sort</code>, based on any lang 53 * attribute or the default Locale. 54 */ 55 private Locale[] _locales; 56 57 /** 58 * The Collator object in effect for each level of <code>xsl:sort</code> 59 */ 60 private Collator[] _collators; 61 62 /** 63 * Case ordering for each level of <code>xsl:sort</code>. 64 */ 65 private String[] _caseOrders; 66 67 /** 68 * Create an instance of <code>SortSettings</code>. 69 * @param translet {@link com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet} 70 * object for the transformation 71 * @param sortOrders an array specifying the sort order for each sort level 72 * @param types an array specifying the type of comparison for each sort 73 * level (text or number) 74 * @param locales an array specifying the Locale for each sort level 75 * @param collators an array specifying the Collation in effect for each 76 * sort level 77 * @param caseOrders an array specifying whether upper-case, lower-case 78 * or neither is to take precedence for each sort level. 79 * The value of each element is equal to one of 80 * <code>"upper-first", "lower-first", or ""</code>. 81 */ 82 SortSettings(AbstractTranslet translet, int[] sortOrders, int[] types, 83 Locale[] locales, Collator[] collators, String[] caseOrders) { 84 _translet = translet; 85 _sortOrders = sortOrders; 86 _types = types; 87 _locales = locales; 88 _collators = collators; 89 _caseOrders = caseOrders; 90 } 91 92 /** 93 * @return A reference to the translet object for the transformation. 94 */ 95 AbstractTranslet getTranslet() { 96 return _translet; 97 } 98 99 /** 100 * @return An array containing the sort order (ascending or descending) 101 * for each level of <code>xsl:sort</code> 102 */ 103 int[] getSortOrders() { 104 return _sortOrders; 105 } 106 107 /** 108 * @return An array containing the type of comparison (text or number) 109 * to perform for each level of <code>xsl:sort</code> 110 */ 111 int[] getTypes() { 112 return _types; 113 } 114 115 /** 116 * @return An array containing the Locale object in effect for each level 117 * of <code>xsl:sort</code> 118 */ 119 Locale[] getLocales() { 120 return _locales; 121 } 122 123 /** 124 * @return An array containing the Collator object in effect for each level 125 * of <code>xsl:sort</code> 126 */ 127 Collator[] getCollators() { 128 return _collators; 129 } 130 131 /** 132 * @return An array specifying the case ordering for each level of 133 * <code>xsl:sort</code>. 134 */ 135 String[] getCaseOrders() { 136 return _caseOrders; 137 } 138 }