use of lucee.runtime.type.ArrayPro in project Lucee by lucee.
the class Reduce method invoke.
private static Object invoke(PageContext pc, Array arr, UDF udf, Object initalValue) throws CasterException, PageException {
Iterator it = (arr instanceof ArrayPro ? ((ArrayPro) arr).entryArrayIterator() : arr.entryIterator());
Entry e;
while (it.hasNext()) {
e = (Entry) it.next();
initalValue = udf.call(pc, new Object[] { initalValue, e.getValue(), Caster.toDoubleValue(e.getKey()), arr }, true);
}
return initalValue;
}
use of lucee.runtime.type.ArrayPro in project Lucee by lucee.
the class Each method invoke.
private static void invoke(PageContext pc, StringListData sld, UDF udf, ExecutorService execute, List<Future<Data<Object>>> futures) throws PageException {
Array arr = ListUtil.listToArray(sld.list, sld.delimiter, sld.includeEmptyFieldsx, sld.multiCharacterDelimiter);
Iterator it = (arr instanceof ArrayPro ? ((ArrayPro) arr).entryArrayIterator() : arr.entryIterator());
Entry e;
while (it.hasNext()) {
e = (Entry) it.next();
_call(pc, udf, new Object[] { e.getValue(), Caster.toDoubleValue(e.getKey()), sld.list, sld.delimiter }, execute, futures);
}
}
use of lucee.runtime.type.ArrayPro in project Lucee by lucee.
the class Filter method invoke.
private static Collection invoke(PageContext pc, Array arr, UDF udf, ExecutorService es, List<Future<Data<Pair<Object, Object>>>> futures) throws CasterException, PageException {
Array rtn = new ArrayImpl();
boolean async = es != null;
Iterator it = (arr instanceof ArrayPro ? ((ArrayPro) arr).entryArrayIterator() : arr.entryIterator());
Entry e;
Object res;
while (it.hasNext()) {
e = (Entry) it.next();
res = _inv(pc, udf, new Object[] { e.getValue(), Caster.toDoubleValue(e.getKey()), arr }, e.getKey(), e.getValue(), es, futures);
if (!async && Caster.toBooleanValue(res)) {
rtn.append(e.getValue());
}
}
return rtn;
}
use of lucee.runtime.type.ArrayPro in project Lucee by lucee.
the class Map method invoke.
private static Collection invoke(PageContext pc, StringListData sld, UDF udf, ExecutorService es, List<Future<Data<Object>>> futures) throws CasterException, PageException {
Array arr = ListUtil.listToArray(sld.list, sld.delimiter, sld.includeEmptyFieldsx, sld.multiCharacterDelimiter);
Array rtn = new ArrayImpl();
Iterator it = (arr instanceof ArrayPro ? ((ArrayPro) arr).entryArrayIterator() : arr.entryIterator());
Entry e;
boolean async = es != null;
Object res;
while (it.hasNext()) {
e = (Entry) it.next();
res = _inv(pc, udf, new Object[] { e.getValue(), Caster.toDoubleValue(e.getKey()), sld.list, sld.delimiter }, e.getKey(), es, futures);
if (!async)
rtn.set(Caster.toString(e.getKey()), res);
}
return rtn;
}
use of lucee.runtime.type.ArrayPro in project Lucee by lucee.
the class Reduce method invoke.
private static Object invoke(PageContext pc, StringListData sld, UDF udf, Object initalValue) throws CasterException, PageException {
Array arr = ListUtil.listToArray(sld.list, sld.delimiter, sld.includeEmptyFieldsx, sld.multiCharacterDelimiter);
Iterator it = (arr instanceof ArrayPro ? ((ArrayPro) arr).entryArrayIterator() : arr.entryIterator());
Entry e;
while (it.hasNext()) {
e = (Entry) it.next();
initalValue = udf.call(pc, new Object[] { initalValue, e.getValue(), Caster.toDoubleValue(e.getKey()), sld.list, sld.delimiter }, true);
}
return initalValue;
}
Aggregations