Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

KeyTable.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #if !defined(XALAN_KEYTABLE_HEADER_GUARD)
17 #define XALAN_KEYTABLE_HEADER_GUARD
18 
28 // Base include file. Must be first.
29 #include "XSLTDefinitions.hpp"
30 
31 
32 
34 
35 
36 
39 
40 
41 
43 
44 
45 
48 
49 
50 
51 XALAN_CPP_NAMESPACE_BEGIN
52 
53 
54 
55 class KeyDeclaration;
56 class NodeRefListBase;
57 class PrefixResolver;
59 class XalanElement;
60 class XalanDocument;
61 class XalanNode;
62 
63 
64 
65 
75 
76 
77 class KeyTable
78 {
79 public:
80 
82 
84 
86 
96  KeyTable(
97  XalanNode* startNode,
98  const PrefixResolver& resolver,
99  const KeyDeclarationVectorType& keyDeclarations,
100  StylesheetExecutionContext& executionContext);
101 
102  static KeyTable*
103  create(MemoryManagerType& theManager,
104  XalanNode* startNode,
105  const PrefixResolver& resolver,
106  const KeyDeclarationVectorType& keyDeclarations,
107  StylesheetExecutionContext& executionContext);
108 
109  virtual
110  ~KeyTable();
111 
124  const MutableNodeRefList&
125  getNodeSetByKey(
126  const XalanQName& qname,
127  const XalanDOMString& ref) const;
128 
129 private:
130 
131  static void
132  processKeyDeclaration(
133  KeysMapType& theKeys,
134  const KeyDeclaration& kd,
135  XalanNode* testNode,
136  const PrefixResolver& resolver,
137  StylesheetExecutionContext& executionContext);
138 
143  const XalanDocument* m_docKey;
144 
157  KeysMapType m_keys;
158 
159  static const MutableNodeRefList s_dummyList;
160 };
161 
162 
163 
164 XALAN_CPP_NAMESPACE_END
165 
166 
167 
168 #endif // XALAN_KEYTABLE_HEADER_GUARD

Interpreting class diagrams

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

dot

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

Apache Logo