/* * Copyright 2001-2004 The Apache Software Foundation. * * Licensed 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. */ /* * $Id: SortSettings.java,v 1.1 2004/02/27 01:58:29 zongaro Exp $ */ 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 xsl:sort 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 * xsl:sort */ private int[] _sortOrders; /** * The type of comparison (text or number) for each level of * xsl:sort */ private int[] _types; /** * The Locale for each level of xsl:sort, based on any lang * attribute or the default Locale. */ private Locale[] _locales; /** * The Collator object in effect for each level of xsl:sort */ private Collator[] _collators; /** * Case ordering for each level of xsl:sort. */ private String[] _caseOrders; /** * Create an instance of SortSettings. * @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 * "upper-first", "lower-first", or "". */ 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 xsl:sort */ int[] getSortOrders() { return _sortOrders; } /** * @return An array containing the type of comparison (text or number) * to perform for each level of xsl:sort */ int[] getTypes() { return _types; } /** * @return An array containing the Locale object in effect for each level * of xsl:sort */ Locale[] getLocales() { return _locales; } /** * @return An array containing the Collator object in effect for each level * of xsl:sort */ Collator[] getCollators() { return _collators; } /** * @return An array specifying the case ordering for each level of * xsl:sort. */ String[] getCaseOrders() { return _caseOrders; } }