Merge pull request #121 from fbraem/develop
MongoDB: Avoid endless loop when indent is set to 1, cleanup code
This commit is contained in:
Коммит
b915a4c4ec
|
@ -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();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче