Merge pull request #121 from fbraem/develop

MongoDB: Avoid endless loop when indent is set to 1, cleanup code
This commit is contained in:
Aleksandar Fabijanic 2013-03-09 15:09:21 -08:00
Родитель 727e3cd28d c6d53a0608
Коммит b915a4c4ec
2 изменённых файлов: 25 добавлений и 49 удалений

Просмотреть файл

@ -61,38 +61,29 @@ Element::Ptr Array::get(int pos) const
std::string Array::toString(int indent) const
{
std::ostringstream oss;
oss << "[";
if ( indent > 0 )
{
oss << std::endl;
}
if ( indent > 0 ) oss << std::endl;
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
{
if ( it != _elements.begin() )
{
oss << ",";
if ( indent > 0 )
{
oss << std::endl;
}
if ( indent > 0 ) oss << std::endl;
}
for(int i = 0; i < indent; ++i)
{
oss << ' ';
}
for(int i = 0; i < indent; ++i) oss << ' ';
oss << (*it)->toString();
}
if ( indent > 0 )
{
oss << std::endl;
indent -= 2;
for(int i = 0; i < indent; ++i)
{
oss << ' ';
}
if ( indent >= 2 ) indent -= 2;
for(int i = 0; i < indent; ++i) oss << ' ';
}
oss << "]";

Просмотреть файл

@ -151,51 +151,36 @@ std::string Document::toString(int indent) const
{
std::ostringstream oss;
oss << "{";
if ( indent > 0 )
{
oss << std::endl;
}
oss << '{';
if ( indent > 0 ) oss << std::endl;
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
{
if ( it != _elements.begin() )
{
oss << ",";
if ( indent > 0 )
{
oss << std::endl;
}
}
if ( indent > 0 )
{
for(int i = 0; i < indent; ++i)
{
oss << ' ';
}
}
oss << '"' << (*it)->name() << '"' << " : ";
if ( indent > 0 )
{
oss << (*it)->toString(indent + 2);
}
else
{
oss << (*it)->toString();
oss << ',';
if ( indent > 0 ) oss << std::endl;
}
for(int i = 0; i < indent; ++i) oss << ' ';
oss << '"' << (*it)->name() << '"';
oss << (( indent > 0 ) ? " : " : ":");
oss << (*it)->toString(indent > 0 ? indent + 2 : 0);
}
if ( indent > 0 )
{
oss << std::endl;
indent -= 2;
for(int i = 0; i < indent; ++i)
{
oss << ' ';
}
if ( indent >= 2 ) indent -= 2;
for(int i = 0; i < indent; ++i) oss << ' ';
}
oss << "}";
oss << '}';
return oss.str();
}