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
10*6df1ea1fSAndrew Rist  *
11*6df1ea1fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*6df1ea1fSAndrew Rist  *
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.
19*6df1ea1fSAndrew Rist  *
20*6df1ea1fSAndrew Rist  *************************************************************/
21*6df1ea1fSAndrew Rist 
22*6df1ea1fSAndrew Rist 
23cdf0e10cSrcweir #ifndef _FTP_FTPRESULTSETBASE_HXX_
24cdf0e10cSrcweir #define _FTP_FTPRESULTSETBASE_HXX_
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <vector>
27cdf0e10cSrcweir #include <cppuhelper/weak.hxx>
28cdf0e10cSrcweir #include <cppuhelper/interfacecontainer.hxx>
29cdf0e10cSrcweir #include <com/sun/star/lang/XComponent.hpp>
30cdf0e10cSrcweir #include <com/sun/star/ucb/XContentAccess.hpp>
31cdf0e10cSrcweir #include <com/sun/star/sdbc/XCloseable.hpp>
32cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
33cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSet.hpp>
34cdf0e10cSrcweir #include <com/sun/star/sdbc/XRow.hpp>
35cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
36cdf0e10cSrcweir #include <com/sun/star/ucb/NumberedSortingInfo.hpp>
37cdf0e10cSrcweir #include <com/sun/star/ucb/XContentProvider.hpp>
38cdf0e10cSrcweir #include <com/sun/star/ucb/XContentIdentifier.hpp>
39cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
40cdf0e10cSrcweir #include <com/sun/star/beans/Property.hpp>
41cdf0e10cSrcweir 
42cdf0e10cSrcweir 
43cdf0e10cSrcweir namespace ftp {
44cdf0e10cSrcweir 
45cdf0e10cSrcweir 	class ResultSetBase
46cdf0e10cSrcweir 		: public cppu::OWeakObject,
47cdf0e10cSrcweir 		  public com::sun::star::lang::XComponent,
48cdf0e10cSrcweir 		  public com::sun::star::sdbc::XRow,
49cdf0e10cSrcweir 		  public com::sun::star::sdbc::XResultSet,
50cdf0e10cSrcweir 		  public com::sun::star::sdbc::XCloseable,
51cdf0e10cSrcweir 		  public com::sun::star::sdbc::XResultSetMetaDataSupplier,
52cdf0e10cSrcweir 		  public com::sun::star::beans::XPropertySet,
53cdf0e10cSrcweir 		  public com::sun::star::ucb::XContentAccess
54cdf0e10cSrcweir 	{
55cdf0e10cSrcweir 	public:
56cdf0e10cSrcweir 
57cdf0e10cSrcweir 		ResultSetBase(const com::sun::star::uno::Reference<
58cdf0e10cSrcweir 					  com::sun::star::lang::XMultiServiceFactory >&  xMSF,
59cdf0e10cSrcweir 					  const com::sun::star::uno::Reference<
60cdf0e10cSrcweir 					  com::sun::star::ucb::XContentProvider >&  xProvider,
61cdf0e10cSrcweir 					  sal_Int32 nOpenMode,
62cdf0e10cSrcweir 					  const com::sun::star::uno::Sequence<
63cdf0e10cSrcweir 					  com::sun::star::beans::Property >& seq,
64cdf0e10cSrcweir 					  const com::sun::star::uno::Sequence<
65cdf0e10cSrcweir 					  com::sun::star::ucb::NumberedSortingInfo >& seqSort);
66cdf0e10cSrcweir 
67cdf0e10cSrcweir 		virtual ~ResultSetBase();
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 		// XInterface
70cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
71cdf0e10cSrcweir 		queryInterface(
72cdf0e10cSrcweir 			const com::sun::star::uno::Type& aType )
73cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException);
74cdf0e10cSrcweir 
75cdf0e10cSrcweir 		virtual void SAL_CALL
76cdf0e10cSrcweir 		acquire(
77cdf0e10cSrcweir 			void )
78cdf0e10cSrcweir 			throw();
79cdf0e10cSrcweir 
80cdf0e10cSrcweir 		virtual void SAL_CALL
81cdf0e10cSrcweir 		release(
82cdf0e10cSrcweir 			void )
83cdf0e10cSrcweir 			throw();
84cdf0e10cSrcweir 
85cdf0e10cSrcweir 		// XComponent
86cdf0e10cSrcweir 		virtual void SAL_CALL
87cdf0e10cSrcweir 		dispose(
88cdf0e10cSrcweir 			void )
89cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 		virtual void SAL_CALL
92cdf0e10cSrcweir 		addEventListener(
93cdf0e10cSrcweir 			const com::sun::star::uno::Reference<
94cdf0e10cSrcweir 			com::sun::star::lang::XEventListener >& xListener )
95cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
96cdf0e10cSrcweir 
97cdf0e10cSrcweir 		virtual void SAL_CALL
98cdf0e10cSrcweir 		removeEventListener( const com::sun::star::uno::Reference<
99cdf0e10cSrcweir 							 com::sun::star::lang::XEventListener >& aListener )
100cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
101cdf0e10cSrcweir 
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 		// XRow
104cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
wasNull(void)105cdf0e10cSrcweir 		wasNull(
106cdf0e10cSrcweir 			void )
107cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
108cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException )
109cdf0e10cSrcweir 		{
110cdf0e10cSrcweir 			if( 0<= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
111cdf0e10cSrcweir 				m_nWasNull = m_aItems[m_nRow]->wasNull();
112cdf0e10cSrcweir 			else
113cdf0e10cSrcweir 				m_nWasNull = true;
114cdf0e10cSrcweir 			return m_nWasNull;
115cdf0e10cSrcweir 		}
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 		virtual rtl::OUString SAL_CALL
getString(sal_Int32 columnIndex)118cdf0e10cSrcweir 		getString(
119cdf0e10cSrcweir 			sal_Int32 columnIndex )
120cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
121cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
122cdf0e10cSrcweir 		{
123cdf0e10cSrcweir 			rtl::OUString ret;
124cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
125cdf0e10cSrcweir 				ret = m_aItems[m_nRow]->getString( columnIndex );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir 			return ret;
128cdf0e10cSrcweir 		}
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
getBoolean(sal_Int32 columnIndex)131cdf0e10cSrcweir 		getBoolean(
132cdf0e10cSrcweir 			sal_Int32 columnIndex )
133cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
134cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
135cdf0e10cSrcweir 		{
136cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
137cdf0e10cSrcweir 				return m_aItems[m_nRow]->getBoolean( columnIndex );
138cdf0e10cSrcweir 			else
139cdf0e10cSrcweir 				return false;
140cdf0e10cSrcweir 		}
141cdf0e10cSrcweir 
142cdf0e10cSrcweir 		virtual sal_Int8 SAL_CALL
getByte(sal_Int32 columnIndex)143cdf0e10cSrcweir 		getByte(
144cdf0e10cSrcweir 			sal_Int32 columnIndex )
145cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
146cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
147cdf0e10cSrcweir 		{
148cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
149cdf0e10cSrcweir 				return m_aItems[m_nRow]->getByte( columnIndex );
150cdf0e10cSrcweir 			else
151cdf0e10cSrcweir 				return sal_Int8( 0 );
152cdf0e10cSrcweir 		}
153cdf0e10cSrcweir 
154cdf0e10cSrcweir 		virtual sal_Int16 SAL_CALL
getShort(sal_Int32 columnIndex)155cdf0e10cSrcweir 		getShort(
156cdf0e10cSrcweir 			sal_Int32 columnIndex )
157cdf0e10cSrcweir 			throw(
158cdf0e10cSrcweir 				com::sun::star::sdbc::SQLException,
159cdf0e10cSrcweir 				com::sun::star::uno::RuntimeException)
160cdf0e10cSrcweir 		{
161cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
162cdf0e10cSrcweir 				return m_aItems[m_nRow]->getShort( columnIndex );
163cdf0e10cSrcweir 			else
164cdf0e10cSrcweir 				return sal_Int16( 0 );
165cdf0e10cSrcweir 		}
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL
getInt(sal_Int32 columnIndex)168cdf0e10cSrcweir 		getInt(
169cdf0e10cSrcweir 			sal_Int32 columnIndex )
170cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
171cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException )
172cdf0e10cSrcweir 		{
173cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
174cdf0e10cSrcweir 				return m_aItems[m_nRow]->getInt( columnIndex );
175cdf0e10cSrcweir 			else
176cdf0e10cSrcweir 				return sal_Int32( 0 );
177cdf0e10cSrcweir 		}
178cdf0e10cSrcweir 
179cdf0e10cSrcweir 		virtual sal_Int64 SAL_CALL
getLong(sal_Int32 columnIndex)180cdf0e10cSrcweir 		getLong(
181cdf0e10cSrcweir 			sal_Int32 columnIndex )
182cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
183cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
184cdf0e10cSrcweir 		{
185cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
186cdf0e10cSrcweir 				return m_aItems[m_nRow]->getLong( columnIndex );
187cdf0e10cSrcweir 			else
188cdf0e10cSrcweir 				return sal_Int64( 0 );
189cdf0e10cSrcweir 		}
190cdf0e10cSrcweir 
191cdf0e10cSrcweir 		virtual float SAL_CALL
getFloat(sal_Int32 columnIndex)192cdf0e10cSrcweir 		getFloat(
193cdf0e10cSrcweir 			sal_Int32 columnIndex )
194cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
195cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException )
196cdf0e10cSrcweir 		{
197cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
198cdf0e10cSrcweir 				return m_aItems[m_nRow]->getFloat( columnIndex );
199cdf0e10cSrcweir 			else
200cdf0e10cSrcweir 				return float( 0 );
201cdf0e10cSrcweir 		}
202cdf0e10cSrcweir 
203cdf0e10cSrcweir 		virtual double SAL_CALL
getDouble(sal_Int32 columnIndex)204cdf0e10cSrcweir 		getDouble(
205cdf0e10cSrcweir 			sal_Int32 columnIndex )
206cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
207cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException )
208cdf0e10cSrcweir 		{
209cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
210cdf0e10cSrcweir 				return m_aItems[m_nRow]->getDouble( columnIndex );
211cdf0e10cSrcweir 			else
212cdf0e10cSrcweir 				return double( 0 );
213cdf0e10cSrcweir 		}
214cdf0e10cSrcweir 
215cdf0e10cSrcweir 		virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
getBytes(sal_Int32 columnIndex)216cdf0e10cSrcweir 		getBytes(
217cdf0e10cSrcweir 			sal_Int32 columnIndex )
218cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
219cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException )
220cdf0e10cSrcweir 		{
221cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
222cdf0e10cSrcweir 				return m_aItems[m_nRow]->getBytes( columnIndex );
223cdf0e10cSrcweir 			else
224cdf0e10cSrcweir 				return com::sun::star::uno::Sequence< sal_Int8 >();
225cdf0e10cSrcweir 		}
226cdf0e10cSrcweir 
227cdf0e10cSrcweir 		virtual com::sun::star::util::Date SAL_CALL
getDate(sal_Int32 columnIndex)228cdf0e10cSrcweir 		getDate(
229cdf0e10cSrcweir 			sal_Int32 columnIndex )
230cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
231cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
232cdf0e10cSrcweir 		{
233cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
234cdf0e10cSrcweir 				return m_aItems[m_nRow]->getDate( columnIndex );
235cdf0e10cSrcweir 			else
236cdf0e10cSrcweir 				return com::sun::star::util::Date();
237cdf0e10cSrcweir 		}
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 		virtual com::sun::star::util::Time SAL_CALL
getTime(sal_Int32 columnIndex)240cdf0e10cSrcweir 		getTime(
241cdf0e10cSrcweir 			sal_Int32 columnIndex )
242cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
243cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
244cdf0e10cSrcweir 		{
245cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
246cdf0e10cSrcweir 				return m_aItems[m_nRow]->getTime( columnIndex );
247cdf0e10cSrcweir 			else
248cdf0e10cSrcweir 				return com::sun::star::util::Time();
249cdf0e10cSrcweir 		}
250cdf0e10cSrcweir 
251cdf0e10cSrcweir 		virtual com::sun::star::util::DateTime SAL_CALL
getTimestamp(sal_Int32 columnIndex)252cdf0e10cSrcweir 		getTimestamp(
253cdf0e10cSrcweir 			sal_Int32 columnIndex )
254cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
255cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
256cdf0e10cSrcweir 		{
257cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
258cdf0e10cSrcweir 				return m_aItems[m_nRow]->getTimestamp( columnIndex );
259cdf0e10cSrcweir 			else
260cdf0e10cSrcweir 				return com::sun::star::util::DateTime();
261cdf0e10cSrcweir 		}
262cdf0e10cSrcweir 
263cdf0e10cSrcweir 
264cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
265cdf0e10cSrcweir 		com::sun::star::io::XInputStream > SAL_CALL
getBinaryStream(sal_Int32 columnIndex)266cdf0e10cSrcweir 		getBinaryStream(
267cdf0e10cSrcweir 			sal_Int32 columnIndex )
268cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
269cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
270cdf0e10cSrcweir 		{
271cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
272cdf0e10cSrcweir 				return m_aItems[m_nRow]->getBinaryStream( columnIndex );
273cdf0e10cSrcweir 			else
274cdf0e10cSrcweir 				return com::sun::star::uno::Reference<
275cdf0e10cSrcweir 					com::sun::star::io::XInputStream >();
276cdf0e10cSrcweir 		}
277cdf0e10cSrcweir 
278cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
279cdf0e10cSrcweir 		com::sun::star::io::XInputStream > SAL_CALL
getCharacterStream(sal_Int32 columnIndex)280cdf0e10cSrcweir 		getCharacterStream(
281cdf0e10cSrcweir 			sal_Int32 columnIndex )
282cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
283cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
284cdf0e10cSrcweir 		{
285cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
286cdf0e10cSrcweir 				return m_aItems[m_nRow]->getCharacterStream( columnIndex );
287cdf0e10cSrcweir 			else
288cdf0e10cSrcweir 				return com::sun::star::uno::Reference<
289cdf0e10cSrcweir 					com::sun::star::io::XInputStream >();
290cdf0e10cSrcweir 		}
291cdf0e10cSrcweir 
292cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
getObject(sal_Int32 columnIndex,const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess> & typeMap)293cdf0e10cSrcweir 		getObject(
294cdf0e10cSrcweir 			sal_Int32 columnIndex,
295cdf0e10cSrcweir 			const com::sun::star::uno::Reference<
296cdf0e10cSrcweir 			com::sun::star::container::XNameAccess >& typeMap )
297cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
298cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
299cdf0e10cSrcweir 		{
300cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
301cdf0e10cSrcweir 				return m_aItems[m_nRow]->getObject( columnIndex,typeMap );
302cdf0e10cSrcweir 			else
303cdf0e10cSrcweir 				return com::sun::star::uno::Any();
304cdf0e10cSrcweir 		}
305cdf0e10cSrcweir 
306cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
307cdf0e10cSrcweir 		com::sun::star::sdbc::XRef > SAL_CALL
getRef(sal_Int32 columnIndex)308cdf0e10cSrcweir 		getRef(
309cdf0e10cSrcweir 			sal_Int32 columnIndex )
310cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
311cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
312cdf0e10cSrcweir 		{
313cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
314cdf0e10cSrcweir 				return m_aItems[m_nRow]->getRef( columnIndex );
315cdf0e10cSrcweir 			else
316cdf0e10cSrcweir 				return com::sun::star::uno::Reference< com::sun::star::sdbc::XRef >();
317cdf0e10cSrcweir 		}
318cdf0e10cSrcweir 
319cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
320cdf0e10cSrcweir 		com::sun::star::sdbc::XBlob > SAL_CALL
getBlob(sal_Int32 columnIndex)321cdf0e10cSrcweir 		getBlob(
322cdf0e10cSrcweir 			sal_Int32 columnIndex )
323cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
324cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
325cdf0e10cSrcweir 		{
326cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
327cdf0e10cSrcweir 				return m_aItems[m_nRow]->getBlob( columnIndex );
328cdf0e10cSrcweir 			else
329cdf0e10cSrcweir 				return com::sun::star::uno::Reference< com::sun::star::sdbc::XBlob >();
330cdf0e10cSrcweir 		}
331cdf0e10cSrcweir 
332cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
333cdf0e10cSrcweir 		com::sun::star::sdbc::XClob > SAL_CALL
getClob(sal_Int32 columnIndex)334cdf0e10cSrcweir 		getClob(
335cdf0e10cSrcweir 			sal_Int32 columnIndex )
336cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
337cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
338cdf0e10cSrcweir 		{
339cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
340cdf0e10cSrcweir 				return m_aItems[m_nRow]->getClob( columnIndex );
341cdf0e10cSrcweir 			else
342cdf0e10cSrcweir 				return com::sun::star::uno::Reference<
343cdf0e10cSrcweir 					com::sun::star::sdbc::XClob >();
344cdf0e10cSrcweir 		}
345cdf0e10cSrcweir 
346cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
347cdf0e10cSrcweir 		com::sun::star::sdbc::XArray > SAL_CALL
getArray(sal_Int32 columnIndex)348cdf0e10cSrcweir 		getArray(
349cdf0e10cSrcweir 			sal_Int32 columnIndex )
350cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
351cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException)
352cdf0e10cSrcweir 		{
353cdf0e10cSrcweir 			if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
354cdf0e10cSrcweir 				return m_aItems[m_nRow]->getArray( columnIndex );
355cdf0e10cSrcweir 			else
356cdf0e10cSrcweir 				return com::sun::star::uno::Reference<
357cdf0e10cSrcweir 					com::sun::star::sdbc::XArray >();
358cdf0e10cSrcweir 		}
359cdf0e10cSrcweir 
360cdf0e10cSrcweir 
361cdf0e10cSrcweir 		// XResultSet
362cdf0e10cSrcweir 
363cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
364cdf0e10cSrcweir 		next(
365cdf0e10cSrcweir 			void )
366cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
367cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
368cdf0e10cSrcweir 
369cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
370cdf0e10cSrcweir 		isBeforeFirst(
371cdf0e10cSrcweir 			void )
372cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
373cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
374cdf0e10cSrcweir 
375cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
376cdf0e10cSrcweir 		isAfterLast(
377cdf0e10cSrcweir 			void )
378cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
379cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
380cdf0e10cSrcweir 
381cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
382cdf0e10cSrcweir 		isFirst(
383cdf0e10cSrcweir 			void  )
384cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
385cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
386cdf0e10cSrcweir 
387cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
388cdf0e10cSrcweir 		isLast(
389cdf0e10cSrcweir 			void  )
390cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
391cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
392cdf0e10cSrcweir 
393cdf0e10cSrcweir 		virtual void SAL_CALL
394cdf0e10cSrcweir 		beforeFirst(
395cdf0e10cSrcweir 			void  )
396cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
397cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
398cdf0e10cSrcweir 
399cdf0e10cSrcweir 		virtual void SAL_CALL
400cdf0e10cSrcweir 		afterLast(
401cdf0e10cSrcweir 			void  )
402cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
403cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
404cdf0e10cSrcweir 
405cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
406cdf0e10cSrcweir 		first(
407cdf0e10cSrcweir 			void  )
408cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
409cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
410cdf0e10cSrcweir 
411cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
412cdf0e10cSrcweir 		last(
413cdf0e10cSrcweir 			void  )
414cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
415cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
416cdf0e10cSrcweir 
417cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL
418cdf0e10cSrcweir 		getRow(
419cdf0e10cSrcweir 			void  )
420cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
421cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
422cdf0e10cSrcweir 
423cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
424cdf0e10cSrcweir 		absolute(
425cdf0e10cSrcweir 			sal_Int32 row )
426cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
427cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
428cdf0e10cSrcweir 
429cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
430cdf0e10cSrcweir 		relative(
431cdf0e10cSrcweir 			sal_Int32 rows )
432cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
433cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
434cdf0e10cSrcweir 
435cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
436cdf0e10cSrcweir 		previous(
437cdf0e10cSrcweir 			void  )
438cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
439cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
440cdf0e10cSrcweir 
441cdf0e10cSrcweir 		virtual void SAL_CALL
442cdf0e10cSrcweir 		refreshRow(
443cdf0e10cSrcweir 			void  )
444cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
445cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
446cdf0e10cSrcweir 
447cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
448cdf0e10cSrcweir 		rowUpdated(
449cdf0e10cSrcweir 			void )
450cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
451cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
452cdf0e10cSrcweir 
453cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
454cdf0e10cSrcweir 		rowInserted(
455cdf0e10cSrcweir 			void  )
456cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
457cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
458cdf0e10cSrcweir 
459cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL
460cdf0e10cSrcweir 		rowDeleted(
461cdf0e10cSrcweir 			void  )
462cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
463cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
464cdf0e10cSrcweir 
465cdf0e10cSrcweir 
466cdf0e10cSrcweir 		virtual  com::sun::star::uno::Reference<
467cdf0e10cSrcweir 		com::sun::star::uno::XInterface > SAL_CALL
468cdf0e10cSrcweir 		getStatement(
469cdf0e10cSrcweir 			void  )
470cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
471cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
472cdf0e10cSrcweir 
473cdf0e10cSrcweir 		// XCloseable
474cdf0e10cSrcweir 
475cdf0e10cSrcweir 		virtual void SAL_CALL
476cdf0e10cSrcweir 		close(
477cdf0e10cSrcweir 			void )
478cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
479cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
480cdf0e10cSrcweir 
481cdf0e10cSrcweir 		// XContentAccess
482cdf0e10cSrcweir 
483cdf0e10cSrcweir 		virtual rtl::OUString SAL_CALL
484cdf0e10cSrcweir 		queryContentIdentifierString(
485cdf0e10cSrcweir 			void )
486cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
487cdf0e10cSrcweir 
488cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
489cdf0e10cSrcweir 		com::sun::star::ucb::XContentIdentifier > SAL_CALL
490cdf0e10cSrcweir 		queryContentIdentifier(
491cdf0e10cSrcweir 			void )
492cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
493cdf0e10cSrcweir 
494cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
495cdf0e10cSrcweir 		com::sun::star::ucb::XContent > SAL_CALL
496cdf0e10cSrcweir 		queryContent(
497cdf0e10cSrcweir 			void )
498cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException );
499cdf0e10cSrcweir 
500cdf0e10cSrcweir 		// XResultSetMetaDataSupplier
501cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
502cdf0e10cSrcweir 		com::sun::star::sdbc::XResultSetMetaData > SAL_CALL
503cdf0e10cSrcweir 		getMetaData(
504cdf0e10cSrcweir 			void )
505cdf0e10cSrcweir 			throw( com::sun::star::sdbc::SQLException,
506cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
507cdf0e10cSrcweir 
508cdf0e10cSrcweir 
509cdf0e10cSrcweir 		// XPropertySet
510cdf0e10cSrcweir 		virtual com::sun::star::uno::Reference<
511cdf0e10cSrcweir 		com::sun::star::beans::XPropertySetInfo > SAL_CALL
512cdf0e10cSrcweir 		getPropertySetInfo()
513cdf0e10cSrcweir 			throw( com::sun::star::uno::RuntimeException);
514cdf0e10cSrcweir 
515cdf0e10cSrcweir 		virtual void SAL_CALL setPropertyValue(
516cdf0e10cSrcweir 			const rtl::OUString& aPropertyName,
517cdf0e10cSrcweir 			const com::sun::star::uno::Any& aValue )
518cdf0e10cSrcweir 			throw( com::sun::star::beans::UnknownPropertyException,
519cdf0e10cSrcweir 				   com::sun::star::beans::PropertyVetoException,
520cdf0e10cSrcweir 				   com::sun::star::lang::IllegalArgumentException,
521cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
522cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
523cdf0e10cSrcweir 
524cdf0e10cSrcweir 		virtual com::sun::star::uno::Any SAL_CALL
525cdf0e10cSrcweir 		getPropertyValue(
526cdf0e10cSrcweir 			const rtl::OUString& PropertyName )
527cdf0e10cSrcweir 			throw( com::sun::star::beans::UnknownPropertyException,
528cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
529cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
530cdf0e10cSrcweir 
531cdf0e10cSrcweir 		virtual void SAL_CALL
532cdf0e10cSrcweir 		addPropertyChangeListener(
533cdf0e10cSrcweir 			const rtl::OUString& aPropertyName,
534cdf0e10cSrcweir 			const com::sun::star::uno::Reference<
535cdf0e10cSrcweir 			com::sun::star::beans::XPropertyChangeListener >& xListener )
536cdf0e10cSrcweir 			throw( com::sun::star::beans::UnknownPropertyException,
537cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
538cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
539cdf0e10cSrcweir 
540cdf0e10cSrcweir 		virtual void SAL_CALL
541cdf0e10cSrcweir 		removePropertyChangeListener(
542cdf0e10cSrcweir 			const rtl::OUString& aPropertyName,
543cdf0e10cSrcweir 			const com::sun::star::uno::Reference<
544cdf0e10cSrcweir 			com::sun::star::beans::XPropertyChangeListener >& aListener )
545cdf0e10cSrcweir 			throw( com::sun::star::beans::UnknownPropertyException,
546cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
547cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
548cdf0e10cSrcweir 
549cdf0e10cSrcweir 		virtual void SAL_CALL
550cdf0e10cSrcweir 		addVetoableChangeListener(
551cdf0e10cSrcweir 			const rtl::OUString& PropertyName,
552cdf0e10cSrcweir 			const com::sun::star::uno::Reference<
553cdf0e10cSrcweir 			com::sun::star::beans::XVetoableChangeListener >& aListener )
554cdf0e10cSrcweir 			throw( com::sun::star::beans::UnknownPropertyException,
555cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
556cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
557cdf0e10cSrcweir 
558cdf0e10cSrcweir 		virtual void SAL_CALL removeVetoableChangeListener(
559cdf0e10cSrcweir 			const rtl::OUString& PropertyName,
560cdf0e10cSrcweir 			const com::sun::star::uno::Reference<
561cdf0e10cSrcweir 			com::sun::star::beans::XVetoableChangeListener >& aListener )
562cdf0e10cSrcweir 			throw( com::sun::star::beans::UnknownPropertyException,
563cdf0e10cSrcweir 				   com::sun::star::lang::WrappedTargetException,
564cdf0e10cSrcweir 				   com::sun::star::uno::RuntimeException);
565cdf0e10cSrcweir 
566cdf0e10cSrcweir 	protected:
567cdf0e10cSrcweir 
568cdf0e10cSrcweir 		com::sun::star::uno::Reference<
569cdf0e10cSrcweir 		com::sun::star::lang::XMultiServiceFactory >  m_xMSF;
570cdf0e10cSrcweir 		com::sun::star::uno::Reference<
571cdf0e10cSrcweir 		com::sun::star::ucb::XContentProvider >  m_xProvider;
572cdf0e10cSrcweir 		sal_Int32                           m_nRow;
573cdf0e10cSrcweir 		sal_Bool                            m_nWasNull;
574cdf0e10cSrcweir 		sal_Int32                           m_nOpenMode;
575cdf0e10cSrcweir 		sal_Bool                            m_bRowCountFinal;
576cdf0e10cSrcweir 
577cdf0e10cSrcweir 		typedef std::vector< com::sun::star::uno::Reference<
578cdf0e10cSrcweir 		com::sun::star::ucb::XContentIdentifier > > IdentSet;
579cdf0e10cSrcweir 		typedef std::vector< com::sun::star::uno::Reference<
580cdf0e10cSrcweir 		com::sun::star::sdbc::XRow > >              ItemSet;
581cdf0e10cSrcweir 		typedef std::vector< rtl::OUString >
582cdf0e10cSrcweir 		PathSet;
583cdf0e10cSrcweir 
584cdf0e10cSrcweir 		IdentSet                            m_aIdents;
585cdf0e10cSrcweir 		ItemSet                             m_aItems;
586cdf0e10cSrcweir 		PathSet                             m_aPath;
587cdf0e10cSrcweir 
588cdf0e10cSrcweir 		com::sun::star::uno::Sequence<
589cdf0e10cSrcweir 		com::sun::star::beans::Property >           m_sProperty;
590cdf0e10cSrcweir 		com::sun::star::uno::Sequence<
591cdf0e10cSrcweir 		com::sun::star::ucb::NumberedSortingInfo >  m_sSortingInfo;
592cdf0e10cSrcweir 
593cdf0e10cSrcweir 		osl::Mutex                          m_aMutex;
594cdf0e10cSrcweir 		cppu::OInterfaceContainerHelper*    m_pDisposeEventListeners;
595cdf0e10cSrcweir 
596cdf0e10cSrcweir 		cppu::OInterfaceContainerHelper*    m_pRowCountListeners;
597cdf0e10cSrcweir 		cppu::OInterfaceContainerHelper*    m_pIsFinalListeners;
598cdf0e10cSrcweir 	};
599cdf0e10cSrcweir 
600cdf0e10cSrcweir 
601cdf0e10cSrcweir } // end namespace fileaccess
602cdf0e10cSrcweir 
603cdf0e10cSrcweir 
604cdf0e10cSrcweir #endif
605