/*
* Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org
* Use is subject to license terms. See license.txt.
*/
// TODO javadoc - remove this comment only when the class and all non-public
// methods and fields are documented
package org.beanfabrics.util;
import java.util.Iterator;
import org.beanfabrics.model.PresentationModel;
import org.beanfabrics.model.PresentationModelFilter;
/**
* The <code>FilteredModels</code> is an filtered decorator of an Iterable
* object of presentation models.
*
* @author Michael Karneim
*/
public class FilteredModels implements Iterable<PresentationModel> {
private final Iterable<PresentationModel> delegate;
private final PresentationModelFilter filter;
public FilteredModels(Iterable<PresentationModel> iterable, PresentationModelFilter filter) {
if (iterable == null) {
throw new IllegalArgumentException("iterable==null");
}
this.delegate = iterable;
this.filter = filter; // null is allowed
}
public Iterator<PresentationModel> iterator() {
return new FilteredModelsIterator(delegate.iterator(), filter);
}
}