mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-29 00:24:23 +02:00
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();
|
ScriptFrame *vframe = ScriptFrame::GetCurrentFrame();
|
||||||
Array::Ptr self = static_cast<Array::Ptr>(vframe->Self);
|
Array::Ptr self = static_cast<Array::Ptr>(vframe->Self);
|
||||||
REQUIRE_NOT_NULL(self);
|
REQUIRE_NOT_NULL(self);
|
||||||
|
return self->Join(separator);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Array::Ptr ArrayReverse()
|
static Array::Ptr ArrayReverse()
|
||||||
|
@ -297,6 +297,26 @@ String Array::ToString() const
|
|||||||
return msgbuf.str();
|
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
|
Array::Ptr Array::Unique() const
|
||||||
{
|
{
|
||||||
std::set<Value> result;
|
std::set<Value> result;
|
||||||
|
@ -94,6 +94,7 @@ public:
|
|||||||
void Sort(bool overrideFrozen = false);
|
void Sort(bool overrideFrozen = false);
|
||||||
|
|
||||||
String ToString() const override;
|
String ToString() const override;
|
||||||
|
Value Join(const Value& separator) const;
|
||||||
|
|
||||||
Array::Ptr Unique() const;
|
Array::Ptr Unique() const;
|
||||||
void Freeze();
|
void Freeze();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user