0022815: Missing delete operator for placement new
[occt.git] / src / LDOM / LDOM_BasicNode.hxx
1 // File:      LDOM_BasicNode.hxx
2 // Created:   26.06.01 14:45:03
3 // Author:    Alexander GRIGORIEV
4 // Copyright: OpenCascade 2001
5
6
7 #ifndef LDOM_BasicNode_HeaderFile
8 #define LDOM_BasicNode_HeaderFile
9
10 #include <LDOM_Node.hxx>
11
12 class LDOM_BasicElement;
13 class LDOM_NullPtr;
14 class LDOMParser;
15
16 //  Block of comments describing class LDOM_BasicNode
17 //
18
19 class LDOM_BasicNode 
20 {
21  public:
22   DEFINE_STANDARD_ALLOC
23
24  public:
25
26   Standard_Boolean  isNull    () const {return myNodeType ==LDOM_Node::UNKNOWN;}
27
28   LDOM_Node::NodeType getNodeType () const { return myNodeType; }
29
30   Standard_EXPORT const LDOM_BasicNode * GetSibling () const;
31
32  protected:
33   // ---------- PROTECTED METHODS ----------
34
35   LDOM_BasicNode () : myNodeType (LDOM_Node::UNKNOWN), mySibling (NULL) {}
36   //    Empty constructor
37
38   LDOM_BasicNode (LDOM_Node::NodeType aType)
39     : myNodeType (aType), mySibling (NULL) {}
40   //    Constructor
41
42   LDOM_BasicNode (const LDOM_BasicNode& anOther)
43     : myNodeType (anOther.getNodeType()), mySibling (anOther.GetSibling()) {}
44   //    Copy constructor
45
46   LDOM_BasicNode& operator =    (const LDOM_NullPtr * )
47                               { myNodeType = LDOM_Node::UNKNOWN; return *this; }
48
49   Standard_EXPORT LDOM_BasicNode& operator = (const LDOM_BasicNode& anOther);
50
51   void SetSibling (const LDOM_BasicNode * anOther)      { mySibling = anOther; }
52
53  protected:
54   friend class LDOM_BasicElement;
55   friend class LDOM_Node;
56   friend class LDOMParser;
57   // ---------- PROTECTED FIELDSS ----------
58
59   LDOM_Node::NodeType   myNodeType;
60   const LDOM_BasicNode  * mySibling;
61 };
62
63 #endif