## Xalan-C++ API Documentation

### The Xalan C++ XSLT Processor Version 1.9

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

# ElemVariable.hpp

Go to the documentation of this file.

    00001 /*
    00002  * Copyright 1999-2004 The Apache Software Foundation.
    00003  *
    00004  * Licensed under the Apache License, Version 2.0 (the "License");
    00005  * you may not use this file except in compliance with the License.
    00006  * You may obtain a copy of the License at
    00007  *
    00008  *     http://www.apache.org/licenses/LICENSE-2.0
    00009  *
    00010  * Unless required by applicable law or agreed to in writing, software
    00011  * distributed under the License is distributed on an "AS IS" BASIS,
    00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00013  * See the License for the specific language governing permissions and
    00014  * limitations under the License.
    00015  */
    00016 #if !defined(XALAN_ELEMVARIABLE_HEADER_GUARD)
    00017 #define XALAN_ELEMVARIABLE_HEADER_GUARD
    00018
    00028 // Base include file.  Must be first.
    00029 #include "XSLTDefinitions.hpp"
    00030
    00031 // Base class header file.
    00032 #include "ElemTemplateElement.hpp"
    00033
    00034
    00035
    00036 #include <xalanc/XPath/XObject.hpp>
    00037
    00038
    00039
    00040 #include <xalanc/XSLT/Constants.hpp>
    00041
    00042
    00043
    00044 XALAN_CPP_NAMESPACE_BEGIN
    00045
    00046
    00047
    00048 class XPath;
    00049
    00050
    00051
    00052 class ElemVariable : public ElemTemplateElement
    00053 {
    00054 public:
    00055
    00056     typedef ElemTemplateElement     ParentType;
    00057
    00067     ElemVariable(
    00068             StylesheetConstructionContext&  constructionContext,
    00069             Stylesheet&                     stylesheetTree,
    00070             const AttributeListType&        atts,
    00071             int                             lineNumber,
    00072             int                             columnNumber);
    00073
    00074     virtual
    00075     ~ElemVariable();
    00076
    00082     bool
    00083     isTopLevel() const
    00084     {
    00085         return m_isTopLevel;
    00086     }
    00087
    00088     // These methods are inherited from ElemTemplateElement ...
    00089
    00090     virtual const XalanQName&
    00091     getNameAttribute() const;
    00092
    00093     virtual void
    00094     addToStylesheet(
    00095             StylesheetConstructionContext&  constructionContext,
    00096             Stylesheet&                     theStylesheet);
    00097
    00098     virtual const XalanDOMString&
    00099     getElementName() const;
    00100
    00101 #if !defined(XALAN_RECURSIVE_STYLESHEET_EXECUTION)
    00102     const ElemTemplateElement*
    00103     startElement(StylesheetExecutionContext&    executionContext) const;
    00104
    00105     void
    00106     endElement(StylesheetExecutionContext&      executionContext) const;
    00107 #else
    00108     virtual void
    00109     execute(StylesheetExecutionContext&     executionContext) const;
    00110 #endif
    00111
    00112     const XObjectPtr
    00113     getValue(
    00114             StylesheetExecutionContext&     executionContext,
    00115             XalanNode*                      sourceNode) const;
    00116
    00117     virtual void
    00118     setParentNodeElem(ElemTemplateElement*      theParent);
    00119
    00120     virtual const XPath*
    00121     getXPath(unsigned int   index = 0) const;
    00122
    00123 protected:
    00124
    00134     ElemVariable(
    00135             StylesheetConstructionContext&  constructionContext,
    00136             Stylesheet&                     stylesheetTree,
    00137             const AttributeListType&        atts,
    00138             int                             lineNumber,
    00139             int                             columnNumber,
    00140             int                             xslToken);
    00141
    00149     void
    00150     init(
    00151             StylesheetConstructionContext&  constructionContext,
    00152             Stylesheet&                     stylesheetTree,
    00153             const AttributeListType&        atts);
    00154
    00155
    00156     const XalanQName*   m_qname;
    00157
    00158 private:
    00159
    00160     // not implemented
    00161     ElemVariable(const ElemVariable &);
    00162
    00163     ElemVariable&
    00164     operator=(const ElemVariable &);
    00165
    00166     const XPath*    m_selectPattern;
    00167
    00168     bool            m_isTopLevel;
    00169
    00170     XObjectPtr      m_value;
    00171
    00172     XalanNode*      m_varContext;
    00173 };
    00174
    00175
    00176
    00177 XALAN_CPP_NAMESPACE_END
    00178
    00179
    00180
    00181 #endif  // XALAN_ELEMVARIABLE_HEADER_GUARD

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.9 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.