19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one 39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or more contributor license agreements. See the NOTICE file 49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed with this work for additional information 59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * regarding copyright ownership. The ASF licenses this file 69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to you under the Apache License, Version 2.0 (the "License"); 79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License. 89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at 99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software 139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and 169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License. 179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * $Id: Stylesheet.java 468643 2006-10-28 06:56:03Z minchau $ 209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage org.apache.xalan.templates; 229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.io.IOException; 249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.io.ObjectInputStream; 259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.io.ObjectOutputStream; 269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.util.Hashtable; 279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.util.Stack; 289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.util.Vector; 299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport javax.xml.transform.SourceLocator; 319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport javax.xml.transform.TransformerException; 329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.dtm.DTM; 349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.utils.QName; 359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.utils.StringVector; 369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.utils.SystemIDResolver; 379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/** 399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Represents a stylesheet element. 409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p>All properties in this class have a fixed form of bean-style property 419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * accessors for all properties that represent XSL attributes or elements. 429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * These properties have setter method names accessed generically by the 439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * processor, and so these names must be fixed according to the system 449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * defined in the <a href="XSLTAttributeDef#getSetterMethodName">getSetterMethodName</a> 459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * function.</p> 469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p><pre> 479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ENTITY % top-level " 489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * (xsl:import*, 499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * (xsl:include 509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:strip-space 519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:preserve-space 529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:output 539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:key 549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:decimal-format 559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:attribute-set 569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:variable 579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:param 589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:template 599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * | xsl:namespace-alias 609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * %non-xsl-top-level;)*) 619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * "> 629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ENTITY % top-level-atts ' 649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * extension-element-prefixes CDATA #IMPLIED 659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * exclude-result-prefixes CDATA #IMPLIED 669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * id ID #IMPLIED 679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * version NMTOKEN #REQUIRED 689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * xmlns:xsl CDATA #FIXED "http://www.w3.org/1999/XSL/Transform" 699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * %space-att; 709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * '> 719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ELEMENT xsl:stylesheet %top-level;> 739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ATTLIST xsl:stylesheet %top-level-atts;> 749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ELEMENT xsl:transform %top-level;> 769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <!ATTLIST xsl:transform %top-level-atts;> 779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </p></pre> 799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#section-Stylesheet-Structure">section-Stylesheet-Structure in XSLT Specification</a> 809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpublic class Stylesheet extends ElemTemplateElement 829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson implements java.io.Serializable /* , Document */ 839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson{ 849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson static final long serialVersionUID = 2085337282743043776L; 859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Constructor for a Stylesheet. 889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param parent The including or importing stylesheet. 899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Stylesheet(Stylesheet parent) 919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null != parent) 949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_stylesheetParent = parent; 969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_stylesheetRoot = parent.getStylesheetRoot(); 979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the owning stylesheet. This looks up the 1029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * inheritance chain until it calls getStylesheet 1039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * on a Stylesheet object, which will return itself. 1049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The owning stylesheet, itself. 1069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Stylesheet getStylesheet() 1089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return this; 1109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Tell if this can be cast to a StylesheetComposed, meaning, you 1149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * can ask questions from getXXXComposed functions. 1159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return False if this is not a StylesheetComposed 1179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isAggregatedType() 1199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 1219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Tell if this is the root of the stylesheet tree. 1259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return False is this is not the root of the stylesheet tree. 1279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isRoot() 1299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 1319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Extension to be used when serializing to disk. 1359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public static final String STYLESHEET_EXT = ".lxc"; 1379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Read the stylesheet from a serialization stream. 1409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param stream Input stream to read from 1429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws IOException 1449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws TransformerException 1459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private void readObject(ObjectInputStream stream) 1479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws IOException, TransformerException 1489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // System.out.println("Reading Stylesheet"); 1519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson try 1529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson stream.defaultReadObject(); 1549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson catch (ClassNotFoundException cnfe) 1569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new TransformerException(cnfe); 1589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // System.out.println("Done reading Stylesheet"); 1619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Write out the given output stream 1659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param stream The output stream to write out 1689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws IOException 1709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private void writeObject(ObjectOutputStream stream) throws IOException 1729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // System.out.println("Writing Stylesheet"); 1759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson stream.defaultWriteObject(); 1769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // System.out.println("Done writing Stylesheet"); 1789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //============== XSLT Properties ================= 1819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xmlns:xsl" property. 1849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 1859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String m_XmlnsXsl; 1879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xmlns:xsl" property. 1909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#xslt-namespace">xslt-namespace in XSLT Specification</a> 1919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v The value to be set for the "xmlns:xsl" property. 1939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setXmlnsXsl(String v) 1959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_XmlnsXsl = v; 1979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the "xmlns:xsl" property. 2019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#xslt-namespace">xslt-namespace in XSLT Specification</a> 2029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The value of the "xmlns:xsl" property. 2049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getXmlnsXsl() 2069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_XmlnsXsl; 2089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "extension-element-prefixes" property, actually contains URIs. 2129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 2139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private StringVector m_ExtensionElementURIs; 2159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "extension-element-prefixes" property. 2189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#extension-element">extension-element in XSLT Specification</a> 2199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v The value to be set for the "extension-element-prefixes" 2219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * property: a vector of extension element URIs. 2229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setExtensionElementPrefixes(StringVector v) 2249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_ExtensionElementURIs = v; 2269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get and "extension-element-prefix" property. 2309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#extension-element">extension-element in XSLT Specification</a> 2319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of extension element URI in list 2339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The extension element URI at the given index 2359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 2379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getExtensionElementPrefix(int i) 2399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws ArrayIndexOutOfBoundsException 2409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_ExtensionElementURIs) 2439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 2449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_ExtensionElementURIs.elementAt(i); 2469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "extension-element-prefixes" Strings. 2509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#extension-element">extension-element in XSLT Specification</a> 2519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Number of URIs in the list 2539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getExtensionElementPrefixCount() 2559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_ExtensionElementURIs) 2579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ? m_ExtensionElementURIs.size() : 0; 2589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Find out if this contains a given "extension-element-prefix" property. 2629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#extension-element">extension-element in XSLT Specification</a> 2639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param uri URI of extension element to look for 2659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return True if the given URI was found in the list 2679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean containsExtensionElementURI(String uri) 2699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_ExtensionElementURIs) 2729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 2739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_ExtensionElementURIs.contains(uri); 2759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "exclude-result-prefixes" property. 2799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 2809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private StringVector m_ExcludeResultPrefixs; 2829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "exclude-result-prefixes" property. 2859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The designation of a namespace as an excluded namespace is 2869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * effective within the subtree of the stylesheet rooted at 2879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the element bearing the exclude-result-prefixes or 2889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * xsl:exclude-result-prefixes attribute; a subtree rooted 2899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * at an xsl:stylesheet element does not include any stylesheets 2909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * imported or included by children of that xsl:stylesheet element. 2919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#literal-result-element">literal-result-element in XSLT Specification</a> 2929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v A StringVector of prefixes to exclude 2949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setExcludeResultPrefixes(StringVector v) 2969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_ExcludeResultPrefixs = v; 2989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "exclude-result-prefix" property. 3029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The designation of a namespace as an excluded namespace is 3039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * effective within the subtree of the stylesheet rooted at 3049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the element bearing the exclude-result-prefixes or 3059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * xsl:exclude-result-prefixes attribute; a subtree rooted 3069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * at an xsl:stylesheet element does not include any stylesheets 3079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * imported or included by children of that xsl:stylesheet element. 3089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#literal-result-element">literal-result-element in XSLT Specification</a> 3099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of prefix to get in list 3119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Prefix to be excluded at the given index 3139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 3159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getExcludeResultPrefix(int i) 3179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws ArrayIndexOutOfBoundsException 3189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_ExcludeResultPrefixs) 3219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 3229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_ExcludeResultPrefixs.elementAt(i); 3249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "exclude-result-prefixes" Strings. 3289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#literal-result-element">literal-result-element in XSLT Specification</a> 3299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The number of prefix strings to be excluded. 3319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getExcludeResultPrefixCount() 3339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_ExcludeResultPrefixs) 3359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ? m_ExcludeResultPrefixs.size() : 0; 3369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get whether or not the passed prefix is contained flagged by 3409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the "exclude-result-prefixes" property. 3419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#literal-result-element">literal-result-element in XSLT Specification</a> 3429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param prefix non-null reference to prefix that might be excluded. 3449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param uri reference to namespace that prefix maps to 3459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return true if the prefix should normally be excluded.> 3479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean containsExcludeResultPrefix(String prefix, String uri) 3499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_ExcludeResultPrefixs || uri == null ) 3529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 3539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // This loop is ok here because this code only runs during 3559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // stylesheet compile time. 3569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i =0; i< m_ExcludeResultPrefixs.size(); i++) 3579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (uri.equals(getNamespaceForPrefix(m_ExcludeResultPrefixs.elementAt(i)))) 3599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return true; 3609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 3639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /* if (prefix.length() == 0) 3659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson prefix = Constants.ATTRVAL_DEFAULT_PREFIX; 3669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_ExcludeResultPrefixs.contains(prefix); */ 3689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "id" property. 3729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 3739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String m_Id; 3759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "id" property. 3789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#section-Embedding-Stylesheets">section-Embedding-Stylesheets in XSLT Specification</a> 3799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v Value for the "id" property. 3819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setId(String v) 3839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_Id = v; 3859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the "id" property. 3899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#section-Embedding-Stylesheets">section-Embedding-Stylesheets in XSLT Specification</a> 3909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The value of the "id" property. 3929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getId() 3949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_Id; 3969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "version" property. 4009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 4019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String m_Version; 4039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Whether or not the stylesheet is in "Forward Compatibility Mode" 4069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 4079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private boolean m_isCompatibleMode = false; 4099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "version" property. 4129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#forwards">forwards in XSLT Specification</a> 4139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v Value for the "version" property. 4159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setVersion(String v) 4179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_Version = v; 4199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_isCompatibleMode = (Double.valueOf(v).doubleValue() > Constants.XSLTVERSUPPORTED); 4209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get whether or not the stylesheet is in "Forward Compatibility Mode" 4249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return true if in forward compatible mode, false otherwise 4269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean getCompatibleMode() 4289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_isCompatibleMode; 4309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the "version" property. 4349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#forwards">forwards in XSLT Specification</a> 4359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The value of the "version" property. 4379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getVersion() 4399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_Version; 4419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:import" list. 4459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 4469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_imports; 4489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Add a stylesheet to the "import" list. 4519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#import">import in XSLT Specification</a> 4529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v Stylesheet to add to the import list 4549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setImport(StylesheetComposed v) 4569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_imports) 4599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_imports = new Vector(); 4609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // I'm going to insert the elements in backwards order, 4629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // so I can walk them 0 to n. 4639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_imports.addElement(v); 4649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get a stylesheet from the "import" list. 4689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#import">import in XSLT Specification</a> 4699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of the stylesheet to get 4719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The stylesheet at the given index 4739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 4759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public StylesheetComposed getImport(int i) 4779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws ArrayIndexOutOfBoundsException 4789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_imports) 4819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 4829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (StylesheetComposed) m_imports.elementAt(i); 4849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of imported stylesheets. 4889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#import">import in XSLT Specification</a> 4899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of imported stylesheets. 4919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getImportCount() 4939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_imports) ? m_imports.size() : 0; 4959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:include" properties. 4999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 5009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_includes; 5029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Add a stylesheet to the "include" list. 5059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#include">include in XSLT Specification</a> 5069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v Stylesheet to add to the "include" list 5089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setInclude(Stylesheet v) 5109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_includes) 5139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_includes = new Vector(); 5149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_includes.addElement(v); 5169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the stylesheet at the given in index in "include" list 5209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#include">include in XSLT Specification</a> 5219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of stylesheet to get 5239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Stylesheet at the given index 5259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 5279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Stylesheet getInclude(int i) throws ArrayIndexOutOfBoundsException 5299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_includes) 5329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 5339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (Stylesheet) m_includes.elementAt(i); 5359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of included stylesheets. 5399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#import">import in XSLT Specification</a> 5409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of included stylesheets. 5429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getIncludeCount() 5449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_includes) ? m_includes.size() : 0; 5469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Table of tables of element decimal-format. 5509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see DecimalFormatProperties 5519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 5529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Stack m_DecimalFormatDeclarations; 5549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Process the xsl:decimal-format element. 5579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param edf Decimal-format element to push into stack 5599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setDecimalFormat(DecimalFormatProperties edf) 5619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_DecimalFormatDeclarations) 5649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_DecimalFormatDeclarations = new Stack(); 5659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Elements are pushed in by order of importance 5679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // so that when recomposed, they get overiden properly. 5689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_DecimalFormatDeclarations.push(edf); 5699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:decimal-format" property. 5739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see DecimalFormatProperties 5759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#format-number">format-number in XSLT Specification</a> 5769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name The qualified name of the decimal format property. 5789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return null if not found, otherwise a DecimalFormatProperties 5799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * object, from which you can get a DecimalFormatSymbols object. 5809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public DecimalFormatProperties getDecimalFormat(QName name) 5829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_DecimalFormatDeclarations) 5859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 5869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int n = getDecimalFormatCount(); 5889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = (n - 1); i >= 0; i++) 5909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson DecimalFormatProperties dfp = getDecimalFormat(i); 5929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (dfp.getName().equals(name)) 5949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dfp; 5959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 5989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:decimal-format" property. 6029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#format-number">format-number in XSLT Specification</a> 6039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see DecimalFormatProperties 6049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of decimal-format property in stack 6069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The decimal-format property at the given index 6089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 6109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public DecimalFormatProperties getDecimalFormat(int i) 6129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws ArrayIndexOutOfBoundsException 6139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_DecimalFormatDeclarations) 6169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 6179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (DecimalFormatProperties) m_DecimalFormatDeclarations.elementAt(i); 6199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of xsl:decimal-format declarations. 6239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see DecimalFormatProperties 6249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of xsl:decimal-format declarations. 6269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getDecimalFormatCount() 6289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_DecimalFormatDeclarations) 6309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ? m_DecimalFormatDeclarations.size() : 0; 6319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:strip-space" properties, 6359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * A lookup table of all space stripping elements. 6369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 6379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_whitespaceStrippingElements; 6399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:strip-space" properties. 6429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#strip">strip in XSLT Specification</a> 6439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param wsi WhiteSpaceInfo element to add to list 6459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setStripSpaces(WhiteSpaceInfo wsi) 6479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_whitespaceStrippingElements) 6509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_whitespaceStrippingElements = new Vector(); 6529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_whitespaceStrippingElements.addElement(wsi); 6559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:strip-space" property. 6599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#strip">strip in XSLT Specification</a> 6609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of WhiteSpaceInfo to get 6629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return WhiteSpaceInfo at given index 6649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 6669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public WhiteSpaceInfo getStripSpace(int i) throws ArrayIndexOutOfBoundsException 6689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_whitespaceStrippingElements) 6719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 6729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (WhiteSpaceInfo) m_whitespaceStrippingElements.elementAt(i); 6749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:strip-space" properties. 6789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#strip">strip in XSLT Specification</a> 6799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:strip-space" properties. 6819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getStripSpaceCount() 6839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_whitespaceStrippingElements) 6859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ? m_whitespaceStrippingElements.size() : 0; 6869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:preserve-space" property, 6909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * A lookup table of all space preserving elements. 6919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 6929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_whitespacePreservingElements; 6949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:preserve-space" property. 6979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#strip">strip in XSLT Specification</a> 6989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param wsi WhiteSpaceInfo element to add to list 7009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setPreserveSpaces(WhiteSpaceInfo wsi) 7029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_whitespacePreservingElements) 7059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_whitespacePreservingElements = new Vector(); 7079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_whitespacePreservingElements.addElement(wsi); 7109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get a "xsl:preserve-space" property. 7149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#strip">strip in XSLT Specification</a> 7159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of WhiteSpaceInfo to get 7179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return WhiteSpaceInfo at the given index 7199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 7219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public WhiteSpaceInfo getPreserveSpace(int i) throws ArrayIndexOutOfBoundsException 7239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_whitespacePreservingElements) 7269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 7279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (WhiteSpaceInfo) m_whitespacePreservingElements.elementAt(i); 7299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:preserve-space" properties. 7339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#strip">strip in XSLT Specification</a> 7349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:preserve-space" properties. 7369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getPreserveSpaceCount() 7389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_whitespacePreservingElements) 7409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ? m_whitespacePreservingElements.size() : 0; 7419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:output" properties. This is a vector of OutputProperties objects. 7459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 7469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_output; 7489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:output" property. 7519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#output">output in XSLT Specification</a> 7529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v non-null reference to the OutputProperties object to be 7549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * added to the collection. 7559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setOutput(OutputProperties v) 7579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_output) 7599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_output = new Vector(); 7619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_output.addElement(v); 7649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:output" property. 7689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#output">output in XSLT Specification</a> 7699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of OutputFormatExtended to get 7719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return non-null reference to an OutputProperties object. 7739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 7759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public OutputProperties getOutput(int i) throws ArrayIndexOutOfBoundsException 7779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_output) 7809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 7819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (OutputProperties) m_output.elementAt(i); 7839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:output" properties. 7879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#output">output in XSLT Specification</a> 7889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The number of OutputProperties objects contained in this stylesheet. 7909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getOutputCount() 7929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_output) 7949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ? m_output.size() : 0; 7959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:key" property. 7999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 8009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_keyDeclarations; 8029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:key" property. 8059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#key">key in XSLT Specification</a> 8069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v KeyDeclaration element to add to the list of key declarations 8089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setKey(KeyDeclaration v) 8109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_keyDeclarations) 8139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_keyDeclarations = new Vector(); 8149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_keyDeclarations.addElement(v); 8169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:key" property. 8209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#key">key in XSLT Specification</a> 8219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of KeyDeclaration element to get 8239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return KeyDeclaration element at given index in list 8259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 8279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public KeyDeclaration getKey(int i) throws ArrayIndexOutOfBoundsException 8299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_keyDeclarations) 8329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 8339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (KeyDeclaration) m_keyDeclarations.elementAt(i); 8359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:key" properties. 8399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#key">key in XSLT Specification</a> 8409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:key" properties. 8429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getKeyCount() 8449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_keyDeclarations) ? m_keyDeclarations.size() : 0; 8469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:attribute-set" property. 8509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 8519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_attributeSets; 8539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:attribute-set" property. 8569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#attribute-sets">attribute-sets in XSLT Specification</a> 8579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param attrSet ElemAttributeSet to add to the list of attribute sets 8599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setAttributeSet(ElemAttributeSet attrSet) 8619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_attributeSets) 8649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_attributeSets = new Vector(); 8669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_attributeSets.addElement(attrSet); 8699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:attribute-set" property. 8739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#attribute-sets">attribute-sets in XSLT Specification</a> 8749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of ElemAttributeSet to get in list 8769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return ElemAttributeSet at the given index 8789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 8809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public ElemAttributeSet getAttributeSet(int i) 8829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws ArrayIndexOutOfBoundsException 8839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_attributeSets) 8869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 8879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (ElemAttributeSet) m_attributeSets.elementAt(i); 8899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:attribute-set" properties. 8939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#attribute-sets">attribute-sets in XSLT Specification</a> 8949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:attribute-set" properties. 8969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getAttributeSetCount() 8989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_attributeSets) ? m_attributeSets.size() : 0; 9009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:variable" and "xsl:param" properties. 9049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 9059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_topLevelVariables; 9079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:variable" property. 9109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 9119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v ElemVariable object to add to list of top level variables 9139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setVariable(ElemVariable v) 9159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_topLevelVariables) 9189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_topLevelVariables = new Vector(); 9199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_topLevelVariables.addElement(v); 9219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:variable" or "xsl:param" property. 9259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 9269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param qname non-null reference to the qualified name of the variable. 9289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The ElemVariable with the given name in the list or null 9309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public ElemVariable getVariableOrParam(QName qname) 9329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null != m_topLevelVariables) 9359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int n = getVariableOrParamCount(); 9379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < n; i++) 9399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemVariable var = (ElemVariable) getVariableOrParam(i); 9419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (var.getName().equals(qname)) 9439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return var; 9449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 9489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:variable" property. 9539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 9549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param qname Qualified name of the xsl:variable to get 9569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return reference to the variable named by qname, or null if not found. 9589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public ElemVariable getVariable(QName qname) 9609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null != m_topLevelVariables) 9639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int n = getVariableOrParamCount(); 9659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < n; i++) 9679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemVariable var = getVariableOrParam(i); 9699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if((var.getXSLToken() == Constants.ELEMNAME_VARIABLE) && 9709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson (var.getName().equals(qname))) 9719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return var; 9729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 9769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:variable" property. 9809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 9819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of variable to get in the list 9839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return ElemVariable at the given index in the list 9859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 9879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public ElemVariable getVariableOrParam(int i) throws ArrayIndexOutOfBoundsException 9899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_topLevelVariables) 9929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 9939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (ElemVariable) m_topLevelVariables.elementAt(i); 9959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:variable" properties. 9999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 10009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:variable" properties. 10029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getVariableOrParamCount() 10049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_topLevelVariables) ? m_topLevelVariables.size() : 0; 10069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set an "xsl:param" property. 10109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 10119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v A non-null ElemParam reference. 10139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setParam(ElemParam v) 10159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson setVariable(v); 10179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:param" property. 10219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 10229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param qname non-null reference to qualified name of the parameter. 10249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return ElemParam with the given name in the list or null 10269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public ElemParam getParam(QName qname) 10289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null != m_topLevelVariables) 10319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int n = getVariableOrParamCount(); 10339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < n; i++) 10359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemVariable var = getVariableOrParam(i); 10379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if((var.getXSLToken() == Constants.ELEMNAME_PARAMVARIABLE) && 10389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson (var.getName().equals(qname))) 10399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (ElemParam)var; 10409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 10449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:template" properties. 10489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 10499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_templates; 10519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set an "xsl:template" property. 10549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#section-Defining-Template-Rules">section-Defining-Template-Rules in XSLT Specification</a> 10559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v ElemTemplate to add to list of templates 10579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setTemplate(ElemTemplate v) 10599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_templates) 10629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_templates = new Vector(); 10639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_templates.addElement(v); 10659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson v.setStylesheet(this); 10669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:template" property. 10709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#section-Defining-Template-Rules">section-Defining-Template-Rules in XSLT Specification</a> 10719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of ElemTemplate in the list to get 10739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return ElemTemplate at the given index in the list 10759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws TransformerException 10779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public ElemTemplate getTemplate(int i) throws TransformerException 10799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_templates) 10829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 10839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (ElemTemplate) m_templates.elementAt(i); 10859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:template" properties. 10899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#section-Defining-Template-Rules">section-Defining-Template-Rules in XSLT Specification</a> 10909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:template" properties. 10929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getTemplateCount() 10949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_templates) ? m_templates.size() : 0; 10969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "xsl:namespace-alias" properties. 11009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 11019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Vector m_prefix_aliases; 11039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the "xsl:namespace-alias" property. 11069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#literal-result-element">literal-result-element in XSLT Specification</a> 11079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param na NamespaceAlias elemeent to add to the list 11099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setNamespaceAlias(NamespaceAlias na) 11119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (m_prefix_aliases == null) 11149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_prefix_aliases = new Vector(); 11159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_prefix_aliases.addElement(na); 11179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an "xsl:namespace-alias" property. 11219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#literal-result-element">literal-result-element in XSLT Specification</a> 11229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of NamespaceAlias element to get from the list 11249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return NamespaceAlias element at the given index in the list 11269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws ArrayIndexOutOfBoundsException 11289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public NamespaceAlias getNamespaceAlias(int i) 11309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws ArrayIndexOutOfBoundsException 11319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_prefix_aliases) 11349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 11359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (NamespaceAlias) m_prefix_aliases.elementAt(i); 11379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the number of "xsl:namespace-alias" properties. 11419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#top-level-variables">top-level-variables in XSLT Specification</a> 11429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the number of "xsl:namespace-alias" properties. 11449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getNamespaceAliasCount() 11469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_prefix_aliases) ? m_prefix_aliases.size() : 0; 11489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The "non-xsl-top-level" properties. 11529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 11539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Hashtable m_NonXslTopLevel; 11559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set found a non-xslt element. 11589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#stylesheet-element">stylesheet-element in XSLT Specification</a> 11599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name Qualified name of the element 11619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param obj The element object 11629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setNonXslTopLevel(QName name, Object obj) 11649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_NonXslTopLevel) 11679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_NonXslTopLevel = new Hashtable(); 11689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_NonXslTopLevel.put(name, obj); 11709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get a non-xslt element. 11749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see <a href="http://www.w3.org/TR/xslt#stylesheet-element">stylesheet-element in XSLT Specification</a> 11759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name Qualified name of the element to get 11779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The object associate with the given name 11799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Object getNonXslTopLevel(QName name) 11819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null != m_NonXslTopLevel) ? m_NonXslTopLevel.get(name) : null; 11839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // =========== End top-level XSLT properties =========== 11869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The base URL of the XSL document. 11899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 11909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String m_href = null; 11929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** The doctype-public element. 11949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial */ 11959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String m_publicId; 11969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** The doctype-system element. 11989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial */ 11999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String m_systemId; 12009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the base identifier with which this stylesheet is associated. 12039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the base identifier with which this stylesheet is associated. 12059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getHref() 12079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_href; 12099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the base identifier with which this stylesheet is associated. 12139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param baseIdent the base identifier with which this stylesheet is associated. 12159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setHref(String baseIdent) 12179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_href = baseIdent; 12199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the location information for this element. 12239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param locator SourceLocator object with location information 12259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setLocaterInfo(SourceLocator locator) 12279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null != locator) 12309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_publicId = locator.getPublicId(); 12329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_systemId = locator.getSystemId(); 12339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null != m_systemId) 12359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson try 12379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_href = SystemIDResolver.getAbsoluteURI(m_systemId, null); 12399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson catch (TransformerException se) 12419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Ignore this for right now 12449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson super.setLocaterInfo(locator); 12489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The root of the stylesheet, where all the tables common 12539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to all stylesheets are kept. 12549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 12559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private StylesheetRoot m_stylesheetRoot; 12579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the root of the stylesheet, where all the tables common 12609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to all stylesheets are kept. 12619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the root of the stylesheet 12639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public StylesheetRoot getStylesheetRoot() 12659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_stylesheetRoot; 12679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the root of the stylesheet, where all the tables common 12719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to all stylesheets are kept. 12729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v the root of the stylesheet 12749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setStylesheetRoot(StylesheetRoot v) 12769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_stylesheetRoot = v; 12789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The parent of the stylesheet. This will be null if this 12829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * is the root stylesheet. 12839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @serial 12849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private Stylesheet m_stylesheetParent; 12869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the parent of the stylesheet. This will be null if this 12899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * is the root stylesheet. 12909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the parent of the stylesheet. 12929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Stylesheet getStylesheetParent() 12949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return m_stylesheetParent; 12969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Set the parent of the stylesheet. This should be null if this 13009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * is the root stylesheet. 13019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v the parent of the stylesheet. 13039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setStylesheetParent(Stylesheet v) 13059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_stylesheetParent = v; 13079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the owning aggregated stylesheet, or this 13119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * stylesheet if it is aggregated. 13129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the owning aggregated stylesheet or itself 13149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public StylesheetComposed getStylesheetComposed() 13169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Stylesheet sheet = this; 13199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson while (!sheet.isAggregatedType()) 13219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson sheet = sheet.getStylesheetParent(); 13239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (StylesheetComposed) sheet; 13269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the type of the node. We'll pretend we're a Document. 13309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the type of the node: document node. 13329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public short getNodeType() 13349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return DTM.DOCUMENT_NODE; 13369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get an integer representation of the element type. 13409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return An integer representation of the element, defined in the 13429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Constants class. 13439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.apache.xalan.templates.Constants 13449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public int getXSLToken() 13469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return Constants.ELEMNAME_STYLESHEET; 13489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Return the node name. 13529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The node name 13549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getNodeName() 13569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return Constants.ELEMNAME_STYLESHEET_STRING; 13589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Replace an "xsl:template" property. 13629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This is a hook for CompilingStylesheetHandler, to allow 13639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * us to access a template, compile it, instantiate it, 13649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * and replace the original with the compiled instance. 13659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * ADDED 9/5/2000 to support compilation experiment 13669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param v Compiled template to replace with 13689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param i Index of template to be replaced 13699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws TransformerException 13719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void replaceTemplate(ElemTemplate v, int i) throws TransformerException 13739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (null == m_templates) 13769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new ArrayIndexOutOfBoundsException(); 13779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson replaceChild(v, (ElemTemplateElement)m_templates.elementAt(i)); 13799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson m_templates.setElementAt(v, i); 13809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson v.setStylesheet(this); 13819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Call the children visitors. 13859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param visitor The visitor whose appropriate method will be called. 13869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson protected void callChildVisitors(XSLTVisitor visitor, boolean callAttrs) 13889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int s = getImportCount(); 13909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 13919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson getImport(j).callVisitors(visitor); 13939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getIncludeCount(); 13969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 13979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson getInclude(j).callVisitors(visitor); 13999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getOutputCount(); 14029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson visitor.visitTopLevelInstruction(getOutput(j)); 14059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Next, add in the attribute-set elements 14089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getAttributeSetCount(); 14109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemAttributeSet attrSet = getAttributeSet(j); 14139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (visitor.visitTopLevelInstruction(attrSet)) 14149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson attrSet.callChildVisitors(visitor); 14169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Now the decimal-formats 14199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getDecimalFormatCount(); 14219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson visitor.visitTopLevelInstruction(getDecimalFormat(j)); 14249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Now the keys 14279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getKeyCount(); 14299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson visitor.visitTopLevelInstruction(getKey(j)); 14329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // And the namespace aliases 14359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getNamespaceAliasCount(); 14379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson visitor.visitTopLevelInstruction(getNamespaceAlias(j)); 14409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Next comes the templates 14439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getTemplateCount(); 14459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson try 14489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemTemplate template = getTemplate(j); 14509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (visitor.visitTopLevelInstruction(template)) 14519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson template.callChildVisitors(visitor); 14539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson catch (TransformerException te) 14569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new org.apache.xml.utils.WrappedRuntimeException(te); 14589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Then, the variables 14629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getVariableOrParamCount(); 14649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemVariable var = getVariableOrParam(j); 14679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (visitor.visitTopLevelVariableOrParamDecl(var)) 14689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson var.callChildVisitors(visitor); 14709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // And lastly the whitespace preserving and stripping elements 14749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getStripSpaceCount(); 14769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson visitor.visitTopLevelInstruction(getStripSpace(j)); 14799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson s = getPreserveSpaceCount(); 14829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int j = 0; j < s; j++) 14839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson visitor.visitTopLevelInstruction(getPreserveSpace(j)); 14859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(null != m_NonXslTopLevel) 14889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson java.util.Enumeration elements = m_NonXslTopLevel.elements(); 14909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson while(elements.hasMoreElements()) 14919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElemTemplateElement elem = (ElemTemplateElement)elements.nextElement(); 14939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (visitor.visitTopLevelInstruction(elem)) 14949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson elem.callChildVisitors(visitor); 14969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 15049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Accept a visitor and call the appropriate method 15059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * for this class. 15069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 15079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param visitor The visitor whose appropriate method will be called. 15089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return true if the children of the object should be visited. 15099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 15109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson protected boolean accept(XSLTVisitor visitor) 15119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 15129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return visitor.visitStylesheet(this); 15139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson} 1517