Kaydet (Commit) 8d3d04ef authored tarafından Julien Nabet's avatar Julien Nabet

Modernize a bit connectivity (part2)

by using for range loops

Change-Id: Ibbc4cdaa78c4c9d88487132a2761ac1040b1ecd8
Reviewed-on: https://gerrit.libreoffice.org/48713Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarJulien Nabet <serval2412@yahoo.fr>
üst 95bece38
......@@ -51,8 +51,9 @@ bool MDatabaseMetaDataHelper::getTableStrings( OConnection* _pCon,
std::set<std::string> lists;
MorkParser* pMork = _pCon->getMorkParser("AddressBook");
pMork->retrieveLists(lists);
for (std::set<std::string>::const_iterator iter = lists.begin(); iter != lists.end(); ++iter) {
OUString groupTableName = OStringToOUString((*iter).c_str(), RTL_TEXTENCODING_UTF8);
for (auto const& elem : lists)
{
OUString groupTableName = OStringToOUString(elem.c_str(), RTL_TEXTENCODING_UTF8);
SAL_INFO("connectivity.mork", "add Table " << groupTableName);
_rStrings.push_back(groupTableName);
......@@ -63,8 +64,9 @@ bool MDatabaseMetaDataHelper::getTableStrings( OConnection* _pCon,
std::set<std::string> lists_history;
pMork = _pCon->getMorkParser("CollectedAddressBook");
pMork->retrieveLists(lists_history);
for (std::set<std::string>::const_iterator iter = lists_history.begin(); iter != lists_history.end(); ++iter) {
OUString groupTableName = OStringToOUString((*iter).c_str(), RTL_TEXTENCODING_UTF8);
for (auto const& elem : lists_history)
{
OUString groupTableName = OStringToOUString(elem.c_str(), RTL_TEXTENCODING_UTF8);
SAL_INFO("connectivity.mork", "add Table " << groupTableName);
_rStrings.push_back(groupTableName);
......
......@@ -437,11 +437,9 @@ void OPreparedStatement::describeParameter()
if(rTabs.size())
{
OSQLTable xTable = rTabs.begin()->second;
std::vector< OSQLParseNode*>::const_iterator aIter =
aParseNodes.begin();
for (;aIter != aParseNodes.end();++aIter )
for (auto const& parseNode : aParseNodes)
{
describeColumn(*aIter,(*aIter)->getParent()->getChild(0),xTable);
describeColumn(parseNode,parseNode->getParent()->getChild(0),xTable);
}
}
}
......
......@@ -97,11 +97,8 @@ void MQueryHelper::append(MQueryHelperResultEntry* resEnt)
void MQueryHelper::clear_results()
{
resultsArray::iterator iter = m_aResults.begin();
while ( iter != m_aResults.end() ) {
delete *iter;
++iter;
}
for (auto const& result : m_aResults)
delete result;
m_aResults.clear();
}
......@@ -206,20 +203,20 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection, MQueryExpression
MorkRowMap::Map::const_iterator rowIter;
// Iterate all tables
for ( tableIter = Tables->map.begin(); tableIter != Tables->map.end(); ++tableIter )
for (auto & table : Tables->map)
{
if (tableIter->first != 1) break;
Rows = MorkParser::getRows( 0x80, &tableIter->second );
if (table.first != 1) break;
Rows = MorkParser::getRows( 0x80, &table.second );
if ( Rows )
{
// Iterate all rows
for ( rowIter = Rows->map.begin(); rowIter != Rows->map.end(); ++rowIter )
for (auto const& row : Rows->map)
{
// list specific table
// only retrieve rowIds that belong to that list table.
if (handleListTable)
{
int rowId = rowIter->first;
int rowId = row.first;
// belongs this row id to the list table?
if (listRecords.end() == listRecords.find(rowId))
{
......@@ -229,21 +226,19 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection, MQueryExpression
}
MQueryHelperResultEntry* entry = new MQueryHelperResultEntry();
for (MorkCells::const_iterator CellsIter = rowIter->second.begin();
CellsIter != rowIter->second.end(); ++CellsIter )
for (auto const& cell : row.second)
{
std::string column = pMork->getColumn(CellsIter->first);
std::string value = pMork->getValue(CellsIter->second);
std::string column = pMork->getColumn(cell.first);
std::string value = pMork->getValue(cell.second);
OString key(column.c_str(), static_cast<sal_Int32>(column.size()));
OString valueOString(value.c_str(), static_cast<sal_Int32>(value.size()));
OUString valueOUString = OStringToOUString( valueOString, RTL_TEXTENCODING_UTF8 );
entry->setValue(key, valueOUString);
}
std::vector<bool> vector = entryMatchedByExpression(this, &expr, entry);
bool result = true;
for (std::vector<bool>::const_iterator iter = vector.begin(); iter != vector.end(); ++iter)
for (auto const& elem : entryMatchedByExpression(this, &expr, entry))
{
result = result && *iter;
result = result && elem;
}
if (result)
{
......@@ -262,13 +257,10 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection, MQueryExpression
std::vector<bool> entryMatchedByExpression(MQueryHelper* _aQuery, MQueryExpression const * _aExpr, MQueryHelperResultEntry* entry)
{
std::vector<bool> resultVector;
MQueryExpression::ExprVector::const_iterator evIter;
for( evIter = _aExpr->getExpressions().begin();
evIter != _aExpr->getExpressions().end();
++evIter )
for (auto const& expr : _aExpr->getExpressions())
{
if ( (*evIter)->isStringExpr() ) {
MQueryExpressionString* evStr = static_cast<MQueryExpressionString*> (*evIter);
if ( expr->isStringExpr() ) {
MQueryExpressionString* evStr = static_cast<MQueryExpressionString*> (expr);
// Set the 'name' property of the boolString.
OString attrName = _aQuery->getColumnAlias().getProgrammaticNameOrFallbackToUTF8Alias( evStr->getName() );
SAL_INFO("connectivity.mork", "Name = " << attrName);
......@@ -318,22 +310,24 @@ std::vector<bool> entryMatchedByExpression(MQueryHelper* _aQuery, MQueryExpressi
resultVector.push_back(currentValue.isEmpty());
}
}
else if ( (*evIter)->isExpr() ) {
else if ( expr->isExpr() ) {
SAL_INFO("connectivity.mork", "Appending Subquery Expression");
MQueryExpression* queryExpression = static_cast<MQueryExpression*> (*evIter);
MQueryExpression* queryExpression = static_cast<MQueryExpression*> (expr);
// recursive call
std::vector<bool> subquery_result = entryMatchedByExpression(_aQuery, queryExpression, entry);
MQueryExpression::bool_cond condition = queryExpression->getExpressionCondition();
if (condition == MQueryExpression::OR) {
bool result = false;
for (std::vector<bool>::const_iterator iter = subquery_result.begin(); iter != subquery_result.end(); ++iter) {
result = result || *iter;
for (auto const& elem : subquery_result)
{
result = result || elem;
}
resultVector.push_back(result);
} else if (condition == MQueryExpression::AND) {
bool result = true;
for (std::vector<bool>::const_iterator iter = subquery_result.begin(); iter != subquery_result.end(); ++iter) {
result = result && *iter;
for (auto const& elem : subquery_result)
{
result = result && elem;
}
resultVector.push_back(result);
} else {
......
......@@ -681,11 +681,10 @@ void OResultSet::analyseWhereClause( const OSQLParseNode* parseT
if(xColumns.is())
{
OUString aColName, aParameterValue;
OSQLColumns::Vector::const_iterator aIter = xColumns->get().begin();
sal_Int32 i = 1;
for(;aIter != xColumns->get().end();++aIter)
for (auto const& column : xColumns->get())
{
(*aIter)->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME)) >>= aColName;
column->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME)) >>= aColName;
SAL_INFO("connectivity.mork", "Prop Column Name: " << aColName);
if ( m_aParameterRow.is() ) {
aParameterValue = (m_aParameterRow->get())[static_cast<sal_uInt16>(i)];
......
......@@ -17,12 +17,12 @@ bool openAddressBook(const std::string& path)
if ( Tables )
{
// Iterate all tables
for ( tableIter = Tables->map.begin(); tableIter != Tables->map.end(); ++tableIter )
for (auto const& table : Tables->map)
{
if ( 0 == tableIter->first ) continue;
SAL_INFO("connectivity.mork", "table->first : " << tableIter->first);
std::string column = mork.getColumn( tableIter->first );
std::string value = mork.getValue( tableIter->first );
if ( 0 == table.first ) continue;
SAL_INFO("connectivity.mork", "table->first : " << table.first);
std::string column = mork.getColumn( table.first );
std::string value = mork.getValue( table.first );
SAL_INFO("connectivity.mork", "table.column : " << column);
SAL_INFO("connectivity.mork", "table.value : " << value);
}
......
......@@ -87,9 +87,9 @@ namespace connectivity
::osl::MutexGuard aGuard(m_aMutex);
for (TWeakPairVector::iterator i = m_aConnections.begin(); m_aConnections.end() != i; ++i)
for (auto const& connection : m_aConnections)
{
Reference<XInterface > xTemp = i->first.get();
Reference<XInterface > xTemp = connection.first.get();
::comphelper::disposeComponent(xTemp);
}
m_aConnections.clear();
......
......@@ -472,8 +472,8 @@ void OConnection::disposing()
OConnection_BASE::disposing();
for (auto aConIter = m_aConnections.begin(); aConIter != m_aConnections.end(); ++aConIter )
aConIter->second->dispose();
for (auto const& connection : m_aConnections)
connection.second->dispose();
m_aConnections.clear();
......
......@@ -44,9 +44,9 @@ void ODBCDriver::disposing()
::osl::MutexGuard aGuard(m_aMutex);
for (OWeakRefArray::iterator i = m_xConnections.begin(); m_xConnections.end() != i; ++i)
for (auto const& connection : m_xConnections)
{
Reference< XComponent > xComp(i->get(), UNO_QUERY);
Reference< XComponent > xComp(connection.get(), UNO_QUERY);
if (xComp.is())
xComp->dispose();
}
......
......@@ -484,10 +484,11 @@ Sequence< sal_Int32 > SAL_CALL OStatement::executeBatch( )
OString aBatchSql;
sal_Int32 nLen = 0;
for(std::vector< OUString>::const_iterator i=m_aBatchVector.begin();i != m_aBatchVector.end();++i,++nLen)
sal_Int32 nLen = m_aBatchVector.size();
for (auto const& elem : m_aBatchVector)
{
aBatchSql += OUStringToOString(*i,getOwnConnection()->getTextEncoding());
aBatchSql += OUStringToOString(elem,getOwnConnection()->getTextEncoding());
aBatchSql += ";";
}
......
......@@ -221,26 +221,23 @@ void Connection::close()
m_settings.tables.clear();
m_settings.users.clear();
for( WeakHashMap::const_iterator ii = m_myStatements.begin() ;
ii != m_myStatements.end() ;
++ii )
for (auto const& statement : m_myStatements)
{
Reference< XCloseable > r = ii->second;
Reference< XCloseable > r = statement.second;
if( r.is() )
vectorCloseable.push_back( r );
}
}
// close all created statements
for( CloseableVector::iterator ii = vectorCloseable.begin(); ii != vectorCloseable.end() ; ++ii )
ii->get()->close();
for (auto const& elem : vectorCloseable)
elem.get()->close();
// close all created statements
for( DisposeableVector::iterator iiDispose = vectorDispose.begin();
iiDispose != vectorDispose.end() ; ++iiDispose )
for (auto const& elem : vectorDispose)
{
if( iiDispose->is() )
iiDispose->get()->dispose();
if( elem.is() )
elem.get()->dispose();
}
}
......
......@@ -1786,15 +1786,14 @@ css::uno::Reference< XResultSet > DatabaseMetaData::getPrimaryKeys(
}
std::vector< std::vector<Any> >::const_iterator ii = vec.begin();
OUString lastTableOid;
sal_Int32 index = 0;
std::vector< std::vector< Any > > ret( vec.size() );
int elements = 0;
for( ; ii != vec.end() ; ++ ii )
for (auto const& elem : vec)
{
std::vector< Any > row = *ii;
std::vector< Any > row = elem;
OUString tableOid;
OUString attnum;
......
......@@ -749,46 +749,47 @@ Reference< XResultSet > getGeneratedValuesFromLastInsert(
{
OUString value;
OString columnName = OUStringToOString( keyColumnNames[i], ConnectionSettings::encoding );
String2StringMap::const_iterator ii = namedValues.begin();
for( ; ii != namedValues.end() ; ++ii )
bool bColumnMatchNamedValue = false;
for (auto const& namedValue : namedValues)
{
if( columnName.equalsIgnoreAsciiCase( ii->first ) )
if( columnName.equalsIgnoreAsciiCase( namedValue.first ) )
{
value = OStringToOUString( ii->second , ConnectionSettings::encoding );
value = OStringToOUString( namedValue.second , ConnectionSettings::encoding );
bColumnMatchNamedValue = true;
break;
}
}
// check, if a column of the primary key was not inserted explicitly,
if( ii == namedValues.end() )
if( !bColumnMatchNamedValue )
{
if( autoValues.begin() == autoValues.end() )
{
getAutoValues( autoValues, connection, schemaName, tableName );
}
// this could mean, that the column is a default or auto value, check this ...
String2StringMap::const_iterator j = autoValues.begin();
for( ; j != autoValues.end() ; ++j )
bool bColumnMatchAutoValue = false;
for (auto const& autoValue : autoValues)
{
if( columnName.equalsIgnoreAsciiCase( j->first ) )
if( columnName.equalsIgnoreAsciiCase( autoValue.first ) )
{
// it is indeed an auto value.
value = OStringToOUString(j->second, RTL_TEXTENCODING_ASCII_US );
value = OStringToOUString(autoValue.second, RTL_TEXTENCODING_ASCII_US );
// check, whether it is a sequence
if( j->second.startsWith("nextval(") )
if( autoValue.second.startsWith("nextval(") )
{
// retrieve current sequence value:
OUStringBuffer myBuf(128 );
myBuf.append( "SELECT currval(" );
myBuf.appendAscii( &(j->second.getStr()[8]));
myBuf.appendAscii( &(autoValue.second.getStr()[8]));
value = querySingleValue( connection, myBuf.makeStringAndClear() );
}
bColumnMatchAutoValue = true;
break;
}
}
if( j == autoValues.end() )
if( !bColumnMatchAutoValue )
{
// it even was no autovalue, no sense to continue as we can't query the
// inserted row
......
......@@ -722,12 +722,9 @@ namespace
// look up the column in the select column, to find an possible alias
if ( _pSelectColumns )
{
for ( OSQLColumns::Vector::const_iterator lookupColumn = _pSelectColumns->get().begin();
lookupColumn != _pSelectColumns->get().end();
++lookupColumn
)
for (auto const& lookupColumn : _pSelectColumns->get())
{
Reference< XPropertySet > xColumn( *lookupColumn );
Reference< XPropertySet > xColumn( lookupColumn );
try
{
OUString sName, sTableName;
......@@ -804,20 +801,20 @@ bool OSQLParseTreeIterator::impl_getColumnTableRange(const OSQLParseNode* pNode,
if (aTableRange.isEmpty()) // None found
{
// Look for the columns in the tables
for (OSQLTables::const_iterator aIter = m_pImpl->m_pTables->begin(); aIter != m_pImpl->m_pTables->end(); ++aIter)
for (auto const& table : *m_pImpl->m_pTables)
{
if (aIter->second.is())
if (table.second.is())
{
try
{
Reference< XNameAccess > xColumns = aIter->second->getColumns();
Reference< XNameAccess > xColumns = table.second->getColumns();
if(xColumns->hasByName(aColName))
{
Reference< XPropertySet > xColumn;
if (xColumns->getByName(aColName) >>= xColumn)
{
OSL_ENSURE(xColumn.is(),"Column isn't a propertyset!");
aTableRange = aIter->first;
aTableRange = table.first;
break;
}
}
......@@ -1644,8 +1641,8 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns> co
if(rColumnName.toChar() == '*' && rTableRange.isEmpty())
{ // SELECT * ...
OSL_ENSURE(_rColumns == m_aSelectColumns,"Invalid columns used here!");
for(OSQLTables::const_iterator aIter = m_pImpl->m_pTables->begin(); aIter != m_pImpl->m_pTables->end();++aIter)
appendColumns(_rColumns,aIter->first,aIter->second);
for (auto const& table : *m_pImpl->m_pTables)
appendColumns(_rColumns,table.first,table.second);
}
else if( rColumnName.toChar() == '*' && !rTableRange.isEmpty() )
{ // SELECT <table>.*
......@@ -1662,12 +1659,12 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns> co
{
Reference< XPropertySet> xNewColumn;
for ( OSQLTables::const_iterator aIter = m_pImpl->m_pTables->begin(); aIter != m_pImpl->m_pTables->end(); ++aIter )
for (auto const& table : *m_pImpl->m_pTables)
{
if ( !aIter->second.is() )
if ( !table.second.is() )
continue;
Reference<XNameAccess> xColumns = aIter->second->getColumns();
Reference<XNameAccess> xColumns = table.second->getColumns();
Reference< XPropertySet > xColumn;
if ( !xColumns->hasByName( rColumnName )
|| !( xColumns->getByName( rColumnName ) >>= xColumn )
......@@ -1678,7 +1675,7 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns> co
OParseColumn* pColumn = new OParseColumn(xColumn,isCaseSensitive());
xNewColumn = pColumn;
pColumn->setTableName(aIter->first);
pColumn->setTableName(table.first);
pColumn->setName(aNewColName);
pColumn->setRealName(rColumnName);
......@@ -1989,11 +1986,9 @@ const OSQLParseNode* OSQLParseTreeIterator::getSimpleHavingTree() const
Reference< XPropertySet > OSQLParseTreeIterator::findSelectColumn( const OUString & rColumnName )
{
for ( OSQLColumns::Vector::const_iterator lookupColumn = m_aSelectColumns->get().begin();
lookupColumn != m_aSelectColumns->get().end();
++lookupColumn )
for (auto const& lookupColumn : m_aSelectColumns->get())
{
Reference< XPropertySet > xColumn( *lookupColumn );
Reference< XPropertySet > xColumn( lookupColumn );
try
{
OUString sName;
......@@ -2034,16 +2029,15 @@ Reference< XPropertySet > OSQLParseTreeIterator::findColumn(const OSQLTables& _r
}
if ( !xColumn.is() )
{
const OSQLTables::const_iterator aEnd = _rTables.end();
for(OSQLTables::const_iterator aIter = _rTables.begin(); aIter != aEnd; ++aIter)
for (auto const& table : _rTables)
{
if ( aIter->second.is() )
if ( table.second.is() )
{
Reference<XNameAccess> xColumns = aIter->second->getColumns();
Reference<XNameAccess> xColumns = table.second->getColumns();
if( xColumns.is() && xColumns->hasByName(rColumnName) && (xColumns->getByName(rColumnName) >>= xColumn) )
{
OSL_ENSURE(xColumn.is(),"Column isn't a propertyset!");
// Cannot take "rTableRange = aIter->first" because that is the fully composed name
// Cannot take "rTableRange = table.first" because that is the fully composed name
// that is, catalogName.schemaName.tableName
rTableRange = getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME)));
break; // This column must only exits once
......
......@@ -1625,9 +1625,8 @@ OSQLParseNode::OSQLParseNode(const OSQLParseNode& rParseNode)
// created and reattached instead of the old pointer.
// If not a leaf, then process SubTrees
for (OSQLParseNodes::const_iterator i = rParseNode.m_aChildren.begin();
i != rParseNode.m_aChildren.end(); ++i)
append(new OSQLParseNode(**i));
for (auto const& child : rParseNode.m_aChildren)
append(new OSQLParseNode(*child));
}
......@@ -1640,15 +1639,13 @@ OSQLParseNode& OSQLParseNode::operator=(const OSQLParseNode& rParseNode)
m_eNodeType = rParseNode.m_eNodeType;
m_nNodeID = rParseNode.m_nNodeID;
for (OSQLParseNodes::const_iterator i = m_aChildren.begin();
i != m_aChildren.end(); ++i)
delete *i;
for (auto const& child : m_aChildren)
delete child;
m_aChildren.clear();
for (OSQLParseNodes::const_iterator j = rParseNode.m_aChildren.begin();
j != rParseNode.m_aChildren.end(); ++j)
append(new OSQLParseNode(**j));
for (auto const& child : rParseNode.m_aChildren)
append(new OSQLParseNode(*child));
}
return *this;
}
......@@ -1675,9 +1672,8 @@ bool OSQLParseNode::operator==(OSQLParseNode const & rParseNode) const
OSQLParseNode::~OSQLParseNode()
{
for (OSQLParseNodes::const_iterator i = m_aChildren.begin();
i != m_aChildren.end(); ++i)
delete *i;
for (auto const& child : m_aChildren)
delete child;
m_aChildren.clear();
}
......@@ -1771,9 +1767,12 @@ OSQLParseNode* OSQLParseNode::getByRule(OSQLParseNode::Rule eRule) const
pRetNode = const_cast<OSQLParseNode*>(this);
else
{
for (OSQLParseNodes::const_iterator i = m_aChildren.begin();
!pRetNode && i != m_aChildren.end(); ++i)
pRetNode = (*i)->getByRule(eRule);
for (auto const& child : m_aChildren)
{
pRetNode = child->getByRule(eRule);
if (pRetNode)
break;
}
}
return pRetNode;
}
......@@ -2274,11 +2273,8 @@ void OSQLParseNode::showParseTree( OUStringBuffer& _inout_rBuffer, sal_uInt32 nL
_inout_rBuffer.append( '\n' );
// Get the first sub tree
for ( OSQLParseNodes::const_iterator i = m_aChildren.begin();
i != m_aChildren.end();
++i
)
(*i)->showParseTree( _inout_rBuffer, nLevel+1 );
for (auto const& child : m_aChildren)
child->showParseTree( _inout_rBuffer, nLevel+1 );
}
else
{
......
......@@ -107,8 +107,8 @@ namespace
OSL_ENSURE(!m_aNameMap.size(),"OCollection::reFill: collection isn't empty");
m_aElements.reserve(_rVector.size());
for(::std::vector< OUString>::const_iterator i=_rVector.begin(); i != _rVector.end();++i)
m_aElements.push_back(m_aNameMap.insert(m_aNameMap.begin(), ObjectEntry(*i,ObjectType())));
for (auto const& elem : _rVector)
m_aElements.push_back(m_aNameMap.insert(m_aNameMap.begin(), ObjectEntry(elem,ObjectType())));
}
virtual bool rename(const OUString& _sOldName, const OUString& _sNewName) override
......@@ -165,13 +165,13 @@ namespace
virtual void disposeElements() override
{
for( ObjectIter aIter = m_aNameMap.begin(); aIter != m_aNameMap.end(); ++aIter)
for (auto & name : m_aNameMap)
{
Reference<XComponent> xComp(aIter->second.get(),UNO_QUERY);
Reference<XComponent> xComp(name.second.get(),UNO_QUERY);
if ( xComp.is() )
{
::comphelper::disposeComponent(xComp);
(*aIter).second = T();
name.second = T();
}
}
m_aElements.clear();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment