xref: /trunk/main/mysqlc/source/mysqlc_propertyids.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3 *
4 * Copyright 2008 by Sun Microsystems, Inc.
5 *
6 * OpenOffice.org - a multi-platform office productivity suite
7 *
8 * $RCSfile: mysqlc_propertyids.cxx,v $
9 *
10 * $Revision: 1.1.2.2 $
11 *
12 * This file is part of OpenOffice.org.
13 *
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
17 *
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
23 *
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org.  If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
28 ************************************************************************/
29 
30 #ifndef _OSL_DIAGNOSE_H_
31 #include <osl/diagnose.h>
32 #endif
33 #include "mysqlc_propertyids.hxx"
34 
35 using ::rtl::OUString;
36 
37 namespace connectivity
38 {
39 namespace mysqlc
40 {
41 const sal_Char* getPROPERTY_QUERYTIMEOUT()          { return "QueryTimeOut"; }
42 const sal_Char* getPROPERTY_MAXFIELDSIZE()          { return "MaxFieldSize"; }
43 const sal_Char* getPROPERTY_MAXROWS()               { return "MaxRows"; }
44 const sal_Char* getPROPERTY_CURSORNAME()            { return "CursorName"; }
45 const sal_Char* getPROPERTY_RESULTSETCONCURRENCY()  { return "ResultSetConcurrency"; }
46 const sal_Char* getPROPERTY_RESULTSETTYPE()         { return "ResultSetType"; }
47 const sal_Char* getPROPERTY_FETCHDIRECTION()        { return "FetchDirection"; }
48 const sal_Char* getPROPERTY_FETCHSIZE()             { return "FetchSize"; }
49 const sal_Char* getPROPERTY_ESCAPEPROCESSING()      { return "EscapeProcessing"; }
50 const sal_Char* getPROPERTY_USEBOOKMARKS()          { return "UseBookmarks"; }
51 
52 const sal_Char* getPROPERTY_NAME()                  { return "Name"; }
53 const sal_Char* getPROPERTY_TYPE()                  { return "Type"; }
54 const sal_Char* getPROPERTY_TYPENAME()              { return "TypeName"; }
55 const sal_Char* getPROPERTY_PRECISION()             { return "Precision"; }
56 const sal_Char* getPROPERTY_SCALE()                 { return "Scale"; }
57 const sal_Char* getPROPERTY_ISNULLABLE()            { return "IsNullable"; }
58 const sal_Char* getPROPERTY_ISAUTOINCREMENT()       { return "IsAutoIncrement"; }
59 const sal_Char* getPROPERTY_ISROWVERSION()          { return "IsRowVersion"; }
60 const sal_Char* getPROPERTY_DESCRIPTION()           { return "Description"; }
61 const sal_Char* getPROPERTY_DEFAULTVALUE()          { return "DefaultValue"; }
62 
63 const sal_Char* getPROPERTY_REFERENCEDTABLE()       { return "ReferencedTable"; }
64 const sal_Char* getPROPERTY_UPDATERULE()            { return "UpdateRule"; }
65 const sal_Char* getPROPERTY_DELETERULE()            { return "DeleteRule"; }
66 const sal_Char* getPROPERTY_CATALOG()               { return "Catalog"; }
67 const sal_Char* getPROPERTY_ISUNIQUE()              { return "IsUnique"; }
68 const sal_Char* getPROPERTY_ISPRIMARYKEYINDEX()     { return "IsPrimaryKeyIndex"; }
69 const sal_Char* getPROPERTY_ISCLUSTERED()           { return "IsClustered"; }
70 const sal_Char* getPROPERTY_ISASCENDING()           { return "IsAscending"; }
71 const sal_Char* getPROPERTY_SCHEMANAME()            { return "SchemaName"; }
72 const sal_Char* getPROPERTY_CATALOGNAME()           { return "CatalogName"; }
73 const sal_Char* getPROPERTY_COMMAND()               { return "Command"; }
74 const sal_Char* getPROPERTY_CHECKOPTION()           { return "CheckOption"; }
75 const sal_Char* getPROPERTY_PASSWORD()              { return "Password"; }
76 const sal_Char* getPROPERTY_RELATEDCOLUMN()         { return "RelatedColumn"; }
77 
78 const sal_Char* getSTAT_INVALID_INDEX()             { return "Invalid descriptor index"; }
79 
80 const sal_Char* getPROPERTY_FUNCTION()              { return "Function"; }
81 const sal_Char* getPROPERTY_TABLENAME()             { return "TableName"; }
82 const sal_Char* getPROPERTY_REALNAME()              { return "RealName"; }
83 const sal_Char* getPROPERTY_DBASEPRECISIONCHANGED() { return "DbasePrecisionChanged"; }
84 const sal_Char* getPROPERTY_ISCURRENCY()            { return "IsCurrency"; }
85 const sal_Char* getPROPERTY_ISBOOKMARKABLE()        { return "IsBookmarkable"; }
86 
87 const sal_Char* getPROPERTY_FORMATKEY()             { return "FormatKey"; }
88 const sal_Char* getPROPERTY_LOCALE()                { return "Locale"; }
89 
90 const sal_Char* getPROPERTY_AUTOINCREMENTCREATION() { return "AutoIncrementCreation"; }
91 const sal_Char* getPROPERTY_PRIVILEGES()            { return "Privileges"; }
92     //============================================================
93     //= error messages
94     //============================================================
95 const sal_Char* getERRORMSG_SEQUENCE()              { return "Function sequence error"; }
96 const sal_Char* getSQLSTATE_SEQUENCE()              { return "HY010"; }
97 const sal_Char* getSQLSTATE_GENERAL()               { return "HY0000"; }
98 const sal_Char* getSTR_DELIMITER()                  { return "/"; }
99 
100 
101 
102 /* {{{ OPropertyMap::~OPropertyMap() -I- */
103 OPropertyMap::~OPropertyMap()
104 {
105     ::std::map<sal_Int32 , rtl_uString*>::iterator aIter = m_aPropertyMap.begin();
106     for(; aIter != m_aPropertyMap.end(); ++aIter) {
107         if (aIter->second) {
108             rtl_uString_release(aIter->second);
109         }
110     }
111 }
112 /* }}} */
113 
114 
115 /* {{{ OPropertyMap::getNameByIndex() -I- */
116 OUString OPropertyMap::getNameByIndex(sal_Int32 idx) const
117 {
118     OUString sRet;
119     ::std::map<sal_Int32 , rtl_uString*>::const_iterator aIter = m_aPropertyMap.find(idx);
120     if (aIter == m_aPropertyMap.end()) {
121         sRet = const_cast<OPropertyMap*>(this)->fillValue(idx);
122     } else {
123         sRet = aIter->second;
124     }
125     return sRet;
126 }
127 /* }}} */
128 
129 typedef const sal_Char * (*property_callback)();
130 
131 static const property_callback property_callbacks[PROPERTY_ID_LAST] =
132 {
133     NULL, /* PROPERTY_ID_FIRST */
134     getPROPERTY_QUERYTIMEOUT,
135     getPROPERTY_MAXFIELDSIZE,
136     getPROPERTY_MAXROWS,
137     getPROPERTY_CURSORNAME,
138     getPROPERTY_RESULTSETCONCURRENCY,
139     getPROPERTY_RESULTSETTYPE,
140     getPROPERTY_FETCHDIRECTION,
141     getPROPERTY_FETCHSIZE,
142     getPROPERTY_ESCAPEPROCESSING,
143     getPROPERTY_USEBOOKMARKS,
144     // Column
145     getPROPERTY_NAME,
146     getPROPERTY_TYPE,
147     getPROPERTY_TYPENAME,
148     getPROPERTY_PRECISION,
149     getPROPERTY_SCALE,
150     getPROPERTY_ISNULLABLE,
151     getPROPERTY_ISAUTOINCREMENT,
152     getPROPERTY_ISROWVERSION,
153     getPROPERTY_DESCRIPTION,
154     getPROPERTY_DEFAULTVALUE,
155 
156     getPROPERTY_REFERENCEDTABLE,
157     getPROPERTY_UPDATERULE,
158     getPROPERTY_DELETERULE,
159     getPROPERTY_CATALOG,
160     getPROPERTY_ISUNIQUE,
161     getPROPERTY_ISPRIMARYKEYINDEX,
162     getPROPERTY_ISCLUSTERED,
163     getPROPERTY_ISASCENDING,
164     getPROPERTY_SCHEMANAME,
165     getPROPERTY_CATALOGNAME,
166 
167     getPROPERTY_COMMAND,
168     getPROPERTY_CHECKOPTION,
169     getPROPERTY_PASSWORD,
170     getPROPERTY_RELATEDCOLUMN,
171 
172     getPROPERTY_FUNCTION,
173     getPROPERTY_TABLENAME,
174     getPROPERTY_REALNAME,
175     getPROPERTY_DBASEPRECISIONCHANGED,
176     getPROPERTY_ISCURRENCY,
177     getPROPERTY_ISBOOKMARKABLE,
178     getSTAT_INVALID_INDEX,
179     getERRORMSG_SEQUENCE,
180     getSQLSTATE_SEQUENCE,
181     getSQLSTATE_GENERAL,
182     getSTR_DELIMITER,
183     getPROPERTY_FORMATKEY,
184     getPROPERTY_LOCALE,
185     getPROPERTY_AUTOINCREMENTCREATION,
186     getPROPERTY_PRIVILEGES,
187 };
188 
189 
190 /* {{{ OPropertyMap::fillValue() -I- */
191 OUString OPropertyMap::fillValue(sal_Int32 idx)
192 {
193     rtl_uString* pStr = NULL;
194     rtl_uString_newFromAscii(&pStr, property_callbacks[idx]());
195     m_aPropertyMap[idx] = pStr;
196     return pStr;
197 }
198 /* }}} */
199 
200 } /* mysqlc */
201 } /* connectivity */
202 
203 /*
204  * Local variables:
205  * tab-width: 4
206  * c-basic-offset: 4
207  * End:
208  * vim600: noet sw=4 ts=4 fdm=marker
209  * vim<600: noet sw=4 ts=4
210  */
211