xref: /trunk/main/ucb/source/sorter/sortresult.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*6df1ea1fSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*6df1ea1fSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*6df1ea1fSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*6df1ea1fSAndrew Rist  * distributed with this work for additional information
6*6df1ea1fSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*6df1ea1fSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*6df1ea1fSAndrew Rist  * "License"); you may not use this file except in compliance
9*6df1ea1fSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*6df1ea1fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*6df1ea1fSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*6df1ea1fSAndrew Rist  * software distributed under the License is distributed on an
15*6df1ea1fSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*6df1ea1fSAndrew Rist  * KIND, either express or implied.  See the License for the
17*6df1ea1fSAndrew Rist  * specific language governing permissions and limitations
18*6df1ea1fSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*6df1ea1fSAndrew Rist  *************************************************************/
21*6df1ea1fSAndrew Rist 
22*6df1ea1fSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SORTRESULT_HXX
25cdf0e10cSrcweir #define _SORTRESULT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
28cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
29cdf0e10cSrcweir #include <com/sun/star/lang/XTypeProvider.hpp>
30cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
31cdf0e10cSrcweir #include <com/sun/star/lang/XComponent.hpp>
32cdf0e10cSrcweir #include <com/sun/star/sdbc/XCloseable.hpp>
33cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSet.hpp>
34cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSetMetaData.hpp>
35cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
36cdf0e10cSrcweir #include <com/sun/star/sdbc/XRow.hpp>
37cdf0e10cSrcweir #include <com/sun/star/ucb/XContentAccess.hpp>
38cdf0e10cSrcweir #include <com/sun/star/ucb/NumberedSortingInfo.hpp>
39cdf0e10cSrcweir #include <com/sun/star/ucb/XAnyCompareFactory.hpp>
40cdf0e10cSrcweir #include <com/sun/star/ucb/ListAction.hpp>
41cdf0e10cSrcweir #include <cppuhelper/weak.hxx>
42cdf0e10cSrcweir #include <osl/mutex.hxx>
43cdf0e10cSrcweir 
44cdf0e10cSrcweir #include <deque>
45cdf0e10cSrcweir #include <ucbhelper/macros.hxx>
46cdf0e10cSrcweir 
47cdf0e10cSrcweir namespace cppu {
48cdf0e10cSrcweir     class OInterfaceContainerHelper;
49cdf0e10cSrcweir }
50cdf0e10cSrcweir 
51cdf0e10cSrcweir //-----------------------------------------------------------------------------
52cdf0e10cSrcweir struct  SortInfo;
53cdf0e10cSrcweir struct  SortListData;
54cdf0e10cSrcweir class   SRSPropertySetInfo;
55cdf0e10cSrcweir class   PropertyChangeListeners_Impl;
56cdf0e10cSrcweir 
57cdf0e10cSrcweir //-----------------------------------------------------------------------------
58cdf0e10cSrcweir class SortedEntryList
59cdf0e10cSrcweir {
60cdf0e10cSrcweir     std::deque < SortListData* > maData;
61cdf0e10cSrcweir 
62cdf0e10cSrcweir public:
SortedEntryList()63cdf0e10cSrcweir                          SortedEntryList(){}
~SortedEntryList()64cdf0e10cSrcweir                         ~SortedEntryList(){ Clear(); }
65cdf0e10cSrcweir 
Count() const66cdf0e10cSrcweir     sal_uInt32          Count() const { return (sal_uInt32) maData.size(); }
67cdf0e10cSrcweir 
68cdf0e10cSrcweir     void                Clear();
69cdf0e10cSrcweir     void                Insert( SortListData *pEntry, long nPos );
70cdf0e10cSrcweir     SortListData*       Remove( long nPos );
71cdf0e10cSrcweir     SortListData*       GetData( long nPos );
72cdf0e10cSrcweir 
73cdf0e10cSrcweir     long                operator [] ( long nPos ) const;
74cdf0e10cSrcweir };
75cdf0e10cSrcweir 
76cdf0e10cSrcweir //-----------------------------------------------------------------------------
77cdf0e10cSrcweir #define LISTACTION  com::sun::star::ucb::ListAction
78cdf0e10cSrcweir 
79cdf0e10cSrcweir class EventList
80cdf0e10cSrcweir {
81cdf0e10cSrcweir     std::deque < LISTACTION* > maData;
82cdf0e10cSrcweir 
83cdf0e10cSrcweir public:
EventList()84cdf0e10cSrcweir                      EventList(){}
~EventList()85cdf0e10cSrcweir                     ~EventList(){ Clear(); }
86cdf0e10cSrcweir 
Count()87cdf0e10cSrcweir     sal_uInt32      Count() { return (sal_uInt32) maData.size(); }
88cdf0e10cSrcweir 
89cdf0e10cSrcweir     void            AddEvent( long nType, long nPos, long nCount );
Insert(LISTACTION * pAction)90cdf0e10cSrcweir     void            Insert( LISTACTION *pAction ) { maData.push_back( pAction ); }
91cdf0e10cSrcweir     void            Clear();
GetAction(long nIndex)92cdf0e10cSrcweir     LISTACTION*     GetAction( long nIndex ) { return maData[ nIndex ]; }
93cdf0e10cSrcweir };
94cdf0e10cSrcweir 
95cdf0e10cSrcweir //-----------------------------------------------------------------------------
96cdf0e10cSrcweir 
97cdf0e10cSrcweir class SimpleList
98cdf0e10cSrcweir {
99cdf0e10cSrcweir     std::deque < void* > maData;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir public:
SimpleList()102cdf0e10cSrcweir                      SimpleList(){}
~SimpleList()103cdf0e10cSrcweir                     ~SimpleList(){ Clear(); }
104cdf0e10cSrcweir 
Count()105cdf0e10cSrcweir     sal_uInt32      Count() { return (sal_uInt32) maData.size(); }
Clear()106cdf0e10cSrcweir     void            Clear() { maData.clear(); }
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     void            Remove( sal_uInt32 nPos );
109cdf0e10cSrcweir     void            Remove( void* pData );
110cdf0e10cSrcweir 
Append(void * pData)111cdf0e10cSrcweir     void            Append( void* pData )
112cdf0e10cSrcweir                         { maData.push_back( pData ); }
113cdf0e10cSrcweir     void            Insert( void* pData, sal_uInt32 nPos );
114cdf0e10cSrcweir     void*           GetObject( sal_uInt32 nPos ) const;
115cdf0e10cSrcweir     void            Replace( void* pData, sal_uInt32 nPos );
116cdf0e10cSrcweir };
117cdf0e10cSrcweir 
118cdf0e10cSrcweir //-----------------------------------------------------------------------------
119cdf0e10cSrcweir 
120cdf0e10cSrcweir #define PROPERTYCHANGEEVENT     com::sun::star::beans::PropertyChangeEvent
121cdf0e10cSrcweir #define RUNTIME_EXCEPTION       com::sun::star::uno::RuntimeException
122cdf0e10cSrcweir #define REFERENCE               com::sun::star::uno::Reference
123cdf0e10cSrcweir #define SEQUENCE                com::sun::star::uno::Sequence
124cdf0e10cSrcweir #define XEVENTLISTENER          com::sun::star::lang::XEventListener
125cdf0e10cSrcweir #define XRESULTSET              com::sun::star::sdbc::XResultSet
126cdf0e10cSrcweir #define SQLEXCEPTION            com::sun::star::sdbc::SQLException
127cdf0e10cSrcweir #define XRESULTSETMETADATA      com::sun::star::sdbc::XResultSetMetaData
128cdf0e10cSrcweir #define NUMBERED_SORTINGINFO    com::sun::star::ucb::NumberedSortingInfo
129cdf0e10cSrcweir #define XANYCOMPAREFACTORY      com::sun::star::ucb::XAnyCompareFactory
130cdf0e10cSrcweir 
131cdf0e10cSrcweir #define RESULTSET_SERVICE_NAME  "com.sun.star.ucb.SortedResultSet"
132cdf0e10cSrcweir 
133cdf0e10cSrcweir //-----------------------------------------------------------------------------
134cdf0e10cSrcweir 
135cdf0e10cSrcweir class SortedResultSet:
136cdf0e10cSrcweir                 public cppu::OWeakObject,
137cdf0e10cSrcweir                 public com::sun::star::lang::XTypeProvider,
138cdf0e10cSrcweir                 public com::sun::star::lang::XServiceInfo,
139cdf0e10cSrcweir                 public com::sun::star::lang::XComponent,
140cdf0e10cSrcweir                 public com::sun::star::ucb::XContentAccess,
141cdf0e10cSrcweir                 public XRESULTSET,
142cdf0e10cSrcweir                 public com::sun::star::sdbc::XRow,
143cdf0e10cSrcweir                 public com::sun::star::sdbc::XCloseable,
144cdf0e10cSrcweir                 public com::sun::star::sdbc::XResultSetMetaDataSupplier,
145cdf0e10cSrcweir                 public com::sun::star::beans::XPropertySet
146cdf0e10cSrcweir {
147cdf0e10cSrcweir     cppu::OInterfaceContainerHelper *mpDisposeEventListeners;
148cdf0e10cSrcweir     PropertyChangeListeners_Impl    *mpPropChangeListeners;
149cdf0e10cSrcweir     PropertyChangeListeners_Impl    *mpVetoChangeListeners;
150cdf0e10cSrcweir 
151cdf0e10cSrcweir     REFERENCE < XRESULTSET >            mxOriginal;
152cdf0e10cSrcweir     REFERENCE < XRESULTSET >            mxOther;
153cdf0e10cSrcweir 
154cdf0e10cSrcweir     SRSPropertySetInfo* mpPropSetInfo;
155cdf0e10cSrcweir     SortInfo*           mpSortInfo;
156cdf0e10cSrcweir     osl::Mutex          maMutex;
157cdf0e10cSrcweir     SortedEntryList     maS2O;          // maps the sorted entries to the original ones
158cdf0e10cSrcweir     SimpleList          maO2S;          // maps the original Entries to the sorted ones
159cdf0e10cSrcweir     SimpleList          maModList;      // keeps track of modified entries
160cdf0e10cSrcweir     long                mnLastSort;     // index of the last sorted entry;
161cdf0e10cSrcweir     long                mnCurEntry;     // index of the current entry
162cdf0e10cSrcweir     long                mnCount;        // total count of the elements
163cdf0e10cSrcweir     sal_Bool            mbIsCopy;
164cdf0e10cSrcweir 
165cdf0e10cSrcweir 
166cdf0e10cSrcweir private:
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     long                FindPos( SortListData *pEntry, long nStart, long nEnd )
169cdf0e10cSrcweir                             throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
170cdf0e10cSrcweir     long                Compare( SortListData *pOne,
171cdf0e10cSrcweir                                  SortListData *pTwo )
172cdf0e10cSrcweir                             throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
173cdf0e10cSrcweir     void                BuildSortInfo( REFERENCE< XRESULTSET > aResult,
174cdf0e10cSrcweir                                        const SEQUENCE < NUMBERED_SORTINGINFO > &xSortInfo,
175cdf0e10cSrcweir                                        const REFERENCE< XANYCOMPAREFACTORY > &xCompFac );
176cdf0e10cSrcweir     long                CompareImpl( REFERENCE < XRESULTSET > xResultOne,
177cdf0e10cSrcweir                                      REFERENCE < XRESULTSET > xResultTwo,
178cdf0e10cSrcweir                                      long nIndexOne, long nIndexTwo,
179cdf0e10cSrcweir                                      SortInfo* pSortInfo )
180cdf0e10cSrcweir                             throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
181cdf0e10cSrcweir     long                CompareImpl( REFERENCE < XRESULTSET > xResultOne,
182cdf0e10cSrcweir                                      REFERENCE < XRESULTSET > xResultTwo,
183cdf0e10cSrcweir                                      long nIndexOne, long nIndexTwo )
184cdf0e10cSrcweir                             throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
185cdf0e10cSrcweir     void                PropertyChanged( const PROPERTYCHANGEEVENT& rEvt );
186cdf0e10cSrcweir 
187cdf0e10cSrcweir public:
188cdf0e10cSrcweir                         SortedResultSet( REFERENCE< XRESULTSET > aResult );
189cdf0e10cSrcweir                         ~SortedResultSet();
190cdf0e10cSrcweir 
GetS2OList() const191cdf0e10cSrcweir     const SortedEntryList*      GetS2OList() const { return &maS2O; }
GetO2SList() const192cdf0e10cSrcweir     const SimpleList*           GetO2SList() const { return &maO2S; }
GetResultSet() const193cdf0e10cSrcweir     REFERENCE < XRESULTSET >    GetResultSet() const { return mxOriginal; }
GetSortInfo() const194cdf0e10cSrcweir     SortInfo*                   GetSortInfo() const { return mpSortInfo; }
GetCount() const195cdf0e10cSrcweir     long                        GetCount() const { return mnCount; }
196cdf0e10cSrcweir 
197cdf0e10cSrcweir     void                CopyData( SortedResultSet* pSource );
198cdf0e10cSrcweir     void                Initialize( const SEQUENCE < NUMBERED_SORTINGINFO > &xSortInfo,
199cdf0e10cSrcweir                                     const REFERENCE< XANYCOMPAREFACTORY > &xCompFac );
200cdf0e10cSrcweir     void                CheckProperties( long nOldCount, sal_Bool bWasFinal );
201cdf0e10cSrcweir 
202cdf0e10cSrcweir     void                InsertNew( long nPos, long nCount );
203cdf0e10cSrcweir     void                SetChanged( long nPos, long nCount );
204cdf0e10cSrcweir     void                Remove( long nPos, long nCount, EventList *pList );
205cdf0e10cSrcweir     void                Move( long nPos, long nCount, long nOffset );
206cdf0e10cSrcweir 
207cdf0e10cSrcweir     void                ResortModified( EventList* pList );
208cdf0e10cSrcweir     void                ResortNew( EventList* pList );
209cdf0e10cSrcweir 
210cdf0e10cSrcweir     // XInterface
211cdf0e10cSrcweir     XINTERFACE_DECL()
212cdf0e10cSrcweir 
213cdf0e10cSrcweir     // XTypeProvider
214cdf0e10cSrcweir     XTYPEPROVIDER_DECL()
215cdf0e10cSrcweir 
216cdf0e10cSrcweir     // XServiceInfo
217cdf0e10cSrcweir     XSERVICEINFO_NOFACTORY_DECL()
218cdf0e10cSrcweir 
219cdf0e10cSrcweir     // XComponent
220cdf0e10cSrcweir     virtual void SAL_CALL
221cdf0e10cSrcweir     dispose() throw( RUNTIME_EXCEPTION );
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     virtual void SAL_CALL
224cdf0e10cSrcweir     addEventListener( const REFERENCE< XEVENTLISTENER >& Listener )
225cdf0e10cSrcweir         throw( RUNTIME_EXCEPTION );
226cdf0e10cSrcweir 
227cdf0e10cSrcweir     virtual void SAL_CALL
228cdf0e10cSrcweir     removeEventListener( const REFERENCE< XEVENTLISTENER >& Listener )
229cdf0e10cSrcweir         throw( RUNTIME_EXCEPTION );
230cdf0e10cSrcweir 
231cdf0e10cSrcweir     // XContentAccess
232cdf0e10cSrcweir     virtual rtl::OUString SAL_CALL
233cdf0e10cSrcweir     queryContentIdentifierString()
234cdf0e10cSrcweir         throw( RUNTIME_EXCEPTION );
235cdf0e10cSrcweir     virtual REFERENCE<
236cdf0e10cSrcweir                 com::sun::star::ucb::XContentIdentifier > SAL_CALL
237cdf0e10cSrcweir     queryContentIdentifier()
238cdf0e10cSrcweir         throw( RUNTIME_EXCEPTION );
239cdf0e10cSrcweir     virtual REFERENCE<
240cdf0e10cSrcweir                 com::sun::star::ucb::XContent > SAL_CALL
241cdf0e10cSrcweir     queryContent()
242cdf0e10cSrcweir         throw( RUNTIME_EXCEPTION );
243cdf0e10cSrcweir 
244cdf0e10cSrcweir     // XResultSet
245cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
246cdf0e10cSrcweir     next()
247cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
248cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
249cdf0e10cSrcweir     isBeforeFirst()
250cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
251cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
252cdf0e10cSrcweir     isAfterLast()
253cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
254cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
255cdf0e10cSrcweir     isFirst()
256cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
257cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
258cdf0e10cSrcweir     isLast()
259cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
260cdf0e10cSrcweir     virtual void SAL_CALL
261cdf0e10cSrcweir     beforeFirst()
262cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
263cdf0e10cSrcweir     virtual void SAL_CALL
264cdf0e10cSrcweir     afterLast()
265cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
266cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
267cdf0e10cSrcweir     first()
268cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
269cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
270cdf0e10cSrcweir     last()
271cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
272cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL
273cdf0e10cSrcweir     getRow()
274cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
275cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
276cdf0e10cSrcweir     absolute( sal_Int32 row )
277cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
278cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
279cdf0e10cSrcweir     relative( sal_Int32 rows )
280cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
281cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
282cdf0e10cSrcweir     previous()
283cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
284cdf0e10cSrcweir     virtual void SAL_CALL
285cdf0e10cSrcweir     refreshRow()
286cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
287cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
288cdf0e10cSrcweir     rowUpdated()
289cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
290cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
291cdf0e10cSrcweir     rowInserted()
292cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
293cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
294cdf0e10cSrcweir     rowDeleted()
295cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
296cdf0e10cSrcweir     virtual REFERENCE<
297cdf0e10cSrcweir                 com::sun::star::uno::XInterface > SAL_CALL
298cdf0e10cSrcweir     getStatement()
299cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
300cdf0e10cSrcweir 
301cdf0e10cSrcweir     // XRow
302cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
303cdf0e10cSrcweir     wasNull() throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
304cdf0e10cSrcweir 
305cdf0e10cSrcweir     virtual rtl::OUString SAL_CALL
306cdf0e10cSrcweir     getString( sal_Int32 columnIndex )
307cdf0e10cSrcweir     throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
308cdf0e10cSrcweir 
309cdf0e10cSrcweir     virtual sal_Bool SAL_CALL
310cdf0e10cSrcweir     getBoolean( sal_Int32 columnIndex )
311cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
312cdf0e10cSrcweir 
313cdf0e10cSrcweir     virtual sal_Int8 SAL_CALL
314cdf0e10cSrcweir     getByte( sal_Int32 columnIndex )
315cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
316cdf0e10cSrcweir 
317cdf0e10cSrcweir     virtual sal_Int16 SAL_CALL
318cdf0e10cSrcweir     getShort( sal_Int32 columnIndex )
319cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
320cdf0e10cSrcweir 
321cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL
322cdf0e10cSrcweir     getInt( sal_Int32 columnIndex )
323cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
324cdf0e10cSrcweir 
325cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL
326cdf0e10cSrcweir     getLong( sal_Int32 columnIndex )
327cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
328cdf0e10cSrcweir 
329cdf0e10cSrcweir     virtual float SAL_CALL
330cdf0e10cSrcweir     getFloat( sal_Int32 columnIndex )
331cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
332cdf0e10cSrcweir 
333cdf0e10cSrcweir     virtual double SAL_CALL
334cdf0e10cSrcweir     getDouble( sal_Int32 columnIndex )
335cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
336cdf0e10cSrcweir 
337cdf0e10cSrcweir     virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
338cdf0e10cSrcweir     getBytes( sal_Int32 columnIndex )
339cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
340cdf0e10cSrcweir 
341cdf0e10cSrcweir     virtual com::sun::star::util::Date SAL_CALL
342cdf0e10cSrcweir     getDate( sal_Int32 columnIndex )
343cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
344cdf0e10cSrcweir 
345cdf0e10cSrcweir     virtual com::sun::star::util::Time SAL_CALL
346cdf0e10cSrcweir     getTime( sal_Int32 columnIndex )
347cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
348cdf0e10cSrcweir 
349cdf0e10cSrcweir     virtual com::sun::star::util::DateTime SAL_CALL
350cdf0e10cSrcweir     getTimestamp( sal_Int32 columnIndex )
351cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
352cdf0e10cSrcweir 
353cdf0e10cSrcweir     virtual REFERENCE<
354cdf0e10cSrcweir                 com::sun::star::io::XInputStream > SAL_CALL
355cdf0e10cSrcweir     getBinaryStream( sal_Int32 columnIndex )
356cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
357cdf0e10cSrcweir 
358cdf0e10cSrcweir     virtual REFERENCE<
359cdf0e10cSrcweir                 com::sun::star::io::XInputStream > SAL_CALL
360cdf0e10cSrcweir     getCharacterStream( sal_Int32 columnIndex )
361cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
362cdf0e10cSrcweir 
363cdf0e10cSrcweir     virtual com::sun::star::uno::Any SAL_CALL
364cdf0e10cSrcweir     getObject( sal_Int32 columnIndex,
365cdf0e10cSrcweir                const REFERENCE<
366cdf0e10cSrcweir                 com::sun::star::container::XNameAccess >& typeMap )
367cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
368cdf0e10cSrcweir     virtual REFERENCE<
369cdf0e10cSrcweir                 com::sun::star::sdbc::XRef > SAL_CALL
370cdf0e10cSrcweir     getRef( sal_Int32 columnIndex )
371cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
372cdf0e10cSrcweir     virtual REFERENCE<
373cdf0e10cSrcweir                 com::sun::star::sdbc::XBlob > SAL_CALL
374cdf0e10cSrcweir     getBlob( sal_Int32 columnIndex )
375cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
376cdf0e10cSrcweir     virtual REFERENCE<
377cdf0e10cSrcweir                 com::sun::star::sdbc::XClob > SAL_CALL
378cdf0e10cSrcweir     getClob( sal_Int32 columnIndex )
379cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
380cdf0e10cSrcweir     virtual REFERENCE<
381cdf0e10cSrcweir                 com::sun::star::sdbc::XArray > SAL_CALL
382cdf0e10cSrcweir     getArray( sal_Int32 columnIndex )
383cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
384cdf0e10cSrcweir 
385cdf0e10cSrcweir     // XCloseable
386cdf0e10cSrcweir     virtual void SAL_CALL
387cdf0e10cSrcweir     close()
388cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
389cdf0e10cSrcweir 
390cdf0e10cSrcweir     // XResultSetMetaDataSupplier
391cdf0e10cSrcweir     virtual REFERENCE< XRESULTSETMETADATA > SAL_CALL
392cdf0e10cSrcweir     getMetaData()
393cdf0e10cSrcweir         throw( SQLEXCEPTION, RUNTIME_EXCEPTION );
394cdf0e10cSrcweir 
395cdf0e10cSrcweir 
396cdf0e10cSrcweir     // XPropertySet
397cdf0e10cSrcweir     virtual REFERENCE<
398cdf0e10cSrcweir                 com::sun::star::beans::XPropertySetInfo > SAL_CALL
399cdf0e10cSrcweir     getPropertySetInfo()
400cdf0e10cSrcweir         throw( RUNTIME_EXCEPTION );
401cdf0e10cSrcweir 
402cdf0e10cSrcweir     virtual void SAL_CALL
403cdf0e10cSrcweir     setPropertyValue( const rtl::OUString& PropertyName,
404cdf0e10cSrcweir                       const com::sun::star::uno::Any& Value )
405cdf0e10cSrcweir         throw( com::sun::star::beans::UnknownPropertyException,
406cdf0e10cSrcweir                com::sun::star::beans::PropertyVetoException,
407cdf0e10cSrcweir                com::sun::star::lang::IllegalArgumentException,
408cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException,
409cdf0e10cSrcweir                RUNTIME_EXCEPTION );
410cdf0e10cSrcweir 
411cdf0e10cSrcweir     virtual com::sun::star::uno::Any SAL_CALL
412cdf0e10cSrcweir     getPropertyValue( const rtl::OUString& PropertyName )
413cdf0e10cSrcweir         throw( com::sun::star::beans::UnknownPropertyException,
414cdf0e10cSrcweir         com::sun::star::lang::WrappedTargetException,
415cdf0e10cSrcweir         RUNTIME_EXCEPTION );
416cdf0e10cSrcweir 
417cdf0e10cSrcweir     virtual void SAL_CALL
418cdf0e10cSrcweir     addPropertyChangeListener( const rtl::OUString& PropertyName,
419cdf0e10cSrcweir                                const REFERENCE<
420cdf0e10cSrcweir                                     com::sun::star::beans::XPropertyChangeListener >& Listener )
421cdf0e10cSrcweir         throw( com::sun::star::beans::UnknownPropertyException,
422cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException,
423cdf0e10cSrcweir                RUNTIME_EXCEPTION );
424cdf0e10cSrcweir 
425cdf0e10cSrcweir     virtual void SAL_CALL
426cdf0e10cSrcweir     removePropertyChangeListener( const rtl::OUString& PropertyName,
427cdf0e10cSrcweir                                   const REFERENCE<
428cdf0e10cSrcweir                                     com::sun::star::beans::XPropertyChangeListener >& Listener )
429cdf0e10cSrcweir         throw( com::sun::star::beans::UnknownPropertyException,
430cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException,
431cdf0e10cSrcweir                RUNTIME_EXCEPTION );
432cdf0e10cSrcweir 
433cdf0e10cSrcweir     virtual void SAL_CALL
434cdf0e10cSrcweir     addVetoableChangeListener( const rtl::OUString& PropertyName,
435cdf0e10cSrcweir                                const REFERENCE<
436cdf0e10cSrcweir                                     com::sun::star::beans::XVetoableChangeListener >& Listener )
437cdf0e10cSrcweir         throw( com::sun::star::beans::UnknownPropertyException,
438cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException,
439cdf0e10cSrcweir                RUNTIME_EXCEPTION );
440cdf0e10cSrcweir 
441cdf0e10cSrcweir     virtual void SAL_CALL
442cdf0e10cSrcweir     removeVetoableChangeListener( const rtl::OUString& PropertyName,
443cdf0e10cSrcweir                                   const REFERENCE<
444cdf0e10cSrcweir                                     com::sun::star::beans::XVetoableChangeListener >& aListener )
445cdf0e10cSrcweir         throw( com::sun::star::beans::UnknownPropertyException,
446cdf0e10cSrcweir                com::sun::star::lang::WrappedTargetException,
447cdf0e10cSrcweir                RUNTIME_EXCEPTION );
448cdf0e10cSrcweir };
449cdf0e10cSrcweir 
450cdf0e10cSrcweir #endif
451