diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-04-15 08:56:07 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-04-15 09:39:03 +0200 |
commit | 598a65a3c1632c24f2aac38c5a2c9f6a55618cd6 (patch) | |
tree | ab510c8d34e95b8414c0a43726a0152073ed277d /dbaccess/source/ui/misc/DExport.cxx | |
parent | b9db7c7236ab75199c281a510546d6778d28e474 (diff) |
loplugin:flatten in dbaccess
Change-Id: Ifcfd3637fbce6dc3a07a1859f102a6ac85149190
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92237
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'dbaccess/source/ui/misc/DExport.cxx')
-rw-r--r-- | dbaccess/source/ui/misc/DExport.cxx | 334 |
1 files changed, 167 insertions, 167 deletions
diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx index 9e2d23eb418e..2dbd0496320c 100644 --- a/dbaccess/source/ui/misc/DExport.cxx +++ b/dbaccess/source/ui/misc/DExport.cxx @@ -285,115 +285,115 @@ ODatabaseExport::~ODatabaseExport() void ODatabaseExport::insertValueIntoColumn() { - if(m_nColumnPos < sal_Int32(m_vDestVector.size())) + if(m_nColumnPos >= sal_Int32(m_vDestVector.size())) + return; + + OFieldDescription* pField = m_vDestVector[m_nColumnPos]->second; + if(!pField) + return; + + sal_Int32 nNewPos = m_bIsAutoIncrement ? m_nColumnPos+1 : m_nColumnPos; + OSL_ENSURE(nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size()),"m_vColumnPositions: Illegal index for vector"); + + if ( nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size() ) ) { - OFieldDescription* pField = m_vDestVector[m_nColumnPos]->second; - if(pField) + sal_Int32 nPos = m_vColumnPositions[nNewPos].first; + if ( nPos != COLUMN_POSITION_NOT_FOUND ) { - sal_Int32 nNewPos = m_bIsAutoIncrement ? m_nColumnPos+1 : m_nColumnPos; - OSL_ENSURE(nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size()),"m_vColumnPositions: Illegal index for vector"); - - if ( nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size() ) ) + if ( m_sTextToken.isEmpty() && pField->IsNullable() ) + m_pUpdateHelper->updateNull(nPos,pField->GetType()); + else { - sal_Int32 nPos = m_vColumnPositions[nNewPos].first; - if ( nPos != COLUMN_POSITION_NOT_FOUND ) + OSL_ENSURE((nNewPos) < static_cast<sal_Int32>(m_vColumnTypes.size()),"Illegal index for vector"); + if (m_vColumnTypes[nNewPos] != DataType::VARCHAR && m_vColumnTypes[nNewPos] != DataType::CHAR && m_vColumnTypes[nNewPos] != DataType::LONGVARCHAR ) { - if ( m_sTextToken.isEmpty() && pField->IsNullable() ) - m_pUpdateHelper->updateNull(nPos,pField->GetType()); + SAL_INFO("dbaccess.ui", "ODatabaseExport::insertValueIntoColumn != DataType::VARCHAR" ); + ensureFormatter(); + sal_Int32 nNumberFormat = 0; + double fOutNumber = 0.0; + bool bNumberFormatError = false; + if ( m_pFormatter && !m_sNumToken.isEmpty() ) + { + LanguageType eNumLang = LANGUAGE_NONE; + sal_uInt32 nNumberFormat2( nNumberFormat ); + fOutNumber = SfxHTMLParser::GetTableDataOptionsValNum(nNumberFormat2,eNumLang,m_sTextToken,m_sNumToken,*m_pFormatter); + if ( eNumLang != LANGUAGE_NONE ) + { + nNumberFormat2 = m_pFormatter->GetFormatForLanguageIfBuiltIn( nNumberFormat2, eNumLang ); + (void)m_pFormatter->IsNumberFormat( m_sTextToken, nNumberFormat2, fOutNumber ); + } + nNumberFormat = static_cast<sal_Int32>(nNumberFormat2); + } else { - OSL_ENSURE((nNewPos) < static_cast<sal_Int32>(m_vColumnTypes.size()),"Illegal index for vector"); - if (m_vColumnTypes[nNewPos] != DataType::VARCHAR && m_vColumnTypes[nNewPos] != DataType::CHAR && m_vColumnTypes[nNewPos] != DataType::LONGVARCHAR ) + Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); + Reference<XNumberFormatTypes> xNumType(xSupplier->getNumberFormats(),UNO_QUERY); + const sal_Int16 nFormats[] = { + NumberFormat::DATETIME + ,NumberFormat::DATE + ,NumberFormat::TIME + ,NumberFormat::CURRENCY + ,NumberFormat::NUMBER + ,NumberFormat::LOGICAL + }; + for (short nFormat : nFormats) { - SAL_INFO("dbaccess.ui", "ODatabaseExport::insertValueIntoColumn != DataType::VARCHAR" ); - ensureFormatter(); - sal_Int32 nNumberFormat = 0; - double fOutNumber = 0.0; - bool bNumberFormatError = false; - if ( m_pFormatter && !m_sNumToken.isEmpty() ) + try { - LanguageType eNumLang = LANGUAGE_NONE; - sal_uInt32 nNumberFormat2( nNumberFormat ); - fOutNumber = SfxHTMLParser::GetTableDataOptionsValNum(nNumberFormat2,eNumLang,m_sTextToken,m_sNumToken,*m_pFormatter); - if ( eNumLang != LANGUAGE_NONE ) - { - nNumberFormat2 = m_pFormatter->GetFormatForLanguageIfBuiltIn( nNumberFormat2, eNumLang ); - (void)m_pFormatter->IsNumberFormat( m_sTextToken, nNumberFormat2, fOutNumber ); - } - nNumberFormat = static_cast<sal_Int32>(nNumberFormat2); + nNumberFormat = m_xFormatter->detectNumberFormat(xNumType->getStandardFormat(nFormat,m_aLocale),m_sTextToken); + break; } - else + catch(Exception&) { - Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); - Reference<XNumberFormatTypes> xNumType(xSupplier->getNumberFormats(),UNO_QUERY); - const sal_Int16 nFormats[] = { - NumberFormat::DATETIME - ,NumberFormat::DATE - ,NumberFormat::TIME - ,NumberFormat::CURRENCY - ,NumberFormat::NUMBER - ,NumberFormat::LOGICAL - }; - for (short nFormat : nFormats) - { - try - { - nNumberFormat = m_xFormatter->detectNumberFormat(xNumType->getStandardFormat(nFormat,m_aLocale),m_sTextToken); - break; - } - catch(Exception&) - { - } - } - try - { - fOutNumber = m_xFormatter->convertStringToNumber(nNumberFormat,m_sTextToken); - } - catch(Exception&) - { - bNumberFormatError = true; - m_pUpdateHelper->updateString(nPos,m_sTextToken); - } } - if ( !bNumberFormatError ) + } + try + { + fOutNumber = m_xFormatter->convertStringToNumber(nNumberFormat,m_sTextToken); + } + catch(Exception&) + { + bNumberFormatError = true; + m_pUpdateHelper->updateString(nPos,m_sTextToken); + } + } + if ( !bNumberFormatError ) + { + try + { + Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); + Reference< XNumberFormats > xFormats = xSupplier->getNumberFormats(); + Reference<XPropertySet> xProp = xFormats->getByKey(nNumberFormat); + sal_Int16 nType = 0; + xProp->getPropertyValue(PROPERTY_TYPE) >>= nType; + switch(nType) { - try - { - Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); - Reference< XNumberFormats > xFormats = xSupplier->getNumberFormats(); - Reference<XPropertySet> xProp = xFormats->getByKey(nNumberFormat); - sal_Int16 nType = 0; - xProp->getPropertyValue(PROPERTY_TYPE) >>= nType; - switch(nType) - { - case NumberFormat::DATE: - m_pUpdateHelper->updateDate(nPos,::dbtools::DBTypeConversion::toDate(fOutNumber,m_aNullDate)); - break; - case NumberFormat::DATETIME: - m_pUpdateHelper->updateTimestamp(nPos,::dbtools::DBTypeConversion::toDateTime(fOutNumber,m_aNullDate)); - break; - case NumberFormat::TIME: - m_pUpdateHelper->updateTime(nPos,::dbtools::DBTypeConversion::toTime(fOutNumber)); - break; - default: - m_pUpdateHelper->updateDouble(nPos,fOutNumber); - } - } - catch(Exception&) - { - m_pUpdateHelper->updateString(nPos,m_sTextToken); - } + case NumberFormat::DATE: + m_pUpdateHelper->updateDate(nPos,::dbtools::DBTypeConversion::toDate(fOutNumber,m_aNullDate)); + break; + case NumberFormat::DATETIME: + m_pUpdateHelper->updateTimestamp(nPos,::dbtools::DBTypeConversion::toDateTime(fOutNumber,m_aNullDate)); + break; + case NumberFormat::TIME: + m_pUpdateHelper->updateTime(nPos,::dbtools::DBTypeConversion::toTime(fOutNumber)); + break; + default: + m_pUpdateHelper->updateDouble(nPos,fOutNumber); } - } - else + catch(Exception&) + { m_pUpdateHelper->updateString(nPos,m_sTextToken); + } } + } + else + m_pUpdateHelper->updateString(nPos,m_sTextToken); } - eraseTokens(); } } + eraseTokens(); } sal_Int16 ODatabaseExport::CheckString(const OUString& aCheckToken, sal_Int16 _nOldNumberFormat) @@ -543,76 +543,76 @@ sal_Int16 ODatabaseExport::CheckString(const OUString& aCheckToken, sal_Int16 _n void ODatabaseExport::SetColumnTypes(const TColumnVector* _pList,const OTypeInfoMap* _pInfoMap) { - if(_pList && _pInfoMap) + if(!(_pList && _pInfoMap)) + return; + + OSL_ENSURE(m_vNumberFormat.size() == m_vColumnSize.size() && m_vColumnSize.size() == _pList->size(),"Illegal columns in list"); + Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); + Reference< XNumberFormats > xFormats = xSupplier->getNumberFormats(); + sal_Int32 minBothSize = std::min<sal_Int32>(m_vNumberFormat.size(), m_vColumnSize.size()); + sal_Int32 i = 0; + for (auto const& elem : *_pList) { - OSL_ENSURE(m_vNumberFormat.size() == m_vColumnSize.size() && m_vColumnSize.size() == _pList->size(),"Illegal columns in list"); - Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier(); - Reference< XNumberFormats > xFormats = xSupplier->getNumberFormats(); - sal_Int32 minBothSize = std::min<sal_Int32>(m_vNumberFormat.size(), m_vColumnSize.size()); - sal_Int32 i = 0; - for (auto const& elem : *_pList) - { - if (i >= minBothSize) - break; + if (i >= minBothSize) + break; - sal_Int32 nDataType; - sal_Int32 nLength(0),nScale(0); - sal_Int16 nType = m_vNumberFormat[i] & ~NumberFormat::DEFINED; + sal_Int32 nDataType; + sal_Int32 nLength(0),nScale(0); + sal_Int16 nType = m_vNumberFormat[i] & ~NumberFormat::DEFINED; - switch ( nType ) - { - case NumberFormat::ALL: - nDataType = DataType::DOUBLE; - break; - case NumberFormat::DEFINED: - nDataType = DataType::VARCHAR; - nLength = ((m_vColumnSize[i] % 10 ) ? m_vColumnSize[i]/ 10 + 1: m_vColumnSize[i]/ 10) * 10; - break; - case NumberFormat::DATE: - nDataType = DataType::DATE; - break; - case NumberFormat::TIME: - nDataType = DataType::TIME; - break; - case NumberFormat::DATETIME: - nDataType = DataType::TIMESTAMP; - break; - case NumberFormat::CURRENCY: - nDataType = DataType::NUMERIC; - nScale = 4; - nLength = 19; - break; - case NumberFormat::NUMBER: - case NumberFormat::SCIENTIFIC: - case NumberFormat::FRACTION: - case NumberFormat::PERCENT: - nDataType = DataType::DOUBLE; - break; - case NumberFormat::TEXT: - case NumberFormat::UNDEFINED: - case NumberFormat::LOGICAL: - default: - nDataType = DataType::VARCHAR; - nLength = ((m_vColumnSize[i] % 10 ) ? m_vColumnSize[i]/ 10 + 1: m_vColumnSize[i]/ 10) * 10; - break; - } - OTypeInfoMap::const_iterator aFind = _pInfoMap->find(nDataType); - if(aFind != _pInfoMap->end()) - { - elem->second->SetType(aFind->second); - elem->second->SetPrecision(std::min<sal_Int32>(aFind->second->nPrecision,nLength)); - elem->second->SetScale(std::min<sal_Int32>(aFind->second->nMaximumScale,nScale)); + switch ( nType ) + { + case NumberFormat::ALL: + nDataType = DataType::DOUBLE; + break; + case NumberFormat::DEFINED: + nDataType = DataType::VARCHAR; + nLength = ((m_vColumnSize[i] % 10 ) ? m_vColumnSize[i]/ 10 + 1: m_vColumnSize[i]/ 10) * 10; + break; + case NumberFormat::DATE: + nDataType = DataType::DATE; + break; + case NumberFormat::TIME: + nDataType = DataType::TIME; + break; + case NumberFormat::DATETIME: + nDataType = DataType::TIMESTAMP; + break; + case NumberFormat::CURRENCY: + nDataType = DataType::NUMERIC; + nScale = 4; + nLength = 19; + break; + case NumberFormat::NUMBER: + case NumberFormat::SCIENTIFIC: + case NumberFormat::FRACTION: + case NumberFormat::PERCENT: + nDataType = DataType::DOUBLE; + break; + case NumberFormat::TEXT: + case NumberFormat::UNDEFINED: + case NumberFormat::LOGICAL: + default: + nDataType = DataType::VARCHAR; + nLength = ((m_vColumnSize[i] % 10 ) ? m_vColumnSize[i]/ 10 + 1: m_vColumnSize[i]/ 10) * 10; + break; + } + OTypeInfoMap::const_iterator aFind = _pInfoMap->find(nDataType); + if(aFind != _pInfoMap->end()) + { + elem->second->SetType(aFind->second); + elem->second->SetPrecision(std::min<sal_Int32>(aFind->second->nPrecision,nLength)); + elem->second->SetScale(std::min<sal_Int32>(aFind->second->nMaximumScale,nScale)); - sal_Int32 nFormatKey = ::dbtools::getDefaultNumberFormat( nDataType, - elem->second->GetScale(), - elem->second->IsCurrency(), - Reference< XNumberFormatTypes>(xFormats,UNO_QUERY), - m_aLocale); + sal_Int32 nFormatKey = ::dbtools::getDefaultNumberFormat( nDataType, + elem->second->GetScale(), + elem->second->IsCurrency(), + Reference< XNumberFormatTypes>(xFormats,UNO_QUERY), + m_aLocale); - elem->second->SetFormatKey(nFormatKey); - } - ++i; + elem->second->SetFormatKey(nFormatKey); } + ++i; } } @@ -754,24 +754,24 @@ void ODatabaseExport::showErrorDialog(const css::sdbc::SQLException& e) void ODatabaseExport::adjustFormat() { - if ( !m_sTextToken.isEmpty() ) + if ( m_sTextToken.isEmpty() ) + return; + + sal_Int32 nNewPos = m_bIsAutoIncrement ? m_nColumnPos+1 : m_nColumnPos; + OSL_ENSURE(nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size()),"Illegal index for vector"); + if ( nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size()) ) { - sal_Int32 nNewPos = m_bIsAutoIncrement ? m_nColumnPos+1 : m_nColumnPos; - OSL_ENSURE(nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size()),"Illegal index for vector"); - if ( nNewPos < static_cast<sal_Int32>(m_vColumnPositions.size()) ) + sal_Int32 nColPos = m_vColumnPositions[nNewPos].first; + if( nColPos != COLUMN_POSITION_NOT_FOUND) { - sal_Int32 nColPos = m_vColumnPositions[nNewPos].first; - if( nColPos != COLUMN_POSITION_NOT_FOUND) - { - --nColPos; - OSL_ENSURE((nColPos) < static_cast<sal_Int32>(m_vNumberFormat.size()),"m_vFormatKey: Illegal index for vector"); - OSL_ENSURE((nColPos) < static_cast<sal_Int32>(m_vColumnSize.size()),"m_vColumnSize: Illegal index for vector"); - m_vNumberFormat[nColPos] = CheckString(m_sTextToken,m_vNumberFormat[nColPos]); - m_vColumnSize[nColPos] = std::max<sal_Int32>(static_cast<sal_Int32>(m_vColumnSize[nColPos]), m_sTextToken.getLength()); - } + --nColPos; + OSL_ENSURE((nColPos) < static_cast<sal_Int32>(m_vNumberFormat.size()),"m_vFormatKey: Illegal index for vector"); + OSL_ENSURE((nColPos) < static_cast<sal_Int32>(m_vColumnSize.size()),"m_vColumnSize: Illegal index for vector"); + m_vNumberFormat[nColPos] = CheckString(m_sTextToken,m_vNumberFormat[nColPos]); + m_vColumnSize[nColPos] = std::max<sal_Int32>(static_cast<sal_Int32>(m_vColumnSize[nColPos]), m_sTextToken.getLength()); } - eraseTokens(); } + eraseTokens(); } void ODatabaseExport::eraseTokens() |