From: <mar...@us...> - 2010-09-29 11:16:22
|
Revision: 3673 http://bigdata.svn.sourceforge.net/bigdata/?rev=3673&view=rev Author: martyncutcher Date: 2010-09-29 11:16:15 +0000 (Wed, 29 Sep 2010) Log Message: ----------- Process child filters prior to calling filterOnce for more intuitive initialization Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/filter/BOpFilterBase.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/filter/TupleFilter.java branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/E.java branches/QUADS_QUERY_BRANCH/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/filter/BOpFilterBase.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/filter/BOpFilterBase.java 2010-09-28 23:39:42 UTC (rev 3672) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/ap/filter/BOpFilterBase.java 2010-09-29 11:16:15 UTC (rev 3673) @@ -80,9 +80,6 @@ final public Iterator filter(Iterator src, final Object context) { - // wrap src with _this_ filter. - src = filterOnce(src, context); - // wrap source with each additional filter from the filter chain. for (BOp arg : args()) { @@ -90,6 +87,9 @@ } + // wrap src with _this_ filter. + src = filterOnce(src, context); + return src; } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/filter/TupleFilter.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/filter/TupleFilter.java 2010-09-28 23:39:42 UTC (rev 3672) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/filter/TupleFilter.java 2010-09-29 11:16:15 UTC (rev 3673) @@ -82,9 +82,15 @@ return new TupleFilter.TupleFilterator((ITupleIterator) src, context, this); } +/* + public Iterator filterOnce(Iterator src, Object context) { - abstract protected boolean isValid(ITuple<E> tuple); + return new TupleFilter.Filterator((ITupleIterator) src); + } +*/ + abstract protected boolean isValid(ITuple<E> tuple); + /** * Implementation class knows how to avoid side-effects from the reuse of * the same {@link Tuple} instance by the base {@link ITupleIterator} impls. Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/E.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/E.java 2010-09-28 23:39:42 UTC (rev 3672) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/E.java 2010-09-29 11:16:15 UTC (rev 3673) @@ -89,4 +89,8 @@ return true; } + public int hashCode() { + return name.hashCode() + value.hashCode(); + } + } Modified: branches/QUADS_QUERY_BRANCH/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java =================================================================== --- branches/QUADS_QUERY_BRANCH/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java 2010-09-28 23:39:42 UTC (rev 3672) +++ branches/QUADS_QUERY_BRANCH/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java 2010-09-29 11:16:15 UTC (rev 3673) @@ -108,14 +108,17 @@ } final public Iterator filter(Iterator src, final Object context) { - // wrap src with _this_ filter. - src = filterOnce(src, context); + // makes most sense to consider the filterchain as preprocessing the + // src prior to application of this filter. if (filterChain != null) { // wrap source with each additional filter from the filter chain. for (IFilter filter : filterChain) { src = filter.filter(src, context); } } + + // wrap src with _this_ filter. + src = filterOnce(src, context); return src; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |