001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 /* 019 * $Id: XSLTVisitor.java 468643 2006-10-28 06:56:03Z minchau $ 020 */ 021 package org.apache.xalan.templates; 022 023 import org.apache.xpath.XPathVisitor; 024 025 /** 026 * A derivation from this class can be passed to a class that implements 027 * the XSLTVisitable interface, to have the appropriate method called 028 * for each component of an XSLT stylesheet. Aside from possible other uses, 029 * the main intention is to provide a reasonable means to perform expression 030 * rewriting. 031 */ 032 public class XSLTVisitor extends XPathVisitor 033 { 034 /** 035 * Visit an XSLT instruction. Any element that isn't called by one 036 * of the other visit methods, will be called by this method. 037 * 038 * @param elem The xsl instruction element object. 039 * @return true if the sub expressions should be traversed. 040 */ 041 public boolean visitInstruction(ElemTemplateElement elem) 042 { 043 return true; 044 } 045 046 /** 047 * Visit an XSLT stylesheet instruction. 048 * 049 * @param elem The xsl instruction element object. 050 * @return true if the sub expressions should be traversed. 051 */ 052 public boolean visitStylesheet(ElemTemplateElement elem) 053 { 054 return true; 055 } 056 057 058 /** 059 * Visit an XSLT top-level instruction. 060 * 061 * @param elem The xsl instruction element object. 062 * @return true if the sub expressions should be traversed. 063 */ 064 public boolean visitTopLevelInstruction(ElemTemplateElement elem) 065 { 066 return true; 067 } 068 069 /** 070 * Visit an XSLT top-level instruction. 071 * 072 * @param elem The xsl instruction element object. 073 * @return true if the sub expressions should be traversed. 074 */ 075 public boolean visitTopLevelVariableOrParamDecl(ElemTemplateElement elem) 076 { 077 return true; 078 } 079 080 081 /** 082 * Visit an XSLT variable or parameter declaration. 083 * 084 * @param elem The xsl instruction element object. 085 * @return true if the sub expressions should be traversed. 086 */ 087 public boolean visitVariableOrParamDecl(ElemVariable elem) 088 { 089 return true; 090 } 091 092 /** 093 * Visit a LiteralResultElement. 094 * 095 * @param elem The literal result object. 096 * @return true if the sub expressions should be traversed. 097 */ 098 public boolean visitLiteralResultElement(ElemLiteralResult elem) 099 { 100 return true; 101 } 102 103 /** 104 * Visit an Attribute Value Template (at the top level). 105 * 106 * @param elem The attribute value template object. 107 * @return true if the sub expressions should be traversed. 108 */ 109 public boolean visitAVT(AVT elem) 110 { 111 return true; 112 } 113 114 115 /** 116 * Visit an extension element. 117 * @param elem The extension object. 118 * @return true if the sub expressions should be traversed. 119 */ 120 public boolean visitExtensionElement(ElemExtensionCall elem) 121 { 122 return true; 123 } 124 125 } 126