package org.jbehave.eclipse.util; import java.util.List; public class Lists { public static <T> List<T> toList(Iterable<T> values) { List<T> list = New.arrayList(); for(T value : values) list.add(value); return list; } public static <T> List<T> filter(List<T> elems, Filter<T> filter) { List<T> list = New.arrayList(); for(T elem : elems) if(filter.isAccepted(elem)) list.add(elem); return list; } public static <T, R> List<T> filterTransformed(List<T> elems, Transform<T,R> transform, Filter<R> filter) { List<T> list = New.arrayList(); for(T elem : elems) if(filter.isAccepted(transform.transform(elem))) list.add(elem); return list; } public static <T, R> List<R> transformAndFilter(List<T> elems, Transform<T,R> transform, Filter<R> filter) { List<R> list = New.arrayList(); for(T elem : elems) { R t = transform.transform(elem); if(filter.isAccepted(t)) list.add(t); } return list; } public static <T, R> List<R> transform(List<T> elems, Transform<T,R> transform) { List<R> list = New.arrayList(); for(T elem : elems) { R t = transform.transform(elem); list.add(t); } return list; } }