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
Definition: XalanNode.hpp:44
XalanMap< XalanQNameByReference, NodeListMapType > KeysMapType
Definition: KeyTable.hpp:85
XalanMap< XalanDOMString, MutableNodeRefList > NodeListMapTypeDefinitions
Table of element keys, keyed by document node.
Definition: KeyTable.hpp:61
Local implementation of MutableNodeRefList.
Definition: MutableNodeRefList.hpp:44
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
XalanVector< KeyDeclaration > KeyDeclarationVectorType
Definition: KeyTable.hpp:81
Definition: StylesheetExecutionContext.hpp:104
Definition: XalanElement.hpp:42
Definition: KeyTable.hpp:77
Local implementation of NodeRefList.
Definition: NodeRefListBase.hpp:42
This class defines an interface for classes that resolve namespace prefixes to their URIs...
Definition: PrefixResolver.hpp:37
NodeListMapTypeDefinitions NodeListMapType
Definition: KeyTable.hpp:83
Definition: XalanDocument.hpp:51
#define XALAN_USES_MEMORY_MANAGER(Type)
Definition: XalanMemoryManagement.hpp:468
Holds the attribute declarations for the "xsl:key" element.
Definition: KeyDeclaration.hpp:41
Definition: XalanDOMString.hpp:42
Xalan implementation of a hashtable.
Definition: XalanMap.hpp:182
Class to represent a qualified name: "The name of an internal XSLT object, specifically a named templ...
Definition: XalanQName.hpp:68

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