mirror of https://github.com/Icinga/icinga2.git
Array: Move Join into the base class, available for programmers
This commit is contained in:
parent
d4393b6d54
commit
38b7f10e0e
|
@ -107,22 +107,7 @@ static Value ArrayJoin(const Value& separator)
|
|||
ScriptFrame *vframe = ScriptFrame::GetCurrentFrame();
|
||||
Array::Ptr self = static_cast<Array::Ptr>(vframe->Self);
|
||||
REQUIRE_NOT_NULL(self);
|
||||
|
||||
Value result;
|
||||
bool first = true;
|
||||
|
||||
ObjectLock olock(self);
|
||||
for (const Value& item : self) {
|
||||
if (first) {
|
||||
first = false;
|
||||
} else {
|
||||
result = result + separator;
|
||||
}
|
||||
|
||||
result = result + item;
|
||||
}
|
||||
|
||||
return result;
|
||||
return self->Join(separator);
|
||||
}
|
||||
|
||||
static Array::Ptr ArrayReverse()
|
||||
|
|
|
@ -297,6 +297,26 @@ String Array::ToString() const
|
|||
return msgbuf.str();
|
||||
}
|
||||
|
||||
Value Array::Join(const Value& separator) const
|
||||
{
|
||||
Value result;
|
||||
bool first = true;
|
||||
|
||||
ObjectLock olock(this);
|
||||
|
||||
for (const Value& item : m_Data) {
|
||||
if (first) {
|
||||
first = false;
|
||||
} else {
|
||||
result = result + separator;
|
||||
}
|
||||
|
||||
result = result + item;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Array::Ptr Array::Unique() const
|
||||
{
|
||||
std::set<Value> result;
|
||||
|
|
|
@ -94,6 +94,7 @@ public:
|
|||
void Sort(bool overrideFrozen = false);
|
||||
|
||||
String ToString() const override;
|
||||
Value Join(const Value& separator) const;
|
||||
|
||||
Array::Ptr Unique() const;
|
||||
void Freeze();
|
||||
|
|
Loading…
Reference in New Issue