meaningless comment
[ephemerata.git] / KezvhLib / src-lib / net / kezvh / collections / views / ConditionalCollectionView.java
blobfc95ebd000eb7cad505e0c3e634dec9713db4d1b
1 /**
3 */
4 package net.kezvh.collections.views;
6 import java.util.AbstractCollection;
7 import java.util.Collection;
8 import java.util.Iterator;
10 import net.kezvh.functional.Operations;
11 import net.kezvh.functional.lambda.L1;
13 /**
14 * @author afflux
16 * @param <E> collection element type
18 public class ConditionalCollectionView<E> extends AbstractCollection<E> {
19 private final Collection<? extends E> innerCollection;
20 private final L1<Boolean, ? super E> filter;
22 /**
23 * @param predicate condition
24 * @param innerCollection original elements
26 public ConditionalCollectionView(final L1<Boolean, ? super E> predicate, final Collection<? extends E> innerCollection) {
27 super();
28 this.filter = predicate;
29 this.innerCollection = innerCollection;
32 /**
33 * @see java.util.AbstractCollection#iterator()
34 * @return iterator
36 @Override
37 public Iterator<E> iterator() {
38 return new ConditionalIteratorView<E>(this.filter, this.innerCollection.iterator());
41 /**
42 * @see java.util.AbstractCollection#size()
43 * @return the size of the collection
45 @Override
46 public int size() {
47 return Operations.ITERATOR_COUNT.op(this.iterator());