<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.core.internal.model</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.core.internal.model</strong></font><br>
               Class StylesheetParserData</h2><br><hr><pre>public class <strong>StylesheetParserData</strong>
extends java.lang.Object</pre>This class is used to hold Data necessary for parsing and walking
 an XSL Stylesheet into a Model.<p></p><p></p><hr><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_StylesheetParserData">StylesheetParserData</a></strong>(java.util.Stack elementStack
         ,
      java.util.Stack callTemplates
         ,
      java.util.Stack functions)</code></td></tr></table><br><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Stack</code></td><td width="" align="left"><code><a href="#method_getCallTemplates">getCallTemplates</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xsl.core.model.Template</code></td><td width="" align="left"><code><a href="#method_getCurrentTemplate">getCurrentTemplate</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Stack</code></td><td width="" align="left"><code><a href="#method_getElementStack">getElementStack</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Stack</code></td><td width="" align="left"><code><a href="#method_getFunctions">getFunctions</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xsl.core.model.XSLElement</code></td><td width="" align="left"><code><a href="#method_getParentEl">getParentEl</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xsl.core.model.Stylesheet</code></td><td width="" align="left"><code><a href="#method_getStylesheet">getStylesheet</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setCallTemplates">setCallTemplates</a>(java.util.Stack callTemplates)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setCurrentTemplate">setCurrentTemplate</a>(org.eclipse.wst.xsl.core.model.Template currentTemplate)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setElementStack">setElementStack</a>(java.util.Stack elementStack)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setFunctions">setFunctions</a>(java.util.Stack functions)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setParentEl">setParentEl</a>(org.eclipse.wst.xsl.core.model.XSLElement parentEl)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setStylesheet">setStylesheet</a>(org.eclipse.wst.xsl.core.model.Stylesheet sf)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_StylesheetParserData">StylesheetParserData</a></h2><p><code>public <strong>StylesheetParserData</strong>(java.util.Stack elementStack
         ,
      java.util.Stack callTemplates
         ,
      java.util.Stack functions)</code></p><p></p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_getCallTemplates">getCallTemplates</a></h2><p><code>public java.util.Stack <strong>getCallTemplates</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.util.Stack</code></p><hr><h2><a name="method_getCurrentTemplate">getCurrentTemplate</a></h2><p><code>public org.eclipse.wst.xsl.core.model.Template <strong>getCurrentTemplate</strong>()</code></p><p></p><h3>Returns</h3><p><code>org.eclipse.wst.xsl.core.model.Template</code></p><hr><h2><a name="method_getElementStack">getElementStack</a></h2><p><code>public java.util.Stack <strong>getElementStack</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.util.Stack</code></p><hr><h2><a name="method_getFunctions">getFunctions</a></h2><p><code>public java.util.Stack <strong>getFunctions</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.util.Stack</code></p><hr><h2><a name="method_getParentEl">getParentEl</a></h2><p><code>public org.eclipse.wst.xsl.core.model.XSLElement <strong>getParentEl</strong>()</code></p><p></p><h3>Returns</h3><p><code>org.eclipse.wst.xsl.core.model.XSLElement</code></p><hr><h2><a name="method_getStylesheet">getStylesheet</a></h2><p><code>public org.eclipse.wst.xsl.core.model.Stylesheet <strong>getStylesheet</strong>()</code></p><p></p><h3>Returns</h3><p><code>org.eclipse.wst.xsl.core.model.Stylesheet</code></p><hr><h2><a name="method_setCallTemplates">setCallTemplates</a></h2><p><code>public void <strong>setCallTemplates</strong>(java.util.Stack callTemplates)</code></p><p></p><h3>Parameters</h3><p><code>callTemplates</code></p><hr><h2><a name="method_setCurrentTemplate">setCurrentTemplate</a></h2><p><code>public void <strong>setCurrentTemplate</strong>(org.eclipse.wst.xsl.core.model.Template currentTemplate)</code></p><p></p><h3>Parameters</h3><p><code>currentTemplate</code></p><hr><h2><a name="method_setElementStack">setElementStack</a></h2><p><code>public void <strong>setElementStack</strong>(java.util.Stack elementStack)</code></p><p></p><h3>Parameters</h3><p><code>elementStack</code></p><hr><h2><a name="method_setFunctions">setFunctions</a></h2><p><code>public void <strong>setFunctions</strong>(java.util.Stack functions)</code></p><p></p><h3>Parameters</h3><p><code>functions</code></p><hr><h2><a name="method_setParentEl">setParentEl</a></h2><p><code>public void <strong>setParentEl</strong>(org.eclipse.wst.xsl.core.model.XSLElement parentEl)</code></p><p></p><h3>Parameters</h3><p><code>parentEl</code></p><hr><h2><a name="method_setStylesheet">setStylesheet</a></h2><p><code>public void <strong>setStylesheet</strong>(org.eclipse.wst.xsl.core.model.Stylesheet sf)</code></p><p></p><h3>Parameters</h3><p><code>sf</code></p><hr></body></html>