1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 package cz.cuni.amis.utils; 6 7 import java.util.ArrayList; 8 import java.util.Collection; 9 import java.util.List; 10 11 /** 12 * Usefull for queriing sets of objects with some common property. 13 * Itarates all elements in the collection and returns 14 * @author Ik 15 */ 16 public abstract class Query<T> { 17 18 protected abstract boolean filter(T o); 19 20 public List<T> query(Collection<T> collection) { 21 List<T> result = new ArrayList<T>(); 22 for (T o : collection) { 23 if (filter(o)) { 24 result.add(o); 25 } 26 } 27 return result; 28 } 29 }