diff options
Diffstat (limited to 'dbaccess/source/ui/misc/dsmeta.cxx')
-rw-r--r-- | dbaccess/source/ui/misc/dsmeta.cxx | 101 |
1 files changed, 36 insertions, 65 deletions
diff --git a/dbaccess/source/ui/misc/dsmeta.cxx b/dbaccess/source/ui/misc/dsmeta.cxx index 58831f081185..b3f141980553 100644 --- a/dbaccess/source/ui/misc/dsmeta.cxx +++ b/dbaccess/source/ui/misc/dsmeta.cxx @@ -28,7 +28,6 @@ namespace dbaui { - using namespace dbaccess; using namespace ::com::sun::star; namespace { @@ -53,45 +52,39 @@ namespace dbaui { /// one of the items from dsitems.hxx ItemID nItemID; - const char* pAsciiFeatureName; + OUString pAsciiFeatureName; }; - } - // global tables - static const FeatureMapping* lcl_getFeatureMappings() - { - static const FeatureMapping s_aMappings[] = { - { DSID_AUTORETRIEVEENABLED, "GeneratedValues" }, - { DSID_AUTOINCREMENTVALUE, "GeneratedValues" }, - { DSID_AUTORETRIEVEVALUE, "GeneratedValues" }, - { DSID_SQL92CHECK, "UseSQL92NamingConstraints" }, - { DSID_APPEND_TABLE_ALIAS, "AppendTableAliasInSelect" }, - { DSID_AS_BEFORE_CORRNAME, "UseKeywordAsBeforeAlias" }, - { DSID_ENABLEOUTERJOIN, "UseBracketedOuterJoinSyntax" }, - { DSID_IGNOREDRIVER_PRIV, "IgnoreDriverPrivileges" }, - { DSID_PARAMETERNAMESUBST, "ParameterNameSubstitution" }, - { DSID_SUPPRESSVERSIONCL, "DisplayVersionColumns" }, - { DSID_CATALOG, "UseCatalogInSelect" }, - { DSID_SCHEMA, "UseSchemaInSelect" }, - { DSID_INDEXAPPENDIX, "UseIndexDirectionKeyword" }, - { DSID_DOSLINEENDS, "UseDOSLineEnds" }, - { DSID_BOOLEANCOMPARISON, "BooleanComparisonMode" }, - { DSID_CHECK_REQUIRED_FIELDS, "FormsCheckRequiredFields" }, - { DSID_IGNORECURRENCY, "IgnoreCurrency" }, - { DSID_ESCAPE_DATETIME, "EscapeDateTime" }, - { DSID_PRIMARY_KEY_SUPPORT, "PrimaryKeySupport" }, - { DSID_RESPECTRESULTSETTYPE, "RespectDriverResultSetType" }, - { DSID_MAX_ROW_SCAN, "MaxRowScan" }, - { 0, nullptr } - }; - return s_aMappings; + const FeatureMapping s_aMappings[] = { + { DSID_AUTORETRIEVEENABLED, u"GeneratedValues"_ustr }, + { DSID_AUTOINCREMENTVALUE, u"GeneratedValues"_ustr }, + { DSID_AUTORETRIEVEVALUE, u"GeneratedValues"_ustr }, + { DSID_SQL92CHECK, u"UseSQL92NamingConstraints"_ustr }, + { DSID_APPEND_TABLE_ALIAS, u"AppendTableAliasInSelect"_ustr }, + { DSID_AS_BEFORE_CORRNAME, u"UseKeywordAsBeforeAlias"_ustr }, + { DSID_ENABLEOUTERJOIN, u"UseBracketedOuterJoinSyntax"_ustr }, + { DSID_IGNOREDRIVER_PRIV, u"IgnoreDriverPrivileges"_ustr }, + { DSID_PARAMETERNAMESUBST, u"ParameterNameSubstitution"_ustr }, + { DSID_SUPPRESSVERSIONCL, u"DisplayVersionColumns"_ustr }, + { DSID_CATALOG, u"UseCatalogInSelect"_ustr }, + { DSID_SCHEMA, u"UseSchemaInSelect"_ustr }, + { DSID_INDEXAPPENDIX, u"UseIndexDirectionKeyword"_ustr }, + { DSID_DOSLINEENDS, u"UseDOSLineEnds"_ustr }, + { DSID_BOOLEANCOMPARISON, u"BooleanComparisonMode"_ustr }, + { DSID_CHECK_REQUIRED_FIELDS, u"FormsCheckRequiredFields"_ustr }, + { DSID_IGNORECURRENCY, u"IgnoreCurrency"_ustr }, + { DSID_ESCAPE_DATETIME, u"EscapeDateTime"_ustr }, + { DSID_PRIMARY_KEY_SUPPORT, u"PrimaryKeySupport"_ustr }, + { DSID_RESPECTRESULTSETTYPE, u"RespectDriverResultSetType"_ustr }, + { DSID_MAX_ROW_SCAN, u"MaxRowScan"_ustr }, + }; } static const FeatureSet& lcl_getFeatureSet( const OUString& _rURL ) { typedef std::map< OUString, FeatureSet > FeatureSets; - static FeatureSets s_aFeatureSets = [&]() + static FeatureSets s_aFeatureSets = []() { FeatureSets tmp; ::connectivity::DriversConfig aDriverConfig( ::comphelper::getProcessComponentContext() ); @@ -101,12 +94,10 @@ namespace dbaui FeatureSet aCurrentSet; const ::comphelper::NamedValueCollection aCurrentFeatures( aDriverConfig.getFeatures( pattern ).getNamedValues() ); - const FeatureMapping* pFeatureMapping = lcl_getFeatureMappings(); - while ( pFeatureMapping->pAsciiFeatureName ) + for ( const FeatureMapping& rFeatureMapping : s_aMappings ) { - if ( aCurrentFeatures.has( pFeatureMapping->pAsciiFeatureName ) ) - aCurrentSet.put( pFeatureMapping->nItemID ); - ++pFeatureMapping; + if ( aCurrentFeatures.has( rFeatureMapping.pAsciiFeatureName ) ) + aCurrentSet.put( rFeatureMapping.nItemID ); } tmp[ pattern ] = aCurrentSet; @@ -120,27 +111,24 @@ namespace dbaui static AuthenticationMode getAuthenticationMode( const OUString& _sURL ) { - static std::map< OUString, FeatureSupport > s_aSupport = [&]() + static std::map< OUString, FeatureSupport > s_aSupport = []() { std::map< OUString, FeatureSupport > tmp; ::connectivity::DriversConfig aDriverConfig(::comphelper::getProcessComponentContext()); - const uno::Sequence< OUString > aURLs = aDriverConfig.getURLs(); - const OUString* pIter = aURLs.getConstArray(); - const OUString* pEnd = pIter + aURLs.getLength(); - for(;pIter != pEnd;++pIter) + for (auto& url : aDriverConfig.getURLs()) { FeatureSupport aInit( AuthNone ); - const ::comphelper::NamedValueCollection& aMetaData = aDriverConfig.getMetaData(*pIter); - if ( aMetaData.has("Authentication") ) + const ::comphelper::NamedValueCollection& aMetaData = aDriverConfig.getMetaData(url); + if ( aMetaData.has(u"Authentication"_ustr) ) { OUString sAuth; - aMetaData.get("Authentication") >>= sAuth; + aMetaData.get(u"Authentication"_ustr) >>= sAuth; if ( sAuth == "UserPassword" ) aInit = FeatureSupport(AuthUserPwd); else if ( sAuth == "Password" ) aInit = FeatureSupport(AuthPwd); } - tmp.insert(std::make_pair(*pIter,aInit)); + tmp.insert(std::make_pair(url, aInit)); } return tmp; }(); @@ -148,26 +136,9 @@ namespace dbaui return s_aSupport[ _sURL ].eAuthentication; } - // DataSourceMetaData_Impl - class DataSourceMetaData_Impl - { - public: - explicit DataSourceMetaData_Impl(const OUString& rURL); - - const OUString& getType() const { return m_sURL; } - - private: - const OUString m_sURL; - }; - - DataSourceMetaData_Impl::DataSourceMetaData_Impl( const OUString& _sURL ) - :m_sURL( _sURL ) - { - } - // DataSourceMetaData DataSourceMetaData::DataSourceMetaData( const OUString& _sURL ) - :m_pImpl( std::make_shared<DataSourceMetaData_Impl>( _sURL ) ) + :m_sURL( _sURL ) { } @@ -177,7 +148,7 @@ namespace dbaui const FeatureSet& DataSourceMetaData::getFeatureSet() const { - return lcl_getFeatureSet( m_pImpl->getType() ); + return lcl_getFeatureSet( m_sURL ); } AuthenticationMode DataSourceMetaData::getAuthentication( const OUString& _sURL ) |