1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 /* 19 * $Id: TransformState.java 468645 2006-10-28 06:57:24Z minchau $ 20 */ 21 package org.apache.xalan.transformer; 22 23 import javax.xml.transform.Transformer; 24 25 import org.apache.xalan.templates.ElemTemplate; 26 import org.apache.xalan.templates.ElemTemplateElement; 27 import org.apache.xml.serializer.TransformStateSetter; 28 29 import org.w3c.dom.Node; 30 import org.w3c.dom.traversal.NodeIterator; 31 32 /** 33 * This interface is meant to be used by a consumer of 34 * SAX2 events produced by Xalan, and enables the consumer 35 * to get information about the state of the transform. It 36 * is primarily intended as a tooling interface. A content 37 * handler can get a reference to a TransformState by implementing 38 * the TransformerClient interface. Xalan will check for 39 * that interface before it calls startDocument, and, if it 40 * is implemented, pass in a TransformState reference to the 41 * setTransformState method. 42 * 43 * <p>Note that the current stylesheet and root stylesheet can 44 * be retrieved from the ElemTemplateElement obtained from 45 * either getCurrentElement() or getCurrentTemplate().</p> 46 * 47 * This interface contains only getter methods, any setters are in the interface 48 * TransformStateSetter which this interface extends. 49 * 50 * @see org.apache.xml.serializer.TransformStateSetter 51 */ 52 public interface TransformState extends TransformStateSetter 53 { 54 55 /** 56 * Retrieves the stylesheet element that produced 57 * the SAX event. 58 * 59 * <p>Please note that the ElemTemplateElement returned may 60 * be in a default template, and thus may not be 61 * defined in the stylesheet.</p> 62 * 63 * @return the stylesheet element that produced the SAX event. 64 */ getCurrentElement()65 ElemTemplateElement getCurrentElement(); 66 67 /** 68 * This method retrieves the current context node 69 * in the source tree. 70 * 71 * @return the current context node in the source tree. 72 */ getCurrentNode()73 Node getCurrentNode(); 74 75 /** 76 * This method retrieves the xsl:template 77 * that is in effect, which may be a matched template 78 * or a named template. 79 * 80 * <p>Please note that the ElemTemplate returned may 81 * be a default template, and thus may not have a template 82 * defined in the stylesheet.</p> 83 * 84 * @return the xsl:template that is in effect 85 */ getCurrentTemplate()86 ElemTemplate getCurrentTemplate(); 87 88 /** 89 * This method retrieves the xsl:template 90 * that was matched. Note that this may not be 91 * the same thing as the current template (which 92 * may be from getCurrentElement()), since a named 93 * template may be in effect. 94 * 95 * <p>Please note that the ElemTemplate returned may 96 * be a default template, and thus may not have a template 97 * defined in the stylesheet.</p> 98 * 99 * @return the xsl:template that was matched. 100 */ getMatchedTemplate()101 ElemTemplate getMatchedTemplate(); 102 103 /** 104 * Retrieves the node in the source tree that matched 105 * the template obtained via getMatchedTemplate(). 106 * 107 * @return the node in the source tree that matched 108 * the template obtained via getMatchedTemplate(). 109 */ getMatchedNode()110 Node getMatchedNode(); 111 112 /** 113 * Get the current context node list. 114 * 115 * @return the current context node list. 116 */ getContextNodeList()117 NodeIterator getContextNodeList(); 118 119 /** 120 * Get the TrAX Transformer object in effect. 121 * 122 * @return the TrAX Transformer object in effect. 123 */ getTransformer()124 Transformer getTransformer(); 125 126 127 128 } 129