commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruno P. Kinoshita" <brunodepau...@yahoo.com.br>
Subject Re: svn commit: r1439683 - in /commons/proper/functor/branches/FUNCTOR-14-mm/core/src: main/java/org/apache/commons/functor/core/algorithm/ main/java/org/apache/commons/functor/generator/ main/java/org/apache/commons/functor/generator/loop/ main/java/org/a...
Date Tue, 29 Jan 2013 11:55:04 GMT
Maybe oac.generator.predicated? 
 
Bruno P. Kinoshita
http://kinoshita.eti.br
http://tupilabs.com


----- Original Message -----
> From: Matt Benson <gudnabrsam@gmail.com>
> To: Commons Developers List <dev@commons.apache.org>; Bruno P. Kinoshita <brunodepaulak@yahoo.com.br>
> Cc: 
> Sent: Tuesday, January 29, 2013 12:25 AM
> Subject: Re: svn commit: r1439683 - in /commons/proper/functor/branches/FUNCTOR-14-mm/core/src: main/java/org/apache/commons/functor/core/algorithm/ main/java/org/apache/commons/functor/generator/ main/java/org/apache/commons/functor/generator/loop/ main/java/org/a...
> 
> Hmm, I'm struggling with the package name.  oacf.generator.flow?  I wonder
> if we should just merge this package back into oacf.generator.
> 
> Matt
> 
> 
> On Mon, Jan 28, 2013 at 8:15 PM, Matt Benson <gudnabrsam@gmail.com> wrote:
> 
>>  I think so, yes.  :)  Knew there was something I forgot!
>> 
>>  Matt
>> 
>> 
>>  On Mon, Jan 28, 2013 at 7:23 PM, Bruno P. Kinoshita <
>>  brunodepaulak@yahoo.com.br> wrote:
>> 
>>>  Thanks Matt! The name is more intuitive now. What about the package 
> name?
>>>  Should we rename it as well?
>>> 
>>>  Cheers,
>>> 
>>>  Bruno P. Kinoshita
>>>  http://kinoshita.eti.br
>>>  http://tupilabs.com
>>> 
>>> 
>>>  ----- Original Message -----
>>>  > From: "mbenson@apache.org" <mbenson@apache.org>
>>>  > To: commits@commons.apache.org
>>>  > Cc:
>>>  > Sent: Monday, January 28, 2013 8:49 PM
>>>  > Subject: svn commit: r1439683 - in
>>>  /commons/proper/functor/branches/FUNCTOR-14-mm/core/src:
>>>  main/java/org/apache/commons/functor/core/algorithm/
>>>  main/java/org/apache/commons/functor/generator/
>>>  main/java/org/apache/commons/functor/generator/loop/ main/java/org/a...
>>>  >
>>>  > Author: mbenson
>>>  > Date: Mon Jan 28 22:49:36 2013
>>>  > New Revision: 1439683
>>>  >
>>>  > URL: http://svn.apache.org/viewvc?rev=1439683&view=rev
>>>  > Log:
>>>  > refactor LoopGenerator to PredicatedGenerator
>>>  >
>>>  > Added:
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/PredicatedGenerator.java
>>>  >       - copied, changed from r1439123,
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/LoopGenerator.java
>>>  > Removed:
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/LoopGenerator.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestLoopGenerator.java
>>>  > Modified:
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateUntil.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateWhile.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/IteratorToGeneratorAdapter.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/TransformedGenerator.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/UntilGenerate.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/WhileGenerate.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/CharacterRange.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/NumericRange.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/TestAlgorithms.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/example/lines/Lines.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateUntil.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateWhile.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestTransformedGenerator.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestUntilGenerate.java
>>>  >
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestWhileGenerate.java
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -21,17 +21,19 @@ import java.io.Serializable;
>>>  > import org.apache.commons.functor.BinaryFunction;
>>>  > import org.apache.commons.functor.UnaryPredicate;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > -import org.apache.commons.functor.generator.loop.LoopGenerator;
>>>  > +import org.apache.commons.functor.generator.Generator;
>>>  > +import 
> org.apache.commons.functor.generator.loop.PredicatedGenerator;
>>>  > +import org.apache.commons.functor.generator.loop.UntilGenerate;
>>>  >
>>>  > /**
>>>  > - * Return the index of the first Object in a {@link 
> LoopGenerator}
>>>  matching a
>>>  > + * Return the index of the first Object in a {@link
>>>  PredicatedGenerator}
>>>  > matching a
>>>  >   * {@link UnaryPredicate}, or -1 if not found.
>>>  >   *
>>>  >   * @param <T> the procedure argument types
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > public final class IndexOfInGenerator<T>
>>>  > -    implements BinaryFunction<LoopGenerator<? extends 
> T>,
>>>  > UnaryPredicate<? super T>, Number>, Serializable {
>>>  > +    implements BinaryFunction<Generator<? extends T>,
>>>  > UnaryPredicate<? super T>, Number>, Serializable {
>>>  >      /**
>>>  >       * serialVersionUID declaration.
>>>  >       */
>>>  > @@ -48,42 +50,14 @@ public final class IndexOfInGenerator<T>
>>>  >       */
>>>  >      private static class IndexProcedure<T> implements
>>>  > UnaryProcedure<T> {
>>>  >          /**
>>>  > -         * The wrapped generator.
>>>  > -         */
>>>  > -        private final LoopGenerator<? extends T> generator;
>>>  > -        /**
>>>  > -         * The wrapped predicate.
>>>  > -         */
>>>  > -        private final UnaryPredicate<? super T> pred;
>>>  > -        /**
>>>  > -         * The number of iterations needed before the wrapped
>>>  predicate found
>>>  > the target,
>>>  > -         * {@code -1} means the target was not found.
>>>  > -         */
>>>  > -        private long index = -1L;
>>>  > -        /**
>>>  >           * A local accumulator to increment the number of 
> attempts.
>>>  >           */
>>>  >          private long current = 0L;
>>>  >
>>>  >          /**
>>>  > -         * Create a new IndexProcedure.
>>>  > -         *
>>>  > -         * @param generator The wrapped generator
>>>  > -         * @param pred The wrapped predicate
>>>  > -         */
>>>  > -        IndexProcedure(LoopGenerator<? extends T> 
> generator,
>>>  > UnaryPredicate<? super T> pred) {
>>>  > -            this.generator = generator;
>>>  > -            this.pred = pred;
>>>  > -        }
>>>  > -
>>>  > -        /**
>>>  >           * {@inheritDoc}
>>>  >           */
>>>  >          public void run(T obj) {
>>>  > -            if (index < 0 && pred.test(obj)) {
>>>  > -                index = current;
>>>  > -                generator.stop();
>>>  > -            }
>>>  >              current++;
>>>  >          }
>>>  >      }
>>>  > @@ -93,10 +67,10 @@ public final class IndexOfInGenerator<T>
>>>  >       * @param left Generator
>>>  >       * @param right UnaryPredicate
>>>  >       */
>>>  > -    public Number evaluate(LoopGenerator<? extends T> left,
>>>  > UnaryPredicate<? super T> right) {
>>>  > -        IndexProcedure<T> findProcedure = new
>>>  > IndexProcedure<T>(left, right);
>>>  > -        left.run(findProcedure);
>>>  > -        return Long.valueOf(findProcedure.index);
>>>  > +    public Number evaluate(Generator<? extends T> left,
>>>  > UnaryPredicate<? super T> right) {
>>>  > +        final IndexProcedure<T> findProcedure = new
>>>  > IndexProcedure<T>();
>>>  > +        new UntilGenerate<T>(right, 
> left).run(findProcedure);
>>>  > +        return Long.valueOf(findProcedure.current);
>>>  >      }
>>>  >
>>>  >      /**
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -29,8 +29,10 @@ import org.apache.commons.functor.genera
>>>  >   */
>>>  > public abstract class BaseGenerator<E> implements 
> Generator<E> {
>>>  >
>>>  > -    /** Create a new generator. */
>>>  > -    public BaseGenerator() {
>>>  > +    /**
>>>  > +     * Create a new BaseGenerator instance.
>>>  > +     */
>>>  > +    protected BaseGenerator() {
>>>  >          super();
>>>  >      }
>>>  >
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateUntil.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateUntil.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateUntil.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateUntil.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -18,6 +18,7 @@ package org.apache.commons.functor.gener
>>>  >
>>>  > import org.apache.commons.functor.UnaryPredicate;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > +import org.apache.commons.functor.core.composite.UnaryNot;
>>>  > import org.apache.commons.functor.generator.Generator;
>>>  > import org.apache.commons.lang3.Validate;
>>>  >
>>>  > @@ -28,12 +29,7 @@ import org.apache.commons.lang3.Validate
>>>  >   * @param <E> the type of elements held in this generator.
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public class GenerateUntil<E> extends 
> LoopGenerator<E> {
>>>  > -
>>>  > -    /**
>>>  > -     * The condition has to verified in order to execute the
>>>  generation.
>>>  > -     */
>>>  > -    private final UnaryPredicate<? super E> test;
>>>  > +public class GenerateUntil<E> extends 
> PredicatedGenerator<E> {
>>>  >
>>>  >      /**
>>>  >       * Create a new GenerateUntil.
>>>  > @@ -41,53 +37,8 @@ public class GenerateUntil<E> extends Lo
>>>  >       * @param test {@link UnaryPredicate}
>>>  >       */
>>>  >      public GenerateUntil(Generator<? extends E> wrapped,
>>>  > UnaryPredicate<? super E> test) {
>>>  > -        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"));
>>>  > -        this.test = Validate.notNull(test, "UnaryPredicate 
> argument was
>>>  > null");
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    public void run(final UnaryProcedure<? super E> proc) {
>>>  > -        getWrappedGenerator().run(new UnaryProcedure<E>() {
>>>  > -            public void run(E obj) {
>>>  > -                if (isStopped()) {
>>>  > -                    return;
>>>  > -                }
>>>  > -                proc.run(obj);
>>>  > -                if (test.test(obj)) {
>>>  > -                    stop();
>>>  > -                }
>>>  > -            }
>>>  > -        });
>>>  > +        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"), UnaryNot.not(Validate.notNull(test,
>>>  > +            "UnaryPredicate argument was null")),
>>>  > Behavior.TEST_AFTER);
>>>  >      }
>>>  >
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public boolean equals(Object obj) {
>>>  > -        if (obj == this) {
>>>  > -            return true;
>>>  > -        }
>>>  > -        if (!(obj instanceof GenerateUntil<?>)) {
>>>  > -            return false;
>>>  > -        }
>>>  > -        GenerateUntil<?> other = (GenerateUntil<?>) 
> obj;
>>>  > -        return
>>>  other.getWrappedGenerator().equals(getWrappedGenerator())
>>>  > && other.test.equals(test);
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public int hashCode() {
>>>  > -        int result = "GenerateUntil".hashCode();
>>>  > -        result <<= 2;
>>>  > -        Generator<?> gen = getWrappedGenerator();
>>>  > -        result ^= gen.hashCode();
>>>  > -        result <<= 2;
>>>  > -        result ^= test.hashCode();
>>>  > -        return result;
>>>  > -    }
>>>  > }
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateWhile.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateWhile.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateWhile.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/GenerateWhile.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -28,12 +28,7 @@ import org.apache.commons.lang3.Validate
>>>  >   * @param <E> the type of elements held in this generator.
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public class GenerateWhile<E> extends 
> LoopGenerator<E> {
>>>  > -
>>>  > -    /**
>>>  > -     * The condition has to verified in order to execute the
>>>  generation.
>>>  > -     */
>>>  > -    private final UnaryPredicate<? super E> test;
>>>  > +public class GenerateWhile<E> extends 
> PredicatedGenerator<E> {
>>>  >
>>>  >      /**
>>>  >       * Create a new GenerateWhile.
>>>  > @@ -41,53 +36,8 @@ public class GenerateWhile<E> extends Lo
>>>  >       * @param test {@link UnaryPredicate}
>>>  >       */
>>>  >      public GenerateWhile(Generator<? extends E> wrapped,
>>>  > UnaryPredicate<? super E> test) {
>>>  > -        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"));
>>>  > -        this.test = Validate.notNull(test, "UnaryPredicate 
> argument was
>>>  > null");
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    public void run(final UnaryProcedure<? super E> proc) {
>>>  > -        getWrappedGenerator().run(new UnaryProcedure<E>() {
>>>  > -            public void run(E obj) {
>>>  > -                if (isStopped()) {
>>>  > -                    return;
>>>  > -                }
>>>  > -                proc.run(obj);
>>>  > -                if (!test.test(obj)) {
>>>  > -                    stop();
>>>  > -                }
>>>  > -            }
>>>  > -        });
>>>  > +        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"),
>>>  > +        Validate.notNull(test, "UnaryPredicate argument was 
> null"),
>>>  > Behavior.TEST_AFTER);
>>>  >      }
>>>  >
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public boolean equals(Object obj) {
>>>  > -        if (obj == this) {
>>>  > -            return true;
>>>  > -        }
>>>  > -        if (!(obj instanceof GenerateWhile<?>)) {
>>>  > -            return false;
>>>  > -        }
>>>  > -        GenerateWhile<?> other = (GenerateWhile<?>) 
> obj;
>>>  > -        return
>>>  other.getWrappedGenerator().equals(getWrappedGenerator())
>>>  > && other.test.equals(test);
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public int hashCode() {
>>>  > -        int result = "GenerateWhile".hashCode();
>>>  > -        result <<= 2;
>>>  > -        Generator<?> gen = getWrappedGenerator();
>>>  > -        result ^= gen.hashCode();
>>>  > -        result <<= 2;
>>>  > -        result ^= test.hashCode();
>>>  > -        return result;
>>>  > -    }
>>>  > }
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/IteratorToGeneratorAdapter.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/IteratorToGeneratorAdapter.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/IteratorToGeneratorAdapter.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/IteratorToGeneratorAdapter.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -14,19 +14,23 @@
>>>  >
>>>  > package org.apache.commons.functor.generator.loop;
>>>  >
>>>  > +import java.util.Collection;
>>>  > import java.util.Iterator;
>>>  >
>>>  > +import org.apache.commons.functor.UnaryFunction;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > +import org.apache.commons.functor.generator.BaseGenerator;
>>>  > +import org.apache.commons.functor.generator.Generator;
>>>  > import org.apache.commons.lang3.Validate;
>>>  >
>>>  > /**
>>>  > - * Adapts an {@link Iterator} to the {@link LoopGenerator} 
> interface.
>>>  > + * Adapts an {@link Iterator} to the {@link PredicatedGenerator}
>>>  interface.
>>>  >   *
>>>  >   * @param <E> the type of elements held in this generator.
>>>  >   * @since 1.0
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public final class IteratorToGeneratorAdapter<E> extends
>>>  > LoopGenerator<E> {
>>>  > +public final class IteratorToGeneratorAdapter<E> extends
>>>  > BaseGenerator<E> {
>>>  >      // instance variables
>>>  >      //-----------------------------------------------------
>>>  >
>>>  > @@ -53,9 +57,6 @@ public final class IteratorToGeneratorAd
>>>  >      public void run(UnaryProcedure<? super E> proc) {
>>>  >          while (iter.hasNext()) {
>>>  >              proc.run(iter.next());
>>>  > -            if (isStopped()) {
>>>  > -                break;
>>>  > -            }
>>>  >          }
>>>  >      }
>>>  >
>>>  >
>>>  > Copied:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/PredicatedGenerator.java
>>>  > (from r1439123,
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/LoopGenerator.java)
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/PredicatedGenerator.java?p2=commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/PredicatedGenerator.java&p1=commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/LoopGenerator.java&r1=1439123&r2=1439683&rev=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/LoopGenerator.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/PredicatedGenerator.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -14,6 +14,8 @@
>>>  >
>>>  > package org.apache.commons.functor.generator.loop;
>>>  >
>>>  > +import org.apache.commons.functor.UnaryPredicate;
>>>  > +import org.apache.commons.functor.UnaryProcedure;
>>>  > import org.apache.commons.functor.generator.BaseGenerator;
>>>  > import org.apache.commons.functor.generator.Generator;
>>>  >
>>>  > @@ -25,27 +27,29 @@ import org.apache.commons.functor.genera
>>>  >   * @since 1.0
>>>  >   * @version $Revision:$ $Date:$
>>>  >   */
>>>  > -public abstract class LoopGenerator<E> extends 
> BaseGenerator<E> {
>>>  > +public abstract class PredicatedGenerator<E> extends
>>>  > BaseGenerator<E> {
>>>  > +    public enum Behavior {
>>>  > +        TEST_BEFORE, TEST_AFTER;
>>>  > +    }
>>>  >
>>>  > -    /** A generator can wrap another generator. */
>>>  >      private final Generator<? extends E> wrappedGenerator;
>>>  > +    private final UnaryPredicate<? super E> 
> continuePredicate;
>>>  > +    private final Behavior behavior;
>>>  >
>>>  > -    /** Set to true when the generator is {@link #stop stopped}. 
> */
>>>  > +    /** Set to true when the generator is {@link #stop() 
> stopped}. */
>>>  >      private boolean stopped = false;
>>>  >
>>>  > -    /** Create a new generator. */
>>>  > -    public LoopGenerator() {
>>>  > -        this(null);
>>>  > -    }
>>>  > -
>>>  >      /**
>>>  > -     * A generator can wrap another generator. When wrapping
>>>  generators you
>>>  > -     * should use probably this constructor since doing so will 
> cause
>>>  the
>>>  > -     * {@link #stop} method to stop the wrapped generator as 
> well.
>>>  > -     * @param generator Generator to wrap
>>>  > +     * Create a new PredicatedGenerator instance.
>>>  > +     * @param wrappedGenerator
>>>  > +     * @param continuePredicate
>>>  > +     * @param behavior
>>>  >       */
>>>  > -    public LoopGenerator(Generator<? extends E> generator) 
> {
>>>  > -        this.wrappedGenerator = generator;
>>>  > +    protected PredicatedGenerator(Generator<? extends E>
>>>  > wrappedGenerator, UnaryPredicate<? super E> 
> continuePredicate, Behavior
>>>  > behavior) {
>>>  > +        super();
>>>  > +        this.wrappedGenerator = wrappedGenerator;
>>>  > +        this.continuePredicate = continuePredicate;
>>>  > +        this.behavior = behavior;
>>>  >      }
>>>  >
>>>  >      /**
>>>  > @@ -58,21 +62,58 @@ public abstract class LoopGenerator<E> e
>>>  >
>>>  >      /**
>>>  >       * {@inheritDoc}
>>>  > -     * Stop the generator. Will stop the wrapped generator if one 
> was
>>>  set.
>>>  >       */
>>>  > -    public void stop() {
>>>  > -        if (wrappedGenerator != null && wrappedGenerator 
> instanceof
>>>  > LoopGenerator<?>) {
>>>  > -            ((LoopGenerator<?>) wrappedGenerator).stop();
>>>  > +    public void run(final UnaryProcedure<? super E> proc) {
>>>  > +        wrappedGenerator.run(new UnaryProcedure<E>() {
>>>  > +            public void run(E obj) {
>>>  > +                if (stopped) {
>>>  > +                    return;
>>>  > +                }
>>>  > +                if (behavior == Behavior.TEST_BEFORE &&
>>>  > !continuePredicate.test(obj)) {
>>>  > +                    stop();
>>>  > +                    return;
>>>  > +                }
>>>  > +                proc.run(obj);
>>>  > +                if (behavior == Behavior.TEST_AFTER &&
>>>  > !continuePredicate.test(obj)) {
>>>  > +                    stop();
>>>  > +                }
>>>  > +            }
>>>  > +        });
>>>  > +    }
>>>  > +    /**
>>>  > +     * {@inheritDoc}
>>>  > +     */
>>>  > +    @Override
>>>  > +    public boolean equals(Object obj) {
>>>  > +        if (obj == this) {
>>>  > +            return true;
>>>  >          }
>>>  > -        stopped = true;
>>>  > +        if (!(obj instanceof PredicatedGenerator<?>)) {
>>>  > +            return false;
>>>  > +        }
>>>  > +        PredicatedGenerator<?> other = 
> (PredicatedGenerator<?>)
>>>  > obj;
>>>  > +        return
>>>  other.getWrappedGenerator().equals(getWrappedGenerator())
>>>  > +            && 
> other.continuePredicate.equals(continuePredicate)
>>>  > && other.behavior == behavior;
>>>  >      }
>>>  >
>>>  >      /**
>>>  >       * {@inheritDoc}
>>>  > -     * Check if the generator is stopped.
>>>  >       */
>>>  > -    public boolean isStopped() {
>>>  > -        return stopped;
>>>  > +    @Override
>>>  > +    public int hashCode() {
>>>  > +        int result = getClass().getSimpleName().hashCode();
>>>  > +        result <<= 2;
>>>  > +        Generator<?> gen = getWrappedGenerator();
>>>  > +        result ^= gen.hashCode();
>>>  > +        result <<= 2;
>>>  > +        result ^= continuePredicate.hashCode();
>>>  > +        result <<= 2;
>>>  > +        result ^= behavior.ordinal();
>>>  > +        return result;
>>>  > +    }
>>>  > +
>>>  > +    private void stop() {
>>>  > +        stopped = true;
>>>  >      }
>>>  >
>>>  > }
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/TransformedGenerator.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/TransformedGenerator.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/TransformedGenerator.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/TransformedGenerator.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -18,6 +18,7 @@ package org.apache.commons.functor.gener
>>>  >
>>>  > import org.apache.commons.functor.UnaryFunction;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > +import org.apache.commons.functor.generator.BaseGenerator;
>>>  > import org.apache.commons.functor.generator.Generator;
>>>  > import org.apache.commons.lang3.Validate;
>>>  >
>>>  > @@ -28,34 +29,34 @@ import org.apache.commons.lang3.Validate
>>>  >   * @param <E> the type of elements held in this generator.
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public class TransformedGenerator<I, E> extends 
> LoopGenerator<E> {
>>>  > +public class TransformedGenerator<I, E> extends 
> BaseGenerator<E> {
>>>  > +
>>>  > +    /**
>>>  > +     * The wrapped/<em>I</em>nput generator.
>>>  > +     */
>>>  > +    private final Generator<? extends I> wrappedGenerator;
>>>  >
>>>  >      /**
>>>  >       * The UnaryFunction to apply to each element.
>>>  >       */
>>>  >      private final UnaryFunction<? super I, ? extends E> 
> func;
>>>  >
>>>  > -    // This is a special generator, that wraps a generator, but
>>>  returns another
>>>  > one.
>>>  > -    // So it breaks the interface contract, and we suppress the
>>>  warnings when
>>>  > we cast
>>>  > -    // the wrapped generator. This class has been marked as 
> final, to
>>>  avoid
>>>  > bogus
>>>  > -    // specializations.
>>>  >      /**
>>>  >       * Create a new TransformedGenerator.
>>>  >       * @param wrapped Generator to transform
>>>  >       * @param func UnaryFunction to apply to each element
>>>  >       */
>>>  > -    @SuppressWarnings("unchecked")
>>>  >      public TransformedGenerator(Generator<? extends I> 
> wrapped,
>>>  > UnaryFunction<? super I, ? extends E> func) {
>>>  > -        super((Generator<? extends E>) 
> Validate.notNull(wrapped,
>>>  > "Generator argument was null"));
>>>  > +        this.wrappedGenerator =
>>>  > +        Validate.notNull(wrapped, "Generator argument was 
> null");
>>>  >          this.func = Validate.notNull(func, "UnaryFunction 
> argument was
>>>  > null");
>>>  >      }
>>>  >
>>>  >      /**
>>>  >       * {@inheritDoc}
>>>  >       */
>>>  > -    @SuppressWarnings("unchecked")
>>>  >      public void run(final UnaryProcedure<? super E> proc) {
>>>  > -        ((Generator<? extends I>) 
> getWrappedGenerator()).run(new
>>>  > UnaryProcedure<I>() {
>>>  > +        wrappedGenerator.run(new UnaryProcedure<I>() {
>>>  >              public void run(I obj) {
>>>  >                  proc.run(func.evaluate(obj));
>>>  >              }
>>>  > @@ -74,7 +75,7 @@ public class TransformedGenerator<I, E>
>>>  >              return false;
>>>  >          }
>>>  >          TransformedGenerator<?, ?> other = 
> (TransformedGenerator<?,
>>>  > ?>) obj;
>>>  > -        return
>>>  other.getWrappedGenerator().equals(getWrappedGenerator())
>>>  > && other.func == func;
>>>  > +        return other.wrappedGenerator.equals(wrappedGenerator) 
> &&
>>>  > other.func.equals(func);
>>>  >      }
>>>  >
>>>  >      /**
>>>  > @@ -84,7 +85,7 @@ public class TransformedGenerator<I, E>
>>>  >      public int hashCode() {
>>>  >          int result = "TransformedGenerator".hashCode();
>>>  >          result <<= 2;
>>>  > -        Generator<?> gen = getWrappedGenerator();
>>>  > +        Generator<?> gen = wrappedGenerator;
>>>  >          result ^= gen.hashCode();
>>>  >          result <<= 2;
>>>  >          result ^= func.hashCode();
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/UntilGenerate.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/UntilGenerate.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/UntilGenerate.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/UntilGenerate.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -18,6 +18,7 @@ package org.apache.commons.functor.gener
>>>  >
>>>  > import org.apache.commons.functor.UnaryPredicate;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > +import org.apache.commons.functor.core.composite.UnaryNot;
>>>  > import org.apache.commons.functor.generator.Generator;
>>>  > import org.apache.commons.lang3.Validate;
>>>  >
>>>  > @@ -28,12 +29,7 @@ import org.apache.commons.lang3.Validate
>>>  >   * @param <E> the type of elements held in this generator.
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public class UntilGenerate<E> extends 
> LoopGenerator<E> {
>>>  > -
>>>  > -    /**
>>>  > -     * The condition has to verified in order to execute the
>>>  generation.
>>>  > -     */
>>>  > -    private final UnaryPredicate<? super E> test;
>>>  > +public class UntilGenerate<E> extends 
> PredicatedGenerator<E> {
>>>  >
>>>  >      /**
>>>  >       * Create a new UntilGenerate.
>>>  > @@ -41,54 +37,8 @@ public class UntilGenerate<E> extends Lo
>>>  >       * @param test {@link UnaryPredicate}
>>>  >       */
>>>  >      public UntilGenerate(UnaryPredicate<? super E> test, 
> Generator<?
>>>  > extends E> wrapped) {
>>>  > -        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"));
>>>  > -        this.test = Validate.notNull(test, "UnaryPredicate 
> argument was
>>>  > null");
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    public void run(final UnaryProcedure<? super E> proc) {
>>>  > -        getWrappedGenerator().run(new UnaryProcedure<E>() {
>>>  > -            public void run(E obj) {
>>>  > -                if (isStopped()) {
>>>  > -                    return;
>>>  > -                }
>>>  > -                if (test.test(obj)) {
>>>  > -                    stop();
>>>  > -                } else {
>>>  > -                    proc.run(obj);
>>>  > -                }
>>>  > -            }
>>>  > -        });
>>>  > +        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"), UnaryNot.not(Validate.notNull(test,
>>>  > +            "UnaryPredicate argument was null")),
>>>  > Behavior.TEST_BEFORE);
>>>  >      }
>>>  >
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public boolean equals(Object obj) {
>>>  > -        if (obj == this) {
>>>  > -            return true;
>>>  > -        }
>>>  > -        if (!(obj instanceof UntilGenerate<?>)) {
>>>  > -            return false;
>>>  > -        }
>>>  > -        UntilGenerate<?> other = (UntilGenerate<?>) 
> obj;
>>>  > -        return
>>>  other.getWrappedGenerator().equals(getWrappedGenerator())
>>>  > && other.test.equals(test);
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public int hashCode() {
>>>  > -        int result = "UntilGenerate".hashCode();
>>>  > -        result <<= 2;
>>>  > -        Generator<?> gen = getWrappedGenerator();
>>>  > -        result ^= gen.hashCode();
>>>  > -        result <<= 2;
>>>  > -        result ^= test.hashCode();
>>>  > -        return result;
>>>  > -    }
>>>  > }
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/WhileGenerate.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/WhileGenerate.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/WhileGenerate.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/loop/WhileGenerate.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -28,12 +28,7 @@ import org.apache.commons.lang3.Validate
>>>  >   * @param <E> the type of elements held in this generator.
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public class WhileGenerate<E> extends 
> LoopGenerator<E> {
>>>  > -
>>>  > -    /**
>>>  > -     * The condition has to verified in order to execute the
>>>  generation.
>>>  > -     */
>>>  > -    private final UnaryPredicate<? super E> test;
>>>  > +public class WhileGenerate<E> extends 
> PredicatedGenerator<E> {
>>>  >
>>>  >      /**
>>>  >       * Create a new WhileGenerate.
>>>  > @@ -41,54 +36,8 @@ public class WhileGenerate<E> extends Lo
>>>  >       * @param wrapped {@link Generator}
>>>  >       */
>>>  >      public WhileGenerate(UnaryPredicate<? super E> test, 
> Generator<?
>>>  > extends E> wrapped) {
>>>  > -        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"));
>>>  > -        this.test = Validate.notNull(test, "UnaryPredicate 
> argument was
>>>  > null");
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    public void run(final UnaryProcedure<? super E> proc) {
>>>  > -        getWrappedGenerator().run(new UnaryProcedure<E>() {
>>>  > -            public void run(E obj) {
>>>  > -                if (isStopped()) {
>>>  > -                    return;
>>>  > -                }
>>>  > -                if (!test.test(obj)) {
>>>  > -                    stop();
>>>  > -                } else {
>>>  > -                    proc.run(obj);
>>>  > -                }
>>>  > -            }
>>>  > -        });
>>>  > +        super(Validate.notNull(wrapped, "Generator argument 
> was
>>>  > null"), Validate.notNull(test,
>>>  > +            "UnaryPredicate argument was null"),
>>>  > Behavior.TEST_BEFORE);
>>>  >      }
>>>  >
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public boolean equals(Object obj) {
>>>  > -        if (obj == this) {
>>>  > -            return true;
>>>  > -        }
>>>  > -        if (!(obj instanceof WhileGenerate<?>)) {
>>>  > -            return false;
>>>  > -        }
>>>  > -        WhileGenerate<?> other = (WhileGenerate<?>) 
> obj;
>>>  > -        return
>>>  other.getWrappedGenerator().equals(getWrappedGenerator())
>>>  > && other.test.equals(test);
>>>  > -    }
>>>  > -
>>>  > -    /**
>>>  > -     * {@inheritDoc}
>>>  > -     */
>>>  > -    @Override
>>>  > -    public int hashCode() {
>>>  > -        int result = "WhileGenerate".hashCode();
>>>  > -        result <<= 2;
>>>  > -        Generator<?> gen = getWrappedGenerator();
>>>  > -        result ^= gen.hashCode();
>>>  > -        result <<= 2;
>>>  > -        result ^= test.hashCode();
>>>  > -        return result;
>>>  > -    }
>>>  > }
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/CharacterRange.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/CharacterRange.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/CharacterRange.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/CharacterRange.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -21,7 +21,7 @@ import java.util.Collection;
>>>  >
>>>  > import org.apache.commons.functor.BinaryFunction;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > -import org.apache.commons.functor.generator.loop.LoopGenerator;
>>>  > +import org.apache.commons.functor.generator.BaseGenerator;
>>>  > import org.apache.commons.lang3.Validate;
>>>  >
>>>  > /**
>>>  > @@ -30,7 +30,7 @@ import org.apache.commons.lang3.Validate
>>>  >   * @since 1.0
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public final class CharacterRange extends 
> LoopGenerator<Character>
>>>  > implements Range<Character, Integer> {
>>>  > +public final class CharacterRange extends 
> BaseGenerator<Character>
>>>  > implements Range<Character, Integer> {
>>>  >
>>>  >      // attributes
>>>  >      // 
> ---------------------------------------------------------------
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/NumericRange.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/NumericRange.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/NumericRange.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/main/java/org/apache/commons/functor/generator/range/NumericRange.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -19,7 +19,7 @@ package org.apache.commons.functor.gener
>>>  >
>>>  > import java.util.Collection;
>>>  >
>>>  > -import org.apache.commons.functor.generator.loop.LoopGenerator;
>>>  > +import org.apache.commons.functor.generator.BaseGenerator;
>>>  > import org.apache.commons.lang3.Validate;
>>>  >
>>>  > /**
>>>  > @@ -35,7 +35,7 @@ import org.apache.commons.lang3.Validate
>>>  >   * @since 0.1
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public abstract class NumericRange<T extends Number &
>>>  > Comparable<T>> extends LoopGenerator<T> implements 
> Range<T,
>>>  > T> {
>>>  > +public abstract class NumericRange<T extends Number &
>>>  > Comparable<T>> extends BaseGenerator<T> implements 
> Range<T,
>>>  > T> {
>>>  >      // attributes
>>>  >      // 
> ---------------------------------------------------------------
>>>  >      /**
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/TestAlgorithms.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/TestAlgorithms.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/TestAlgorithms.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/TestAlgorithms.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -31,8 +31,8 @@ import java.util.Set;
>>>  > import org.apache.commons.functor.core.Identity;
>>>  > import org.apache.commons.functor.core.composite.UnaryNot;
>>>  > import org.apache.commons.functor.generator.FilteredGenerator;
>>>  > +import org.apache.commons.functor.generator.Generator;
>>>  > import
>>>  org.apache.commons.functor.generator.loop.IteratorToGeneratorAdapter;
>>>  > -import org.apache.commons.functor.generator.loop.LoopGenerator;
>>>  > import 
> org.apache.commons.functor.generator.loop.TransformedGenerator;
>>>  > import org.apache.commons.functor.generator.range.IntegerRange;
>>>  > import org.junit.After;
>>>  > @@ -116,7 +116,7 @@ public class TestAlgorithms {
>>>  >
>>>  >      @Test
>>>  >      public void testApplyToGenerator() {
>>>  > -        LoopGenerator<Integer> gen = new IntegerRange(1,5);
>>>  > +        Generator<Integer> gen = new IntegerRange(1,5);
>>>  >          Summer summer = new Summer();
>>>  >
>>>  >          new TransformedGenerator<Integer, Integer>(gen, new
>>>  > Doubler()).run(summer);
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/example/lines/Lines.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/example/lines/Lines.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/example/lines/Lines.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/example/lines/Lines.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -23,12 +23,12 @@ import java.io.FileReader;
>>>  > import java.io.Reader;
>>>  >
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > -import org.apache.commons.functor.generator.loop.LoopGenerator;
>>>  > +import org.apache.commons.functor.generator.BaseGenerator;
>>>  >
>>>  > /**
>>>  >   * @version $Revision$ $Date$
>>>  >   */
>>>  > -public class Lines extends LoopGenerator<String> {
>>>  > +public class Lines extends BaseGenerator<String> {
>>>  >      public static Lines from(Reader reader) {
>>>  >          return new Lines(reader);
>>>  >      }
>>>  > @@ -55,19 +55,13 @@ public class Lines extends LoopGenerator
>>>  >          } catch(Exception e) {
>>>  >              throw new TunneledException(e);
>>>  >          } finally {
>>>  > -            stop();
>>>  > -        }
>>>  > -    }
>>>  > -
>>>  > -    @Override
>>>  > -    public void stop() {
>>>  > -        super.stop();
>>>  > -        try {
>>>  > -            in.close();
>>>  > -        } catch(RuntimeException e) {
>>>  > -            throw e;
>>>  > -        } catch(Exception e) {
>>>  > -            throw new TunneledException(e);
>>>  > +            try {
>>>  > +                in.close();
>>>  > +            } catch(RuntimeException e) {
>>>  > +                throw e;
>>>  > +            } catch(Exception e) {
>>>  > +                throw new TunneledException(e);
>>>  > +            }
>>>  >          }
>>>  >      }
>>>  >
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateUntil.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateUntil.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateUntil.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateUntil.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -40,13 +40,13 @@ public class TestGenerateUntil {
>>>  >      //
>>> 
> ------------------------------------------------------------------------
>>>  >      private static final Integer FIVE = new Integer(5);
>>>  >
>>>  > -    private LoopGenerator<Integer> wrappedGenerator = null;
>>>  > +    private Generator<Integer> wrappedGenerator = null;
>>>  >      private UnaryPredicate<Integer> isMoreThanFive = new
>>>  > UnaryPredicate<Integer>() {
>>>  >          public boolean test( Integer obj ) {
>>>  >              return obj > FIVE;
>>>  >          }
>>>  >      };
>>>  > -    private LoopGenerator<Integer> generateUntil = null;
>>>  > +    private PredicatedGenerator<Integer> generateUntil = 
> null;
>>>  >
>>>  >      @Before
>>>  >      public void setUp() throws Exception {
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateWhile.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateWhile.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateWhile.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestGenerateWhile.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -40,13 +40,13 @@ public class TestGenerateWhile {
>>>  >      //
>>> 
> ------------------------------------------------------------------------
>>>  >      private static final Integer FIVE = new Integer(5);
>>>  >
>>>  > -    private LoopGenerator<Integer> wrappedGenerator = null;
>>>  > +    private Generator<Integer> wrappedGenerator = null;
>>>  >      private UnaryPredicate<Integer> isLessThanFive = new
>>>  > UnaryPredicate<Integer>() {
>>>  >          public boolean test( Integer obj ) {
>>>  >              return obj < FIVE;
>>>  >          }
>>>  >      };
>>>  > -    private LoopGenerator<Integer> generateWhile = null;
>>>  > +    private PredicatedGenerator<Integer> generateWhile = 
> null;
>>>  >
>>>  >      @Before
>>>  >      public void setUp() throws Exception {
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestTransformedGenerator.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestTransformedGenerator.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestTransformedGenerator.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestTransformedGenerator.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -22,6 +22,7 @@ import java.util.List;
>>>  >
>>>  > import org.apache.commons.functor.UnaryFunction;
>>>  > import org.apache.commons.functor.UnaryProcedure;
>>>  > +import org.apache.commons.functor.generator.Generator;
>>>  > import org.apache.commons.functor.generator.range.IntegerRange;
>>>  > import org.junit.After;
>>>  > import org.junit.Before;
>>>  > @@ -36,7 +37,7 @@ public class TestTransformedGenerator {
>>>  >      //
>>> 
> ------------------------------------------------------------------------
>>>  >      private static final Integer TWO = new Integer(2);
>>>  >
>>>  > -    private LoopGenerator<Integer> wrappedGenerator = null;
>>>  > +    private Generator<Integer> wrappedGenerator = null;
>>>  >      private UnaryFunction<Integer, Integer> sumsTwo = new
>>>  > UnaryFunction<Integer, Integer>() {
>>>  >          public Integer evaluate( Integer obj ) {
>>>  >              return obj += TWO;
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestUntilGenerate.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestUntilGenerate.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestUntilGenerate.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestUntilGenerate.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -40,13 +40,13 @@ public class TestUntilGenerate {
>>>  >      //
>>> 
> ------------------------------------------------------------------------
>>>  >      private static final Integer FIVE = new Integer(5);
>>>  >
>>>  > -    private LoopGenerator<Integer> wrappedGenerator = null;
>>>  > +    private Generator<Integer> wrappedGenerator = null;
>>>  >      private UnaryPredicate<Integer> isGreaterThanFive = new
>>>  > UnaryPredicate<Integer>() {
>>>  >          public boolean test(Integer obj) {
>>>  >              return obj > FIVE;
>>>  >          }
>>>  >      };
>>>  > -    private LoopGenerator<Integer> untilGenerate = null;
>>>  > +    private PredicatedGenerator<Integer> untilGenerate = 
> null;
>>>  >
>>>  >      @Before
>>>  >      public void setUp() throws Exception {
>>>  >
>>>  > Modified:
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestWhileGenerate.java
>>>  > URL:
>>>  >
>>> 
> http://svn.apache.org/viewvc/commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestWhileGenerate.java?rev=1439683&r1=1439682&r2=1439683&view=diff
>>>  >
>>> 
> ==============================================================================
>>>  > ---
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestWhileGenerate.java
>>>  > (original)
>>>  > +++
>>>  >
>>> 
> commons/proper/functor/branches/FUNCTOR-14-mm/core/src/test/java/org/apache/commons/functor/generator/loop/TestWhileGenerate.java
>>>  > Mon Jan 28 22:49:36 2013
>>>  > @@ -42,13 +42,13 @@ public class TestWhileGenerate {
>>>  >      //
>>> 
> ------------------------------------------------------------------------
>>>  >      private static final Integer FIVE = new Integer(5);
>>>  >
>>>  > -    private LoopGenerator<Integer> wrappedGenerator = null;
>>>  > +    private Generator<Integer> wrappedGenerator = null;
>>>  >      private UnaryPredicate<Integer> isLessThanFive = new
>>>  > UnaryPredicate<Integer>() {
>>>  >          public boolean test( Integer obj ) {
>>>  >              return obj < FIVE;
>>>  >          }
>>>  >      };
>>>  > -    private LoopGenerator<Integer> whileGenerate = null;
>>>  > +    private PredicatedGenerator<Integer> whileGenerate = 
> null;
>>>  >
>>>  >      @Before
>>>  >      public void setUp() throws Exception {
>>>  >
>>> 
>>>  ---------------------------------------------------------------------
>>>  To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>>>  For additional commands, e-mail: dev-help@commons.apache.org
>>> 
>>> 
>> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message