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::string Array::toString(int indent) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
oss << "[";
|
oss << "[";
|
||||||
if ( indent > 0 )
|
|
||||||
{
|
if ( indent > 0 ) oss << std::endl;
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
||||||
{
|
{
|
||||||
if ( it != _elements.begin() )
|
if ( it != _elements.begin() )
|
||||||
{
|
{
|
||||||
oss << ",";
|
oss << ",";
|
||||||
if ( indent > 0 )
|
if ( indent > 0 ) oss << std::endl;
|
||||||
{
|
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < indent; ++i)
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
{
|
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
oss << (*it)->toString();
|
oss << (*it)->toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( indent > 0 )
|
if ( indent > 0 )
|
||||||
{
|
{
|
||||||
oss << std::endl;
|
oss << std::endl;
|
||||||
indent -= 2;
|
if ( indent >= 2 ) indent -= 2;
|
||||||
for(int i = 0; i < indent; ++i)
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
{
|
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
oss << "]";
|
oss << "]";
|
||||||
|
|
|
@ -151,51 +151,36 @@ std::string Document::toString(int indent) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
oss << "{";
|
oss << '{';
|
||||||
if ( indent > 0 )
|
|
||||||
{
|
if ( indent > 0 ) oss << std::endl;
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
||||||
{
|
{
|
||||||
if ( it != _elements.begin() )
|
if ( it != _elements.begin() )
|
||||||
{
|
{
|
||||||
oss << ",";
|
oss << ',';
|
||||||
if ( indent > 0 )
|
if ( indent > 0 ) oss << std::endl;
|
||||||
{
|
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 )
|
if ( indent > 0 )
|
||||||
{
|
{
|
||||||
oss << std::endl;
|
oss << std::endl;
|
||||||
indent -= 2;
|
if ( indent >= 2 ) indent -= 2;
|
||||||
for(int i = 0; i < indent; ++i)
|
|
||||||
{
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
oss << "}";
|
oss << '}';
|
||||||
|
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче