2007-11-01 14:22:02 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* $RCSfile: dsmeta.hxx,v $
|
|
|
|
* $Revision: 1.5 $
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
2008-04-10 14:35:30 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
2007-11-01 14:22:02 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
#ifndef DBACCESS_DSMETA_HXX
|
|
|
|
#define DBACCESS_DSMETA_HXX
|
|
|
|
|
|
|
|
#include "dsntypes.hxx"
|
|
|
|
|
|
|
|
/** === begin UNO includes === **/
|
|
|
|
/** === end UNO includes === **/
|
|
|
|
|
|
|
|
#include <boost/shared_ptr.hpp>
|
|
|
|
|
|
|
|
//........................................................................
|
|
|
|
namespace dbaui
|
|
|
|
{
|
|
|
|
//........................................................................
|
|
|
|
|
|
|
|
//====================================================================
|
|
|
|
//= AutheticationMode
|
|
|
|
//====================================================================
|
|
|
|
enum AuthenticationMode
|
|
|
|
{
|
|
|
|
AuthNone,
|
|
|
|
AuthUserPwd,
|
|
|
|
AuthPwd
|
|
|
|
};
|
|
|
|
|
|
|
|
//====================================================================
|
|
|
|
//= DataSourceMetaData
|
|
|
|
//====================================================================
|
|
|
|
struct AdvancedSettingsSupport;
|
|
|
|
class DataSourceMetaData_Impl;
|
|
|
|
/** encapsulates meta data for a data source
|
|
|
|
|
|
|
|
On the long run, this class should a) encapsulate *all* meta data which
|
|
|
|
currently is hard coded somewhere in the program logic and b) be initialized
|
|
|
|
from the configuration.
|
|
|
|
|
|
|
|
At the moment, the data a) is still hard coded in the, well, code and b)
|
|
|
|
contains meta data about the advanced settings only.
|
|
|
|
*/
|
|
|
|
class DataSourceMetaData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
DataSourceMetaData( DATASOURCE_TYPE _eType );
|
|
|
|
~DataSourceMetaData();
|
|
|
|
|
|
|
|
/// returns a struct describing this data source type's support for our known advanced settings
|
|
|
|
const AdvancedSettingsSupport& getAdvancedSettingsSupport() const;
|
|
|
|
|
|
|
|
/// determines whether or not the data source requires authentication
|
|
|
|
AuthenticationMode getAuthentication() const;
|
|
|
|
|
|
|
|
static AuthenticationMode getAuthentication( DATASOURCE_TYPE _eType );
|
|
|
|
|
|
|
|
private:
|
|
|
|
::boost::shared_ptr< DataSourceMetaData_Impl > m_pImpl;
|
|
|
|
};
|
|
|
|
|
|
|
|
//====================================================================
|
|
|
|
//= AdvancedSettingsSupport
|
|
|
|
//====================================================================
|
|
|
|
/// struct taking flags for the supported advanced settings
|
|
|
|
struct AdvancedSettingsSupport
|
|
|
|
{
|
|
|
|
// auto-generated values
|
|
|
|
bool bGeneratedValues;
|
|
|
|
// various settings as found on the "Special Settings" page in the UI
|
|
|
|
bool bUseSQL92NamingConstraints;
|
|
|
|
bool bAppendTableAliasInSelect;
|
|
|
|
bool bUseKeywordAsBeforeAlias;
|
|
|
|
bool bUseBracketedOuterJoinSyntax;
|
|
|
|
bool bIgnoreDriverPrivileges;
|
|
|
|
bool bParameterNameSubstitution;
|
|
|
|
bool bDisplayVersionColumns;
|
|
|
|
bool bUseCatalogInSelect;
|
|
|
|
bool bUseSchemaInSelect;
|
|
|
|
bool bUseIndexDirectionKeyword;
|
|
|
|
bool bUseDOSLineEnds;
|
|
|
|
bool bBooleanComparisonMode;
|
|
|
|
bool bFormsCheckRequiredFields;
|
2007-11-27 11:12:42 +00:00
|
|
|
bool bIgnoreCurrency;
|
2007-11-01 14:22:02 +00:00
|
|
|
// Note: If you extend this list, you need to adjust the ctor (of course)
|
|
|
|
// and (maybe) the implementation of supportsAnySpecialSetting
|
|
|
|
|
|
|
|
AdvancedSettingsSupport()
|
|
|
|
:bGeneratedValues ( true )
|
|
|
|
,bUseSQL92NamingConstraints ( true )
|
|
|
|
,bAppendTableAliasInSelect ( true )
|
|
|
|
,bUseKeywordAsBeforeAlias ( true )
|
|
|
|
,bUseBracketedOuterJoinSyntax ( true )
|
|
|
|
,bIgnoreDriverPrivileges ( true )
|
|
|
|
,bParameterNameSubstitution ( true )
|
|
|
|
,bDisplayVersionColumns ( true )
|
|
|
|
,bUseCatalogInSelect ( true )
|
|
|
|
,bUseSchemaInSelect ( true )
|
|
|
|
,bUseIndexDirectionKeyword ( true )
|
|
|
|
,bUseDOSLineEnds ( true )
|
|
|
|
,bBooleanComparisonMode ( true )
|
|
|
|
,bFormsCheckRequiredFields ( true )
|
2007-11-27 11:12:42 +00:00
|
|
|
,bIgnoreCurrency ( false )
|
2007-11-01 14:22:02 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/** determines whether there is support for any of the settings found on the "Special Settings"
|
|
|
|
UI
|
|
|
|
*/
|
|
|
|
inline bool supportsAnySpecialSetting() const;
|
|
|
|
};
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
inline bool AdvancedSettingsSupport::supportsAnySpecialSetting() const
|
|
|
|
{
|
|
|
|
return ( bUseSQL92NamingConstraints == true )
|
|
|
|
|| ( bAppendTableAliasInSelect == true )
|
|
|
|
|| ( bUseKeywordAsBeforeAlias == true )
|
|
|
|
|| ( bUseBracketedOuterJoinSyntax == true )
|
|
|
|
|| ( bIgnoreDriverPrivileges == true )
|
|
|
|
|| ( bParameterNameSubstitution == true )
|
|
|
|
|| ( bDisplayVersionColumns == true )
|
|
|
|
|| ( bUseCatalogInSelect == true )
|
|
|
|
|| ( bUseSchemaInSelect == true )
|
|
|
|
|| ( bUseIndexDirectionKeyword == true )
|
|
|
|
|| ( bUseDOSLineEnds == true )
|
|
|
|
|| ( bBooleanComparisonMode == true )
|
2007-11-27 11:12:42 +00:00
|
|
|
|| ( bFormsCheckRequiredFields == true )
|
|
|
|
|| ( bIgnoreCurrency == true );
|
2007-11-01 14:22:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
//........................................................................
|
|
|
|
} // namespace dbaui
|
|
|
|
//........................................................................
|
|
|
|
|
|
|
|
#endif // DBACCESS_DSMETA_HXX
|