00001 /* 00002 * Licensed to the Apache Software Foundation (ASF) under one or more 00003 * contributor license agreements. See the NOTICE file distributed with 00004 * this work for additional information regarding copyright ownership. 00005 * The ASF licenses this file to You under the Apache License, Version 2.0 00006 * (the "License"); you may not use this file except in compliance with 00007 * the License. You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 */ 00017 00018 /* 00019 * $Id$ 00020 */ 00021 00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODEFILTER_HPP) 00023 #define XERCESC_INCLUDE_GUARD_DOMNODEFILTER_HPP 00024 00025 #include <xercesc/dom/DOMNode.hpp> 00026 00027 XERCES_CPP_NAMESPACE_BEGIN 00028 00029 00049 class CDOM_EXPORT DOMNodeFilter 00050 { 00051 protected: 00052 // ----------------------------------------------------------------------- 00053 // Hidden constructors 00054 // ----------------------------------------------------------------------- 00057 DOMNodeFilter() {}; 00059 00060 private: 00061 // ----------------------------------------------------------------------- 00062 // Unimplemented constructors and operators 00063 // ----------------------------------------------------------------------- 00066 DOMNodeFilter(const DOMNodeFilter &); 00067 DOMNodeFilter & operator = (const DOMNodeFilter &); 00069 00070 public: 00071 // ----------------------------------------------------------------------- 00072 // All constructors are hidden, just the destructor is available 00073 // ----------------------------------------------------------------------- 00080 virtual ~DOMNodeFilter() {}; 00082 00083 // ----------------------------------------------------------------------- 00084 // Class Types 00085 // ----------------------------------------------------------------------- 00112 enum FilterAction {FILTER_ACCEPT = 1, 00113 FILTER_REJECT = 2, 00114 FILTER_SKIP = 3}; 00115 00177 enum ShowTypeMasks { 00178 SHOW_ALL = 0x0000FFFF, 00179 SHOW_ELEMENT = 0x00000001, 00180 SHOW_ATTRIBUTE = 0x00000002, 00181 SHOW_TEXT = 0x00000004, 00182 SHOW_CDATA_SECTION = 0x00000008, 00183 SHOW_ENTITY_REFERENCE = 0x00000010, 00184 SHOW_ENTITY = 0x00000020, 00185 SHOW_PROCESSING_INSTRUCTION = 0x00000040, 00186 SHOW_COMMENT = 0x00000080, 00187 SHOW_DOCUMENT = 0x00000100, 00188 SHOW_DOCUMENT_TYPE = 0x00000200, 00189 SHOW_DOCUMENT_FRAGMENT = 0x00000400, 00190 SHOW_NOTATION = 0x00000800 00191 }; 00192 00193 typedef unsigned long ShowType; 00194 00196 00197 // ----------------------------------------------------------------------- 00198 // Virtual DOMNodeFilter interface 00199 // ----------------------------------------------------------------------- 00214 virtual FilterAction acceptNode (const DOMNode* node) const =0; 00216 00217 }; 00218 00219 XERCES_CPP_NAMESPACE_END 00220 00221 #endif