1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_connectivity.hxx"
30 #include "internalnode.hxx"
31 
32 #include <algorithm>
33 #include <connectivity/sqlparse.hxx>
34 
35 using namespace connectivity;
36 
37 //-----------------------------------------------------------------------------
38 OSQLInternalNode::OSQLInternalNode(const sal_Char* pNewValue,
39 								   SQLNodeType eNodeType,
40 								   sal_uInt32 nNodeID)
41 				 : OSQLParseNode(pNewValue,eNodeType,nNodeID)
42 {
43 	OSL_ENSURE(OSQLParser::s_pGarbageCollector, "Collector not initialized");
44 	(*OSQLParser::s_pGarbageCollector)->push_back(this);
45 }
46 
47 //-----------------------------------------------------------------------------
48 OSQLInternalNode::OSQLInternalNode(const ::rtl::OString &_NewValue,
49 								 SQLNodeType eNodeType,
50 								 sal_uInt32 nNodeID)
51 				:OSQLParseNode(_NewValue,eNodeType,nNodeID)
52 {
53 	OSL_ENSURE(OSQLParser::s_pGarbageCollector, "Collector not initialized");
54 	(*OSQLParser::s_pGarbageCollector)->push_back(this);
55 }
56 
57 //-----------------------------------------------------------------------------
58 OSQLInternalNode::OSQLInternalNode(const sal_Unicode* pNewValue,
59 								   SQLNodeType eNodeType,
60 								   sal_uInt32 nNodeID)
61 				 :OSQLParseNode(pNewValue,eNodeType,nNodeID)
62 {
63 	OSL_ENSURE(OSQLParser::s_pGarbageCollector, "Collector not initialized");
64 	(*OSQLParser::s_pGarbageCollector)->push_back(this);
65 }
66 
67 //-----------------------------------------------------------------------------
68 OSQLInternalNode::OSQLInternalNode(const ::rtl::OUString &_NewValue,
69 								 SQLNodeType eNodeType,
70 								 sal_uInt32 nNodeID)
71 				:OSQLParseNode(_NewValue,eNodeType,nNodeID)
72 {
73 	OSL_ENSURE(OSQLParser::s_pGarbageCollector, "Collector not initialized");
74 	(*OSQLParser::s_pGarbageCollector)->push_back(this);
75 }
76 
77 
78 //-----------------------------------------------------------------------------
79 OSQLInternalNode::~OSQLInternalNode()
80 {
81 	// remove the node from the garbage list
82 
83 	OSL_ENSURE(OSQLParser::s_pGarbageCollector, "Collector not initialized");
84     (*OSQLParser::s_pGarbageCollector)->erase(this);
85 }
86