1*9b5730f6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*9b5730f6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*9b5730f6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*9b5730f6SAndrew Rist  * distributed with this work for additional information
6*9b5730f6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*9b5730f6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*9b5730f6SAndrew Rist  * "License"); you may not use this file except in compliance
9*9b5730f6SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*9b5730f6SAndrew Rist  *
11*9b5730f6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*9b5730f6SAndrew Rist  *
13*9b5730f6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*9b5730f6SAndrew Rist  * software distributed under the License is distributed on an
15*9b5730f6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*9b5730f6SAndrew Rist  * KIND, either express or implied.  See the License for the
17*9b5730f6SAndrew Rist  * specific language governing permissions and limitations
18*9b5730f6SAndrew Rist  * under the License.
19*9b5730f6SAndrew Rist  *
20*9b5730f6SAndrew Rist  *************************************************************/
21*9b5730f6SAndrew Rist 
22*9b5730f6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_connectivity.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "connectivity/PColumn.hxx"
28cdf0e10cSrcweir #include "connectivity/dbtools.hxx"
29cdf0e10cSrcweir #include "TConnection.hxx"
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #include <comphelper/types.hxx>
32cdf0e10cSrcweir #include <tools/diagnose_ex.h>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir using namespace ::comphelper;
35cdf0e10cSrcweir using namespace connectivity;
36cdf0e10cSrcweir using namespace dbtools;
37cdf0e10cSrcweir using namespace connectivity::parse;
38cdf0e10cSrcweir using namespace ::com::sun::star::uno;
39cdf0e10cSrcweir using namespace ::com::sun::star::sdbc;
40cdf0e10cSrcweir using namespace ::com::sun::star::beans;
41cdf0e10cSrcweir using namespace ::com::sun::star::container;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir // -------------------------------------------------------------------------
OParseColumn(const Reference<XPropertySet> & _xColumn,sal_Bool _bCase)44cdf0e10cSrcweir OParseColumn::OParseColumn(const Reference<XPropertySet>& _xColumn,sal_Bool		_bCase)
45cdf0e10cSrcweir 	: connectivity::sdbcx::OColumn(	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME)))
46cdf0e10cSrcweir 								,	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME)))
47cdf0e10cSrcweir 								,	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE)))
48cdf0e10cSrcweir                                 ,	getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DESCRIPTION)))
49cdf0e10cSrcweir 								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE)))
50cdf0e10cSrcweir 								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION)))
51cdf0e10cSrcweir 								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)))
52cdf0e10cSrcweir 								,	getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))
53cdf0e10cSrcweir 								,	getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT)))
54cdf0e10cSrcweir 								,	sal_False
55cdf0e10cSrcweir 								,	getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY)))
56cdf0e10cSrcweir 								,	_bCase
57cdf0e10cSrcweir 								)
58cdf0e10cSrcweir 	, m_bFunction(sal_False)
59cdf0e10cSrcweir 	, m_bDbasePrecisionChanged(sal_False)
60cdf0e10cSrcweir 	, m_bAggregateFunction(sal_False)
61cdf0e10cSrcweir     , m_bIsSearchable( sal_True )
62cdf0e10cSrcweir {
63cdf0e10cSrcweir 	construct();
64cdf0e10cSrcweir }
65cdf0e10cSrcweir 
66cdf0e10cSrcweir // -------------------------------------------------------------------------
OParseColumn(const::rtl::OUString & _Name,const::rtl::OUString & _TypeName,const::rtl::OUString & _DefaultValue,const::rtl::OUString & _Description,sal_Int32 _IsNullable,sal_Int32 _Precision,sal_Int32 _Scale,sal_Int32 _Type,sal_Bool _IsAutoIncrement,sal_Bool _IsCurrency,sal_Bool _bCase)67cdf0e10cSrcweir OParseColumn::OParseColumn(	const ::rtl::OUString& _Name,
68cdf0e10cSrcweir 					const ::rtl::OUString& _TypeName,
69cdf0e10cSrcweir 					const ::rtl::OUString& _DefaultValue,
70cdf0e10cSrcweir                     const ::rtl::OUString& _Description,
71cdf0e10cSrcweir 					sal_Int32		_IsNullable,
72cdf0e10cSrcweir 					sal_Int32		_Precision,
73cdf0e10cSrcweir 					sal_Int32		_Scale,
74cdf0e10cSrcweir 					sal_Int32		_Type,
75cdf0e10cSrcweir 					sal_Bool		_IsAutoIncrement,
76cdf0e10cSrcweir 					sal_Bool		_IsCurrency,
77cdf0e10cSrcweir 					sal_Bool		_bCase
78cdf0e10cSrcweir 				) : connectivity::sdbcx::OColumn(_Name,
79cdf0e10cSrcweir 								  _TypeName,
80cdf0e10cSrcweir 								  _DefaultValue,
81cdf0e10cSrcweir                                   _Description,
82cdf0e10cSrcweir 								  _IsNullable,
83cdf0e10cSrcweir 								  _Precision,
84cdf0e10cSrcweir 								  _Scale,
85cdf0e10cSrcweir 								  _Type,
86cdf0e10cSrcweir 								  _IsAutoIncrement,
87cdf0e10cSrcweir 								  sal_False,
88cdf0e10cSrcweir 								  _IsCurrency,
89cdf0e10cSrcweir 								  _bCase)
90cdf0e10cSrcweir 	, m_bFunction(sal_False)
91cdf0e10cSrcweir 	, m_bDbasePrecisionChanged(sal_False)
92cdf0e10cSrcweir 	, m_bAggregateFunction(sal_False)
93cdf0e10cSrcweir     , m_bIsSearchable( sal_True )
94cdf0e10cSrcweir {
95cdf0e10cSrcweir 	construct();
96cdf0e10cSrcweir }
97cdf0e10cSrcweir 
98cdf0e10cSrcweir // -------------------------------------------------------------------------
createColumnsForResultSet(const Reference<XResultSetMetaData> & _rxResMetaData,const Reference<XDatabaseMetaData> & _rxDBMetaData,const Reference<XNameAccess> & i_xQueryColumns)99cdf0e10cSrcweir ::vos::ORef< OSQLColumns > OParseColumn::createColumnsForResultSet( const Reference< XResultSetMetaData >& _rxResMetaData,
100cdf0e10cSrcweir     const Reference< XDatabaseMetaData >& _rxDBMetaData,const Reference< XNameAccess>& i_xQueryColumns )
101cdf0e10cSrcweir {
102cdf0e10cSrcweir     sal_Int32 nColumnCount = _rxResMetaData->getColumnCount();
103cdf0e10cSrcweir     ::vos::ORef< OSQLColumns > aReturn( new OSQLColumns ); aReturn->get().reserve( nColumnCount );
104cdf0e10cSrcweir 
105cdf0e10cSrcweir 	StringMap aColumnMap;
106cdf0e10cSrcweir     for ( sal_Int32 i = 1; i <= nColumnCount; ++i )
107cdf0e10cSrcweir     {
108cdf0e10cSrcweir         OParseColumn* pColumn = createColumnForResultSet( _rxResMetaData, _rxDBMetaData, i,aColumnMap );
109cdf0e10cSrcweir         aReturn->get().push_back( pColumn );
110cdf0e10cSrcweir         if ( i_xQueryColumns.is() && i_xQueryColumns->hasByName(pColumn->getRealName()) )
111cdf0e10cSrcweir         {
112cdf0e10cSrcweir             Reference<XPropertySet> xColumn(i_xQueryColumns->getByName(pColumn->getRealName()),UNO_QUERY_THROW);
113cdf0e10cSrcweir             ::rtl::OUString sLabel;
114cdf0e10cSrcweir             xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_LABEL)) >>= sLabel;
115cdf0e10cSrcweir             if ( sLabel.getLength() )
116cdf0e10cSrcweir                 pColumn->setLabel(sLabel);
117cdf0e10cSrcweir         }
118cdf0e10cSrcweir     }
119cdf0e10cSrcweir 
120cdf0e10cSrcweir     return aReturn;
121cdf0e10cSrcweir }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir // -------------------------------------------------------------------------
createColumnForResultSet(const Reference<XResultSetMetaData> & _rxResMetaData,const Reference<XDatabaseMetaData> & _rxDBMetaData,sal_Int32 _nColumnPos,StringMap & _rColumns)124cdf0e10cSrcweir OParseColumn* OParseColumn::createColumnForResultSet( const Reference< XResultSetMetaData >& _rxResMetaData,
125cdf0e10cSrcweir     const Reference< XDatabaseMetaData >& _rxDBMetaData, sal_Int32 _nColumnPos,StringMap& _rColumns )
126cdf0e10cSrcweir {
127cdf0e10cSrcweir     ::rtl::OUString sLabel = _rxResMetaData->getColumnLabel( _nColumnPos );
128cdf0e10cSrcweir     // retrieve the name of the column
129cdf0e10cSrcweir 	// check for duplicate entries
130cdf0e10cSrcweir 	if(_rColumns.find(sLabel) != _rColumns.end())
131cdf0e10cSrcweir 	{
132cdf0e10cSrcweir 		::rtl::OUString sAlias(sLabel);
133cdf0e10cSrcweir 		sal_Int32 searchIndex=1;
134cdf0e10cSrcweir 		while(_rColumns.find(sAlias) != _rColumns.end())
135cdf0e10cSrcweir 		{
136cdf0e10cSrcweir             (sAlias = sLabel) += ::rtl::OUString::valueOf(searchIndex++);
137cdf0e10cSrcweir 		}
138cdf0e10cSrcweir 		sLabel = sAlias;
139cdf0e10cSrcweir 	}
140cdf0e10cSrcweir     _rColumns.insert(StringMap::value_type(sLabel,0));
141cdf0e10cSrcweir 	OParseColumn* pColumn = new OParseColumn(
142cdf0e10cSrcweir         sLabel,
143cdf0e10cSrcweir 		_rxResMetaData->getColumnTypeName( _nColumnPos ),
144cdf0e10cSrcweir         ::rtl::OUString(),
145cdf0e10cSrcweir         ::rtl::OUString(),
146cdf0e10cSrcweir         _rxResMetaData->isNullable( _nColumnPos ),
147cdf0e10cSrcweir         _rxResMetaData->getPrecision( _nColumnPos ),
148cdf0e10cSrcweir         _rxResMetaData->getScale( _nColumnPos ),
149cdf0e10cSrcweir         _rxResMetaData->getColumnType( _nColumnPos ),
150cdf0e10cSrcweir         _rxResMetaData->isAutoIncrement( _nColumnPos ),
151cdf0e10cSrcweir         _rxResMetaData->isCurrency( _nColumnPos ),
152cdf0e10cSrcweir         _rxDBMetaData->supportsMixedCaseQuotedIdentifiers()
153cdf0e10cSrcweir     );
154cdf0e10cSrcweir     const ::rtl::OUString sTableName = _rxResMetaData->getTableName( _nColumnPos );
155cdf0e10cSrcweir     if ( sTableName.getLength() )
156cdf0e10cSrcweir         pColumn->setTableName(  ::dbtools::composeTableName( _rxDBMetaData,
157cdf0e10cSrcweir             _rxResMetaData->getCatalogName( _nColumnPos ),
158cdf0e10cSrcweir             _rxResMetaData->getSchemaName( _nColumnPos ),
159cdf0e10cSrcweir             sTableName,
160cdf0e10cSrcweir             sal_False,
161cdf0e10cSrcweir             eComplete
162cdf0e10cSrcweir         ) );
163cdf0e10cSrcweir     pColumn->setIsSearchable( _rxResMetaData->isSearchable( _nColumnPos ) );
164cdf0e10cSrcweir     pColumn->setRealName(_rxResMetaData->getColumnName( _nColumnPos ));
165cdf0e10cSrcweir     pColumn->setLabel(sLabel);
166cdf0e10cSrcweir     return pColumn;
167cdf0e10cSrcweir }
168cdf0e10cSrcweir 
169cdf0e10cSrcweir // -------------------------------------------------------------------------
~OParseColumn()170cdf0e10cSrcweir OParseColumn::~OParseColumn()
171cdf0e10cSrcweir {
172cdf0e10cSrcweir }
173cdf0e10cSrcweir // -------------------------------------------------------------------------
construct()174cdf0e10cSrcweir void OParseColumn::construct()
175cdf0e10cSrcweir {
176cdf0e10cSrcweir 	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION),				PROPERTY_ID_FUNCTION,				0,  &m_bFunction,		        ::getCppuType(reinterpret_cast< sal_Bool*>(NULL)));
177cdf0e10cSrcweir 	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_AGGREGATEFUNCTION),		PROPERTY_ID_AGGREGATEFUNCTION,		0,  &m_bAggregateFunction,		::getCppuType(reinterpret_cast< sal_Bool*>(NULL)));
178cdf0e10cSrcweir 	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME),				PROPERTY_ID_TABLENAME,				0,  &m_aTableName,		        ::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
179cdf0e10cSrcweir 	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_REALNAME),				PROPERTY_ID_REALNAME,				0,  &m_aRealName,		        ::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
180cdf0e10cSrcweir 	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DBASEPRECISIONCHANGED),	PROPERTY_ID_DBASEPRECISIONCHANGED,	0,  &m_bDbasePrecisionChanged,	::getCppuType(reinterpret_cast<sal_Bool*>(NULL)));
181cdf0e10cSrcweir     registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISSEARCHABLE),	        PROPERTY_ID_ISSEARCHABLE,			0,  &m_bIsSearchable,           ::getCppuType(reinterpret_cast< sal_Bool*>(NULL)));
182cdf0e10cSrcweir     registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_LABEL),				    PROPERTY_ID_LABEL,				    0,  &m_sLabel,		            ::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
183cdf0e10cSrcweir }
184cdf0e10cSrcweir // -----------------------------------------------------------------------------
createArrayHelper() const185cdf0e10cSrcweir ::cppu::IPropertyArrayHelper* OParseColumn::createArrayHelper() const
186cdf0e10cSrcweir {
187cdf0e10cSrcweir     return doCreateArrayHelper();
188cdf0e10cSrcweir }
189cdf0e10cSrcweir // -----------------------------------------------------------------------------
getInfoHelper()190cdf0e10cSrcweir ::cppu::IPropertyArrayHelper & SAL_CALL OParseColumn::getInfoHelper()
191cdf0e10cSrcweir {
192cdf0e10cSrcweir     OSL_ENSURE( !isNew(), "OParseColumn::getInfoHelper: a *new* ParseColumn?" );
193cdf0e10cSrcweir 	return *OParseColumn_PROP::getArrayHelper();
194cdf0e10cSrcweir }
195cdf0e10cSrcweir 
196cdf0e10cSrcweir // -----------------------------------------------------------------------------
197cdf0e10cSrcweir namespace
198cdf0e10cSrcweir {
lcl_getColumnTableName(const Reference<XPropertySet> & i_parseColumn)199cdf0e10cSrcweir     ::rtl::OUString lcl_getColumnTableName( const Reference< XPropertySet >& i_parseColumn )
200cdf0e10cSrcweir     {
201cdf0e10cSrcweir         ::rtl::OUString sColumnTableName;
202cdf0e10cSrcweir         try
203cdf0e10cSrcweir         {
204cdf0e10cSrcweir             OSL_VERIFY( i_parseColumn->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex( PROPERTY_ID_TABLENAME ) ) >>= sColumnTableName );
205cdf0e10cSrcweir         }
206cdf0e10cSrcweir         catch( const Exception& )
207cdf0e10cSrcweir         {
208cdf0e10cSrcweir         	DBG_UNHANDLED_EXCEPTION();
209cdf0e10cSrcweir         }
210cdf0e10cSrcweir         return sColumnTableName;
211cdf0e10cSrcweir     }
212cdf0e10cSrcweir }
213cdf0e10cSrcweir 
214cdf0e10cSrcweir // -----------------------------------------------------------------------------
OOrderColumn(const Reference<XPropertySet> & _xColumn,const::rtl::OUString & i_rOriginatingTableName,sal_Bool _bCase,sal_Bool _bAscending)215cdf0e10cSrcweir OOrderColumn::OOrderColumn(	const Reference<XPropertySet>& _xColumn, const ::rtl::OUString& i_rOriginatingTableName,
216cdf0e10cSrcweir                             sal_Bool	_bCase, sal_Bool _bAscending )
217cdf0e10cSrcweir 	: connectivity::sdbcx::OColumn(
218cdf0e10cSrcweir         getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))),
219cdf0e10cSrcweir 		getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME))),
220cdf0e10cSrcweir 		getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE))),
221cdf0e10cSrcweir         getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DESCRIPTION))),
222cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE))),
223cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION))),
224cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE))),
225cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE))),
226cdf0e10cSrcweir 		getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT))),
227cdf0e10cSrcweir 		sal_False,
228cdf0e10cSrcweir 		getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY))),
229cdf0e10cSrcweir 		_bCase
230cdf0e10cSrcweir     )
231cdf0e10cSrcweir 	,m_bAscending(_bAscending)
232cdf0e10cSrcweir     ,m_sTableName( i_rOriginatingTableName )
233cdf0e10cSrcweir {
234cdf0e10cSrcweir 	construct();
235cdf0e10cSrcweir }
236cdf0e10cSrcweir 
237cdf0e10cSrcweir // -----------------------------------------------------------------------------
OOrderColumn(const Reference<XPropertySet> & _xColumn,sal_Bool _bCase,sal_Bool _bAscending)238cdf0e10cSrcweir OOrderColumn::OOrderColumn(	const Reference<XPropertySet>& _xColumn, sal_Bool _bCase, sal_Bool _bAscending )
239cdf0e10cSrcweir 	: connectivity::sdbcx::OColumn(
240cdf0e10cSrcweir         getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))),
241cdf0e10cSrcweir 		getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME))),
242cdf0e10cSrcweir 		getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE))),
243cdf0e10cSrcweir         getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DESCRIPTION))),
244cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE))),
245cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION))),
246cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE))),
247cdf0e10cSrcweir 		getINT32(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE))),
248cdf0e10cSrcweir 		getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT))),
249cdf0e10cSrcweir 		sal_False,
250cdf0e10cSrcweir 		getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY))),
251cdf0e10cSrcweir 		_bCase
252cdf0e10cSrcweir     )
253cdf0e10cSrcweir 	,m_bAscending(_bAscending)
254cdf0e10cSrcweir     ,m_sTableName( lcl_getColumnTableName( _xColumn ) )
255cdf0e10cSrcweir {
256cdf0e10cSrcweir 	construct();
257cdf0e10cSrcweir }
258cdf0e10cSrcweir 
259cdf0e10cSrcweir // -------------------------------------------------------------------------
~OOrderColumn()260cdf0e10cSrcweir OOrderColumn::~OOrderColumn()
261cdf0e10cSrcweir {
262cdf0e10cSrcweir }
263cdf0e10cSrcweir 
264cdf0e10cSrcweir // -------------------------------------------------------------------------
construct()265cdf0e10cSrcweir void OOrderColumn::construct()
266cdf0e10cSrcweir {
267cdf0e10cSrcweir 	registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISASCENDING), PROPERTY_ID_ISASCENDING,
268cdf0e10cSrcweir         PropertyAttribute::READONLY,  const_cast< sal_Bool* >( &m_bAscending ),    ::getCppuType( reinterpret_cast< sal_Bool* >( NULL ) ) );
269cdf0e10cSrcweir     registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME),   PROPERTY_ID_TABLENAME,
270cdf0e10cSrcweir         PropertyAttribute::READONLY,  const_cast< ::rtl::OUString* >( &m_sTableName ),  ::getCppuType(reinterpret_cast< ::rtl::OUString*>(NULL)));
271cdf0e10cSrcweir }
272cdf0e10cSrcweir // -----------------------------------------------------------------------------
createArrayHelper() const273cdf0e10cSrcweir ::cppu::IPropertyArrayHelper* OOrderColumn::createArrayHelper() const
274cdf0e10cSrcweir {
275cdf0e10cSrcweir     return doCreateArrayHelper();
276cdf0e10cSrcweir }
277cdf0e10cSrcweir // -----------------------------------------------------------------------------
getInfoHelper()278cdf0e10cSrcweir ::cppu::IPropertyArrayHelper & SAL_CALL OOrderColumn::getInfoHelper()
279cdf0e10cSrcweir {
280cdf0e10cSrcweir     OSL_ENSURE( !isNew(), "OOrderColumn::getInfoHelper: a *new* OrderColumn?" );
281cdf0e10cSrcweir 	return *OOrderColumn_PROP::getArrayHelper();
282cdf0e10cSrcweir }
283cdf0e10cSrcweir // -----------------------------------------------------------------------------
getSupportedServiceNames()284cdf0e10cSrcweir ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL OOrderColumn::getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException)
285cdf0e10cSrcweir {
286cdf0e10cSrcweir 	::com::sun::star::uno::Sequence< ::rtl::OUString > aSupported(1);
287cdf0e10cSrcweir 	aSupported[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdb.OrderColumn");
288cdf0e10cSrcweir 
289cdf0e10cSrcweir 	return aSupported;
290cdf0e10cSrcweir }
291cdf0e10cSrcweir // -----------------------------------------------------------------------------
292