Xalan-C++ API Reference  1.12.0
ElemSort.hpp
Go to the documentation of this file.
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 #if !defined(XALAN_ELEMSORT_HEADER_GUARD)
19 #define XALAN_ELEMSORT_HEADER_GUARD
20 
21 
22 
23 // Base include file. Must be first.
24 #include "XSLTDefinitions.hpp"
25 
26 
27 
28 // Base class header file.
29 #include "AVT.hpp"
30 #include "ElemTemplateElement.hpp"
31 
32 
33 
35 
36 
37 
38 namespace XALAN_CPP_NAMESPACE {
39 
40 
41 
42 class XPath;
43 class AVT;
44 
45 
46 
48 {
49 public:
50 
51  /**
52  * Construct an object corresponding to an "xsl:sort" element
53  *
54  * @param constructionContext context for construction of object
55  * @param stylesheetTree stylesheet containing element
56  * @param atts list of attributes for element
57  * @param lineNumber line number in document
58  * @param columnNumber column number in document
59  */
60  ElemSort(
61  StylesheetConstructionContext& constructionContext,
62  Stylesheet& stylesheetTree,
63  const AttributeListType& atts,
64  XalanFileLoc lineNumber,
65  XalanFileLoc columnNumber);
66 
67  static ElemSort*
68  create(
69  MemoryManager& theManager,
70  StylesheetConstructionContext& constructionContext,
71  Stylesheet& stylesheetTree,
72  const AttributeListType& atts,
73  XalanFileLoc lineNumber,
74  XalanFileLoc columnNumber);
75 
76  ~ElemSort();
77 
78  /**
79  * Retrieve the language attribute value template(AVT)
80  *
81  * @return the language AVT
82  */
83  const AVT*
84  getLangAVT() const
85  {
86  return m_langAVT;
87  }
88 
89  /**
90  * Retrieve the order attribute value template(AVT)
91  *
92  * @return the order AVT
93  */
94  const AVT*
95  getOrderAVT() const
96  {
97  return m_orderAVT;
98  }
99 
100  /**
101  * Retrieve the case-order attribute value template(AVT)
102  *
103  * @return the case-order AVT
104  */
105  const AVT*
107  {
108  return m_caseOrderAVT;
109  }
110 
111  /**
112  * Retrieve the data type attribute value template(AVT)
113  *
114  * @return the data type AVT
115  */
116  const AVT*
118  {
119  return m_dataTypeAVT;
120  }
121 
122  /**
123  * Retrieve the select pattern
124  *
125  * @return XPath corresponding to the select pattern
126  */
127  const XPath*
129  {
130  return m_selectPattern;
131  }
132 
133  virtual const XalanDOMString&
134  getElementName() const;
135 
136  virtual const XPath*
137  getXPath(XalanSize_t index = 0) const;
138 
139 private:
140 
141  const XPath* m_selectPattern;
142 
143  const AVT* m_langAVT;
144  const AVT* m_dataTypeAVT;
145  const AVT* m_orderAVT;
146  const AVT* m_caseOrderAVT;
147 };
148 
149 
150 
151 }
152 
153 
154 
155 #endif // XALAN_ELEMSORT_HEADER_GUARD
xalanc::ElemSort::getLangAVT
const AVT * getLangAVT() const
Retrieve the language attribute value template(AVT)
Definition: ElemSort.hpp:84
XALAN_CPP_NAMESPACE
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
Definition: XalanVersion.hpp:76
xalanc::AttributeListType
xercesc::AttributeList AttributeListType
Definition: AttributeListImpl.hpp:41
xalanc::ElemSort::getOrderAVT
const AVT * getOrderAVT() const
Retrieve the order attribute value template(AVT)
Definition: ElemSort.hpp:95
XalanDOMString.hpp
xalanc::XPath
Definition: XPath.hpp:67
xalanc::ElemSort::getDataTypeAVT
const AVT * getDataTypeAVT() const
Retrieve the data type attribute value template(AVT)
Definition: ElemSort.hpp:117
xalanc::ElemTemplateElement
Definition: ElemTemplateElement.hpp:79
xalanc::ElemSort::getCaseOrderAVT
const AVT * getCaseOrderAVT() const
Retrieve the case-order attribute value template(AVT)
Definition: ElemSort.hpp:106
xalanc::ElemSort::getSelectPattern
const XPath * getSelectPattern() const
Retrieve the select pattern.
Definition: ElemSort.hpp:128
xalanc::StylesheetConstructionContext
Definition: StylesheetConstructionContext.hpp:83
ElemTemplateElement.hpp
XSLTDefinitions.hpp
xalanc::Stylesheet
This class represents the base stylesheet or an "import" stylesheet.
Definition: Stylesheet.hpp:86
xalanc::ElemSort
Definition: ElemSort.hpp:47
xalanc::XalanDOMString
Definition: XalanDOMString.hpp:45
xalanc::AVT
Class to hold an Attribute Value Template.
Definition: AVT.hpp:58
AVT.hpp