xref: /AOO41X/main/ucb/source/sorter/sortresult.hxx (revision 6df1ea1f75e32b7bdb9b43f28f6c06e1fbd0c5ce)
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
451cdf0e10cSrcweir 
452