1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * $Id: DOMLSSerializerFilter.hpp 671894 2008-06-26 13:29:21Z borisk $
20  */
21 
22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSSERIALIZERFILTER_HPP)
23 #define XERCESC_INCLUDE_GUARD_DOMLSSERIALIZERFILTER_HPP
24 
25 /**
26  *
27  * DOMLSSerializerFilter.hpp: interface for the DOMLSSerializerFilter class.
28  *
29  * DOMLSSerializerFilter provide applications the ability to examine nodes
30  * as they are being serialized.
31  *
32  * DOMLSSerializerFilter lets the application decide what nodes should be
33  * serialized or not.
34  *
35  * The DOMDocument, DOMDocumentType, DOMNotation, and DOMEntity nodes are not passed
36  * to the filter.
37  *
38  * @since DOM Level 3
39  */
40 
41 
42 #include <xercesc/dom/DOMNodeFilter.hpp>
43 
44 XERCES_CPP_NAMESPACE_BEGIN
45 
46 
47 class CDOM_EXPORT DOMLSSerializerFilter : public DOMNodeFilter {
48 protected:
49     // -----------------------------------------------------------------------
50     //  Hidden constructors
51     // -----------------------------------------------------------------------
52     /** @name Hidden constructors */
53     //@{
DOMLSSerializerFilter()54     DOMLSSerializerFilter() {};
55     //@}
56 
57 private:
58     // -----------------------------------------------------------------------
59     // Unimplemented constructors and operators
60     // -----------------------------------------------------------------------
61     /** @name Unimplemented constructors and operators */
62     //@{
63     DOMLSSerializerFilter(const DOMLSSerializerFilter &);
64     DOMLSSerializerFilter & operator = (const DOMLSSerializerFilter &);
65     //@}
66 
67 
68 public:
69     // -----------------------------------------------------------------------
70     //  All constructors are hidden, just the destructor is available
71     // -----------------------------------------------------------------------
72     /** @name Destructor */
73     //@{
74     /**
75      * Destructor
76      *
77      */
~DOMLSSerializerFilter()78     virtual ~DOMLSSerializerFilter() {};
79     //@}
80 
81     // -----------------------------------------------------------------------
82     //  Virtual DOMLSSerializerFilter interface
83     // -----------------------------------------------------------------------
84     /** @name Functions introduced in DOM Level 3 */
85     //@{
86 	 /**
87      * Interface from <code>DOMNodeFilter</code>,
88      * to be implemented by implementation (derived class)
89      */
90     virtual FilterAction acceptNode(const DOMNode* node) const = 0;
91 
92     /**
93      * Tells the DOMLSSerializer what types of nodes to show to the filter.
94      * See <code>DOMNodeFilter</code> for definition of the constants.
95      * The constant SHOW_ATTRIBUTE is meaningless here, attribute nodes will
96      * never be passed to a DOMLSSerializerFilter.
97      *
98      * @return The constants of what types of nodes to show.
99      * @since DOM Level 3
100      */
101     virtual ShowType getWhatToShow() const =0;
102     //@}
103 };
104 
105 XERCES_CPP_NAMESPACE_END
106 
107 #endif
108