Search in sources :

Example 6 with ArrayPro

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;
}
Also used : Entry(java.util.Map.Entry) Iterator(java.util.Iterator) ListIterator(java.util.ListIterator) ForEachQueryIterator(lucee.runtime.type.it.ForEachQueryIterator) ArrayPro(lucee.runtime.type.ArrayPro)

Example 7 with ArrayPro

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);
    }
}
Also used : Array(lucee.runtime.type.Array) Entry(java.util.Map.Entry) ListIterator(java.util.ListIterator) ForEachQueryIterator(lucee.runtime.type.it.ForEachQueryIterator) Iterator(java.util.Iterator) ArrayPro(lucee.runtime.type.ArrayPro)

Example 8 with ArrayPro

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;
}
Also used : Array(lucee.runtime.type.Array) Entry(java.util.Map.Entry) ArrayImpl(lucee.runtime.type.ArrayImpl) ListIterator(java.util.ListIterator) ForEachQueryIterator(lucee.runtime.type.it.ForEachQueryIterator) Iterator(java.util.Iterator) ArrayPro(lucee.runtime.type.ArrayPro)

Example 9 with ArrayPro

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;
}
Also used : Array(lucee.runtime.type.Array) Entry(java.util.Map.Entry) ArrayImpl(lucee.runtime.type.ArrayImpl) ListIterator(java.util.ListIterator) ForEachQueryIterator(lucee.runtime.type.it.ForEachQueryIterator) Iterator(java.util.Iterator) ArrayPro(lucee.runtime.type.ArrayPro)

Example 10 with ArrayPro

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;
}
Also used : Array(lucee.runtime.type.Array) Entry(java.util.Map.Entry) Iterator(java.util.Iterator) ListIterator(java.util.ListIterator) ForEachQueryIterator(lucee.runtime.type.it.ForEachQueryIterator) ArrayPro(lucee.runtime.type.ArrayPro)

Aggregations

Iterator (java.util.Iterator)12 ListIterator (java.util.ListIterator)12 Entry (java.util.Map.Entry)12 ArrayPro (lucee.runtime.type.ArrayPro)12 ForEachQueryIterator (lucee.runtime.type.it.ForEachQueryIterator)12 Array (lucee.runtime.type.Array)8 ArrayImpl (lucee.runtime.type.ArrayImpl)4 KeyImpl (lucee.runtime.type.KeyImpl)1