xref: /trunk/main/connectivity/source/simpledbt/staticdbtools_s.hxx (revision 91144cd0085a7583d2099b982122deb2184ab956)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef CONNECTIVITY_STATIC_DBTOOLS_SIMPLE_HXX
25 #define CONNECTIVITY_STATIC_DBTOOLS_SIMPLE_HXX
26 
27 #include <connectivity/virtualdbtools.hxx>
28 #include "refbase.hxx"
29 
30 //........................................................................
31 namespace connectivity
32 {
33 //........................................................................
34 
35     //================================================================
36     //= ODataAccessStaticTools
37     //================================================================
38     class ODataAccessStaticTools
39             :public simple::IDataAccessTypeConversion
40             ,public simple::IDataAccessTools
41             ,public ORefBase
42     {
43     public:
44         ODataAccessStaticTools();
45 
46         // IDataAccessTypeConversion
47         // ------------------------------------------------
48         virtual ::com::sun::star::util::Date getStandardDate() const;
49 
50         // ------------------------------------------------
51         virtual double getValue(
52             const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn>& _rxVariant,
53             const ::com::sun::star::util::Date& rNullDate ) const;
54 
55         // ------------------------------------------------
56         virtual ::rtl::OUString getFormattedValue(
57             const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _rxColumn,
58             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& _rxFormatter,
59             const ::com::sun::star::util::Date& _rNullDate,
60             sal_Int32 _nKey,
61             sal_Int16 _nKeyType) const;
62 
63         // ------------------------------------------------
64         virtual ::rtl::OUString getFormattedValue(
65             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxColumn,
66             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter>& _rxFormatter,
67             const ::com::sun::star::lang::Locale& _rLocale,
68             const ::com::sun::star::util::Date& _rNullDate
69         ) const;
70 
71         // IDataAccessTools
72         // ------------------------------------------------
73         virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection_withFeedback(
74             const ::rtl::OUString& _rDataSourceName,
75             const ::rtl::OUString& _rUser,
76             const ::rtl::OUString& _rPwd,
77             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory
78         ) const;
79 
80         // ------------------------------------------------
81         virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> connectRowset(
82             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet,
83             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory,
84             sal_Bool _bSetAsActiveConnection
85         ) const;
86 
87         // ------------------------------------------------
88         virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getRowSetConnection(
89                 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet)
90                 const;
91 
92         // ------------------------------------------------
93         ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier> getNumberFormats(
94             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _rxConn,
95             sal_Bool _bAllowDefault
96         ) const;
97 
98         // ------------------------------------------------
99         virtual sal_Int32  getDefaultNumberFormat(
100             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColumn,
101             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatTypes >& _rxTypes,
102             const ::com::sun::star::lang::Locale& _rLocale
103         ) const;
104 
105         // ------------------------------------------------
106         virtual void TransferFormComponentProperties(
107             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxOld,
108             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxNew,
109             const ::com::sun::star::lang::Locale& _rLocale
110         ) const;
111 
112         // ------------------------------------------------
113         virtual ::rtl::OUString quoteName(
114             const ::rtl::OUString& _rQuote,
115             const ::rtl::OUString& _rName
116         ) const;
117 
118         // ------------------------------------------------
119         virtual ::rtl::OUString composeTableNameForSelect(
120             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
121             const ::rtl::OUString& _rCatalog,
122             const ::rtl::OUString& _rSchema,
123             const ::rtl::OUString& _rName
124         ) const;
125 
126         // ------------------------------------------------
127         virtual ::rtl::OUString composeTableNameForSelect(
128             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
129             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xTable
130         ) const;
131 
132         // ------------------------------------------------
133         virtual ::com::sun::star::sdb::SQLContext prependContextInfo(
134             ::com::sun::star::sdbc::SQLException& _rException,
135             const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext,
136             const ::rtl::OUString& _rContextDescription,
137             const ::rtl::OUString& _rContextDetails
138         ) const;
139 
140         // ------------------------------------------------
141         virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > getDataSource(
142             const ::rtl::OUString& _rsRegisteredName,
143             const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory
144         ) const;
145 
146         // ------------------------------------------------
147         /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::INSERT
148             @param      _rxCursorSet    the property set
149         */
150         virtual sal_Bool canInsert(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
151 
152         // ------------------------------------------------
153         /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::UPDATE
154             @param      _rxCursorSet    the property set
155         */
156         virtual sal_Bool canUpdate(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
157 
158         // ------------------------------------------------
159         /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::DELETE
160             @param      _rxCursorSet    the property set
161         */
162         virtual sal_Bool canDelete(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
163 
164         // ------------------------------------------------
165         virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
166             getFieldsByCommandDescriptor(
167                 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
168                 const sal_Int32 _nCommandType,
169                 const ::rtl::OUString& _rCommand,
170                 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _rxKeepFieldsAlive,
171                 ::dbtools::SQLExceptionInfo* _pErrorInfo = NULL
172             )   SAL_THROW( ( ) );
173 
174         // ------------------------------------------------
175         virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >
176             getFieldNamesByCommandDescriptor(
177                 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
178                 const sal_Int32 _nCommandType,
179                 const ::rtl::OUString& _rCommand,
180                 ::dbtools::SQLExceptionInfo* _pErrorInfo = NULL
181             )   SAL_THROW( ( ) );
182 
183         // ------------------------------------------------
184         virtual bool isEmbeddedInDatabase(
185             const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent,
186             ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxActualConnection
187         );
188 
189         // disambiguate IReference
190         // ------------------------------------------------
191         virtual oslInterlockedCount SAL_CALL acquire();
192         virtual oslInterlockedCount SAL_CALL release();
193     };
194 
195 //........................................................................
196 }   // namespace connectivity
197 //........................................................................
198 
199 #endif // CONNECTIVITY_STATIC_DBTOOLS_SIMPLE_HXX
200