boon/src/main/java/org/boon/criteria/Selector.java
public static <ITEM> List<Map<String, Object>> selectFrom(List<Selector> selectors, Collection<ITEM> results, Map<String, FieldAccess> fields) {
        List<Map<String, Object>> rows = new ArrayList<>( results.size() );


        for ( Selector s : selectors ) {
            s.handleStart( results );
        }


        int index = 0;
        for ( ITEM item : results ) {
            Map<String, Object> row = new LinkedHashMap<>();
            for ( Selector s : selectors ) {
                s.handleRow( index, row, item, fields );
            }
            index++;
            rows.add( row );
        }

        for ( Selector s : selectors ) {
            s.handleComplete( rows );
        }

        return rows;
    }
public static <ITEM> List<Map<String, Object>> selectFrom(List<Selector> selectors, Collection<ITEM> results, Map<String, FieldAccess> fields) {
        List<Map<String, Object>> rows = new ArrayList<>( results.size() );


        for ( Selector s : selectors ) {
            s.handleStart( results );
        }


        int index = 0;
        for ( ITEM item : results ) {
            Map<String, Object> row = new LinkedHashMap<>();
            for ( Selector s : selectors ) {
                s.handleRow( index, row, item, fields );
            }
            index++;
            rows.add( row );
        }

        for ( Selector s : selectors ) {
            s.handleComplete( rows );
        }

        return rows;
    }
public static < ITEM > List < Map < String , Object > > selectFrom ( List < Selector > selectors , Collection < ITEM > results , Map < String , FieldAccess > fields ) { List < Map < String , Object > > rows = new ArrayList <> ( results . size ( ) ) ; for ( Selector s : selectors ) { s . handleStart ( results ) ; } int index = 0 ; for ( ITEM item : results ) { Map < String , Object > row = new LinkedHashMap <> ( ) ; for ( Selector s : selectors ) { s . handleRow ( index , row , item , fields ) ; } index ++ ; rows . add ( row ) ; } for ( Selector s : selectors ) { s . handleComplete ( rows ) ; } return rows ; }
Performs the actual selection from the results.
@param selectors list of selectors
@param results results we are selecting from
@param fields fields
@param <ITEM> List of items
@return map of selected items per row
Performs the actual selection from the results .