package cn.jimmyshi.beanquery.selectors; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import cn.jimmyshi.beanquery.Selector; /** * Selector that implemented the select(List<?> from) methods. */ public abstract class DefaultSelector<T> implements Selector<T> { private transient Logger logger = LoggerFactory.getLogger(DefaultSelector.class); @Override public List<T> select(List<?> from) { if (CollectionUtils.isEmpty(from)) { logger.info("The from collection is empty, returning empty List"); return Collections.emptyList(); } return doSelect(from); } protected List<T> doSelect(List<?> notEmptyFrom) { List<T> result = new ArrayList<T>(notEmptyFrom.size()); for (Object item : notEmptyFrom) { result.add(select(item)); } return result; } }