Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/BinaryOr.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/BinaryOr.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/BinaryOr.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/BinaryOr.java Mon Apr 7 16:29:25 2008 @@ -40,24 +40,47 @@ // constructor // ------------------------------------------------------------------------ + /** + * Create a new BinaryOr. + */ public BinaryOr() { super(); } + /** + * Create a new BinaryOr. + * @param p BinaryPredicate to add + */ public BinaryOr(BinaryPredicate p) { super(p); } + /** + * Create a new BinaryOr. + * @param p BinaryPredicate to add + * @param q BinaryPredicate to add + */ public BinaryOr(BinaryPredicate p, BinaryPredicate q) { - super(p,q); + super(p, q); } + /** + * Create a new BinaryOr. + * @param p BinaryPredicate to add + * @param q BinaryPredicate to add + * @param r BinaryPredicate to add + */ public BinaryOr(BinaryPredicate p, BinaryPredicate q, BinaryPredicate r) { - super(p,q,r); + super(p, q, r); } // modifiers // ------------------------------------------------------------------------ + /** + * Fluently add a BinaryPredicate. + * @param p BinaryPredicate to add + * @return this + */ public BinaryOr or(BinaryPredicate p) { super.addBinaryPredicate(p); return this; @@ -65,6 +88,9 @@ // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public boolean test(Object a, Object b) { for (Iterator iter = getBinaryPredicateIterator(); iter.hasNext();) { if (((BinaryPredicate) iter.next()).test(a,b)) { @@ -74,6 +100,9 @@ return false; } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof BinaryOr) { return equals((BinaryOr) that); @@ -82,14 +111,25 @@ } } + /** + * Learn whether another BinaryOr is equal to this. + * @param that BinaryOr to test + * @return boolean + */ public boolean equals(BinaryOr that) { return getBinaryPredicateListEquals(that); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { return "BinaryOr".hashCode() ^ getBinaryPredicateListHashCode(); } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "BinaryOr<" + getBinaryPredicateListToString() + ">"; }
Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Composite.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Composite.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Composite.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Composite.java Mon Apr 7 16:29:25 2008 @@ -28,34 +28,75 @@ * @author Rodney Waldhoff */ public final class Composite { + //TODO discuss method signatures // constructor - for beanish apis // ------------------------------------------------------------------------ + /** + * Create a new Composite. + */ public Composite() { } - // ------------------------------------------------------------------------ - + /** + * Create a composite UnaryProcedure. + * @param p UnaryProcedure to execute against output of <code>f</code> + * @param f UnaryFunction to apply + * @return CompositeUnaryProcedure + */ public static final CompositeUnaryProcedure procedure(UnaryProcedure p, UnaryFunction f) { - return new CompositeUnaryProcedure(p,f); + return new CompositeUnaryProcedure(p, f); } + /** + * Create a composite UnaryPredicate. + * @param p UnaryPredicate to test the output of <code>f</code> + * @param f UnaryFunction to apply + * @return CompositeUnaryPredicate + */ public static final CompositeUnaryPredicate predicate(UnaryPredicate p, UnaryFunction f) { - return new CompositeUnaryPredicate(p,f); + return new CompositeUnaryPredicate(p, f); } + /** + * Create a composite BinaryPredicate. + * @param p BinaryPredicate to test <i>output(</i><code>f</code><i>), output(</i><code>g</code><i>)</i> + * @param f left UnaryFunction + * @param g right UnaryFunction + * @return BinaryPredicate + */ public static final BinaryPredicate predicate(BinaryPredicate p, UnaryFunction f, UnaryFunction g) { - return new UnaryCompositeBinaryPredicate(p,f,g); + return new UnaryCompositeBinaryPredicate(p, f, g); } + /** + * Create a composite UnaryFunction. + * @param f UnaryFunction to apply to the output of <code>g</code> + * @param g UnaryFunction to apply first + * @return CompositeUnaryFunction + */ public static final CompositeUnaryFunction function(UnaryFunction f, UnaryFunction g) { - return new CompositeUnaryFunction(f,g); + return new CompositeUnaryFunction(f, g); } + /** + * Create a composite<UnaryFunction> BinaryFunction. + * @param f BinaryFunction to apply to <i>output(</i><code>f</code><i>), output(</i><code>g</code><i>)</i> + * @param g left UnaryFunction + * @param h right UnaryFunction + * @return BinaryFunction + */ public static final BinaryFunction function(BinaryFunction f, UnaryFunction g, UnaryFunction h) { - return new UnaryCompositeBinaryFunction(f,g,h); + return new UnaryCompositeBinaryFunction(f, g, h); } + /** + * Create a composite<BinaryFunction> BinaryFunction. + * @param f BinaryFunction to apply to <i>output(</i><code>f</code><i>), output(</i><code>g</code><i>)</i> + * @param g left BinaryFunction + * @param h right BinaryFunction + * @return BinaryFunction + */ public static final BinaryFunction function(BinaryFunction f, BinaryFunction g, BinaryFunction h) { - return new BinaryCompositeBinaryFunction(f,g,h); + return new BinaryCompositeBinaryFunction(f, g, h); } } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryFunction.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryFunction.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryFunction.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryFunction.java Mon Apr 7 16:29:25 2008 @@ -52,15 +52,31 @@ */ public class CompositeUnaryFunction implements UnaryFunction, Serializable { + // attributes + // ------------------------------------------------------------------------ + private List list = new ArrayList(); + // constructor // ------------------------------------------------------------------------ + /** + * Create a new CompositeUnaryFunction. + */ public CompositeUnaryFunction() { } + /** + * Create a new CompositeUnaryFunction. + * @param f UnaryFunction to add + */ public CompositeUnaryFunction(UnaryFunction f) { of(f); } + /** + * Create a new CompositeUnaryFunction. + * @param f UnaryFunction to add + * @param g UnaryFunction to add + */ public CompositeUnaryFunction(UnaryFunction f, UnaryFunction g) { of(f); of(g); @@ -68,13 +84,19 @@ // modifiers // ------------------------------------------------------------------------ + /** + * Fluently add a UnaryFunction. + * @param f UnaryFunction to add + * @return this + */ public CompositeUnaryFunction of(UnaryFunction f) { list.add(f); return this; } - // predicate interface - // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public Object evaluate(Object obj) { Object result = obj; for (ListIterator iter = list.listIterator(list.size()); iter.hasPrevious();) { @@ -83,6 +105,9 @@ return result; } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof CompositeUnaryFunction) { return equals((CompositeUnaryFunction) that); @@ -91,23 +116,29 @@ } } + /** + * Learn whether another CompositeUnaryFunction is equal to this. + * @param that CompositeUnaryFunction to test + * @return boolean + */ public boolean equals(CompositeUnaryFunction that) { // by construction, list is never null return null != that && list.equals(that.list); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { // by construction, list is never null return "CompositeUnaryFunction".hashCode() ^ list.hashCode(); } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "CompositeUnaryFunction<" + list + ">"; } - - - // attributes - // ------------------------------------------------------------------------ - private List list = new ArrayList(); } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryPredicate.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryPredicate.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryPredicate.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/CompositeUnaryPredicate.java Mon Apr 7 16:29:25 2008 @@ -50,12 +50,11 @@ private CompositeUnaryFunction function = null; private UnaryPredicate predicate = null; - //TODO have somebody who understands this class better write the missing javadoc! // constructor // ------------------------------------------------------------------------ /** * Create a new CompositeUnaryPredicate. - * @param p + * @param p UnaryPredicate against which the composite functions' output will be tested */ public CompositeUnaryPredicate(UnaryPredicate p) { if (null == p) { throw new NullPointerException(); } @@ -65,8 +64,8 @@ /** * Create a new CompositeUnaryPredicate. - * @param p - * @param f + * @param p UnaryPredicate against which the composite functions' output will be tested + * @param f UnaryFunction single UnaryFunction to apply */ public CompositeUnaryPredicate(UnaryPredicate p, UnaryFunction f) { if (null == p) { throw new NullPointerException(); } @@ -78,9 +77,9 @@ // modifiers // ------------------------------------------------------------------------ /** - * - * @param f - * @return + * Fluently add a UnaryFunction to the chain. + * @param f UnaryFunction to add + * @return this */ public CompositeUnaryPredicate of(UnaryFunction f) { function.of(f); Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryFunction.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryFunction.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryFunction.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryFunction.java Mon Apr 7 16:29:25 2008 @@ -42,22 +42,38 @@ * @author Rodney Waldhoff */ public final class ConditionalBinaryFunction implements BinaryFunction, Serializable { + // attributes + // ------------------------------------------------------------------------ + private BinaryPredicate ifPred = null; + private BinaryFunction thenFunc = null; + private BinaryFunction elseFunc = null; // constructor // ------------------------------------------------------------------------ - - public ConditionalBinaryFunction(BinaryPredicate ifPred, BinaryFunction thenPred, BinaryFunction elsePred) { + /** + * Create a new ConditionalBinaryFunction. + * @param ifPred if + * @param thenFunc then + * @param elseFunc else + */ + public ConditionalBinaryFunction(BinaryPredicate ifPred, BinaryFunction thenFunc, BinaryFunction elseFunc) { this.ifPred = ifPred; - this.thenFunc = thenPred; - this.elseFunc = elsePred; + this.thenFunc = thenFunc; + this.elseFunc = elseFunc; } // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public Object evaluate(Object left, Object right) { return ifPred.test(left,right) ? thenFunc.evaluate(left,right) : elseFunc.evaluate(left,right); } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof ConditionalBinaryFunction) { return equals((ConditionalBinaryFunction) that); @@ -66,13 +82,21 @@ } } + /** + * Learn whether another ConditionalBinaryFunction is equal to this. + * @param that ConditionalBinaryFunction to test + * @return boolean + */ public boolean equals(ConditionalBinaryFunction that) { - return null != that && - (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) && - (null == thenFunc ? null == that.thenFunc : thenFunc.equals(that.thenFunc)) && - (null == elseFunc ? null == that.elseFunc : elseFunc.equals(that.elseFunc)); + return null != that + && (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) + && (null == thenFunc ? null == that.thenFunc : thenFunc.equals(that.thenFunc)) + && (null == elseFunc ? null == that.elseFunc : elseFunc.equals(that.elseFunc)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "ConditionalBinaryFunction".hashCode(); if (null != ifPred) { @@ -90,13 +114,11 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "ConditionalBinaryFunction<" + ifPred + "?" + thenFunc + ":" + elseFunc + ">"; } - // attributes - // ------------------------------------------------------------------------ - private BinaryPredicate ifPred = null; - private BinaryFunction thenFunc = null; - private BinaryFunction elseFunc = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryPredicate.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryPredicate.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryPredicate.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalBinaryPredicate.java Mon Apr 7 16:29:25 2008 @@ -67,7 +67,7 @@ * [EMAIL PROTECTED] */ public boolean test(Object left, Object right) { - return ifPred.test(left,right) ? thenPred.test(left,right) : elsePred.test(left,right); + return ifPred.test(left, right) ? thenPred.test(left, right) : elsePred.test(left, right); } /** Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalFunction.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalFunction.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalFunction.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalFunction.java Mon Apr 7 16:29:25 2008 @@ -42,22 +42,38 @@ * @author Rodney Waldhoff */ public final class ConditionalFunction implements Function, Serializable { + // attributes + // ------------------------------------------------------------------------ + private Predicate ifPred = null; + private Function thenFunc = null; + private Function elseFunc = null; // constructor // ------------------------------------------------------------------------ - - public ConditionalFunction(Predicate ifPred, Function thenPred, Function elsePred) { + /** + * Create a new ConditionalFunction. + * @param ifPred if + * @param thenFunc then + * @param elseFunc else + */ + public ConditionalFunction(Predicate ifPred, Function thenFunc, Function elseFunc) { this.ifPred = ifPred; - this.thenFunc = thenPred; - this.elseFunc = elsePred; + this.thenFunc = thenFunc; + this.elseFunc = elseFunc; } // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public Object evaluate() { return ifPred.test() ? thenFunc.evaluate() : elseFunc.evaluate(); } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof ConditionalFunction) { return equals((ConditionalFunction) that); @@ -66,13 +82,21 @@ } } + /** + * Learn whether another ConditionalFunction is equal to this. + * @param that ConditionalFunction to test + * @return boolean + */ public boolean equals(ConditionalFunction that) { - return null != that && - (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) && - (null == thenFunc ? null == that.thenFunc : thenFunc.equals(that.thenFunc)) && - (null == elseFunc ? null == that.elseFunc : elseFunc.equals(that.elseFunc)); + return null != that + && (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) + && (null == thenFunc ? null == that.thenFunc : thenFunc.equals(that.thenFunc)) + && (null == elseFunc ? null == that.elseFunc : elseFunc.equals(that.elseFunc)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "ConditionalFunction".hashCode(); if (null != ifPred) { @@ -90,13 +114,11 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "ConditionalFunction<" + ifPred + "?" + thenFunc + ":" + elseFunc + ">"; } - // attributes - // ------------------------------------------------------------------------ - private Predicate ifPred = null; - private Function thenFunc = null; - private Function elseFunc = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryFunction.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryFunction.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryFunction.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryFunction.java Mon Apr 7 16:29:25 2008 @@ -42,10 +42,20 @@ * @author Rodney Waldhoff */ public final class ConditionalUnaryFunction implements UnaryFunction, Serializable { + // attributes + // ------------------------------------------------------------------------ + private UnaryPredicate ifPred = null; + private UnaryFunction thenFunc = null; + private UnaryFunction elseFunc = null; // constructor // ------------------------------------------------------------------------ - + /** + * Create a new ConditionalUnaryFunction. + * @param ifPred if + * @param thenPred then + * @param elsePred else + */ public ConditionalUnaryFunction(UnaryPredicate ifPred, UnaryFunction thenPred, UnaryFunction elsePred) { this.ifPred = ifPred; this.thenFunc = thenPred; @@ -54,10 +64,16 @@ // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public Object evaluate(Object obj) { return ifPred.test(obj) ? thenFunc.evaluate(obj) : elseFunc.evaluate(obj); } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof ConditionalUnaryFunction) { return equals((ConditionalUnaryFunction) that); @@ -66,13 +82,21 @@ } } + /** + * Learn whether another ConditionalUnaryFunction is equal to this. + * @param that ConditionalUnaryFunction to test + * @return boolean + */ public boolean equals(ConditionalUnaryFunction that) { - return null != that && - (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) && - (null == thenFunc ? null == that.thenFunc : thenFunc.equals(that.thenFunc)) && - (null == elseFunc ? null == that.elseFunc : elseFunc.equals(that.elseFunc)); + return null != that + && (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) + && (null == thenFunc ? null == that.thenFunc : thenFunc.equals(that.thenFunc)) + && (null == elseFunc ? null == that.elseFunc : elseFunc.equals(that.elseFunc)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "ConditionalUnaryFunction".hashCode(); if (null != ifPred) { @@ -90,13 +114,11 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "ConditionalUnaryFunction<" + ifPred + "?" + thenFunc + ":" + elseFunc + ">"; } - // attributes - // ------------------------------------------------------------------------ - private UnaryPredicate ifPred = null; - private UnaryFunction thenFunc = null; - private UnaryFunction elseFunc = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryProcedure.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryProcedure.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryProcedure.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/ConditionalUnaryProcedure.java Mon Apr 7 16:29:25 2008 @@ -41,18 +41,31 @@ * @author Rodney Waldhoff */ public final class ConditionalUnaryProcedure implements UnaryProcedure, Serializable { + // attributes + // ------------------------------------------------------------------------ + private UnaryPredicate ifPred = null; + private UnaryProcedure thenProc = null; + private UnaryProcedure elseProc = null; // constructor // ------------------------------------------------------------------------ - - public ConditionalUnaryProcedure(UnaryPredicate ifPred, UnaryProcedure thenPred, UnaryProcedure elsePred) { + /** + * Create a new ConditionalUnaryProcedure. + * @param ifPred if + * @param thenProc then + * @param elseProc else + */ + public ConditionalUnaryProcedure(UnaryPredicate ifPred, UnaryProcedure thenProc, UnaryProcedure elseProc) { this.ifPred = ifPred; - this.thenProc = thenPred; - this.elseProc = elsePred; + this.thenProc = thenProc; + this.elseProc = elseProc; } // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public void run(Object obj) { if (ifPred.test(obj)) { thenProc.run(obj); @@ -61,6 +74,9 @@ } } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof ConditionalUnaryProcedure) { return equals((ConditionalUnaryProcedure) that); @@ -69,13 +85,21 @@ } } + /** + * Learn whether another ConditionalUnaryProcedure is equal to this. + * @param that ConditionalUnaryProcedure to test + * @return boolean + */ public boolean equals(ConditionalUnaryProcedure that) { - return null != that && - (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) && - (null == thenProc ? null == that.thenProc : thenProc.equals(that.thenProc)) && - (null == elseProc ? null == that.elseProc : elseProc.equals(that.elseProc)); + return null != that + && (null == ifPred ? null == that.ifPred : ifPred.equals(that.ifPred)) + && (null == thenProc ? null == that.thenProc : thenProc.equals(that.thenProc)) + && (null == elseProc ? null == that.elseProc : elseProc.equals(that.elseProc)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "ConditionalUnaryProcedure".hashCode(); if (null != ifPred) { @@ -93,13 +117,11 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "ConditionalUnaryProcedure<" + ifPred + "?" + thenProc + ":" + elseProc + ">"; } - // attributes - // ------------------------------------------------------------------------ - private UnaryPredicate ifPred = null; - private UnaryProcedure thenProc = null; - private UnaryProcedure elseProc = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Or.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Or.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Or.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/Or.java Mon Apr 7 16:29:25 2008 @@ -40,24 +40,45 @@ // constructor // ------------------------------------------------------------------------ + /** + * Create a new Or. + */ public Or() { super(); } + /** + * Create a new Or. + * @param p Predicate to add + */ public Or(Predicate p) { super(p); } + /** + * Create a new Or. + * @param p Predicate to add + * @param q Predicate to add + */ public Or(Predicate p, Predicate q) { - super(p,q); + super(p, q); } + /** + * Create a new Or. + * @param p Predicate to add + * @param q Predicate to add + * @param r Predicate to add + */ public Or(Predicate p, Predicate q, Predicate r) { - super(p,q,r); + super(p, q, r); } - // modifiers - // ------------------------------------------------------------------------ + /** + * Fluently add a Predicate. + * @param p Predicate to add + * @return this + */ public Or or(Predicate p) { super.addPredicate(p); return this; @@ -65,6 +86,9 @@ // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public boolean test() { for (Iterator iter = getPredicateIterator(); iter.hasNext();) { if (((Predicate) iter.next()).test()) { @@ -74,6 +98,9 @@ return false; } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof Or) { return equals((Or) that); @@ -82,14 +109,25 @@ } } + /** + * Learn whether another Or is equal to this. + * @param that Or to test + * @return boolean + */ public boolean equals(Or that) { return getPredicateListEquals(that); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { return "Or".hashCode() ^ getPredicateListHashCode(); } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "Or<" + getPredicateListToString() + ">"; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedFunction.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedFunction.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedFunction.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedFunction.java Mon Apr 7 16:29:25 2008 @@ -40,19 +40,32 @@ * @author Rodney Waldhoff */ public class TransposedFunction implements BinaryFunction, Serializable { + // attributes + // ------------------------------------------------------------------------ + private BinaryFunction function = null; // constructor // ------------------------------------------------------------------------ + /** + * Create a new TransposedFunction. + * @param f BinaryFunction to transpose. + */ public TransposedFunction(BinaryFunction f) { function = f; } // functor interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public Object evaluate(Object left, Object right) { - return function.evaluate(right,left); + return function.evaluate(right, left); } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof TransposedFunction) { return equals((TransposedFunction) that); @@ -61,10 +74,18 @@ } } + /** + * Learn whether another TransposedFunction is equal to this. + * @param that TransposedFunction to test + * @return boolean + */ public boolean equals(TransposedFunction that) { return null != that && (null == function ? null == that.function : function.equals(that.function)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "TransposedFunction".hashCode(); if (null != function) { @@ -73,18 +94,22 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "TransposedFunction<" + function + ">"; } // static // ------------------------------------------------------------------------ + /** + * Transpose a BinaryFunction. + * @param f BinaryFunction to transpose + * @return TransposedFunction + */ public static TransposedFunction transpose(BinaryFunction f) { return null == f ? null : new TransposedFunction(f); } - - // attributes - // ------------------------------------------------------------------------ - private BinaryFunction function = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedProcedure.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedProcedure.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedProcedure.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/TransposedProcedure.java Mon Apr 7 16:29:25 2008 @@ -40,19 +40,32 @@ * @author Rodney Waldhoff */ public class TransposedProcedure implements BinaryProcedure, Serializable { + // attributes + // ------------------------------------------------------------------------ + private BinaryProcedure procedure = null; // constructor // ------------------------------------------------------------------------ + /** + * Create a new TransposedProcedure. + * @param p BinaryProcedure to transpose + */ public TransposedProcedure(BinaryProcedure p) { procedure = p; } // functor interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public void run(Object left, Object right) { procedure.run(right,left); } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof TransposedProcedure) { return equals((TransposedProcedure) that); @@ -61,10 +74,18 @@ } } + /** + * Learn whether another TransposedProcedure is equal to this. + * @param that TransposedPredicate to test + * @return boolean + */ public boolean equals(TransposedProcedure that) { return null != that && (null == procedure ? null == that.procedure : procedure.equals(that.procedure)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "TransposedProcedure".hashCode(); if (null != procedure) { @@ -73,18 +94,22 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "TransposedProcedure<" + procedure + ">"; } // static // ------------------------------------------------------------------------ + /** + * Transpose a BinaryProcedure. + * @param p to transpose + * @return TransposedProcedure + */ public static TransposedProcedure transpose(BinaryProcedure p) { return null == p ? null : new TransposedProcedure(p); } - - // attributes - // ------------------------------------------------------------------------ - private BinaryProcedure procedure = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryAnd.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryAnd.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryAnd.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryAnd.java Mon Apr 7 16:29:25 2008 @@ -40,24 +40,47 @@ // constructor // ------------------------------------------------------------------------ + /** + * Create a new UnaryAnd. + */ public UnaryAnd() { super(); } + /** + * Create a new UnaryAnd. + * @param p UnaryPredicate to add + */ public UnaryAnd(UnaryPredicate p) { super(p); } + /** + * Create a new UnaryAnd. + * @param p UnaryPredicate to add + * @param q UnaryPredicate to add + */ public UnaryAnd(UnaryPredicate p, UnaryPredicate q) { super(p,q); } + /** + * Create a new UnaryAnd. + * @param p UnaryPredicate to add + * @param q UnaryPredicate to add + * @param r UnaryPredicate to add + */ public UnaryAnd(UnaryPredicate p, UnaryPredicate q, UnaryPredicate r) { super(p,q,r); } // modifiers // ------------------------------------------------------------------------ + /** + * Fluently add a UnaryPredicate. + * @param p UnaryPredicate to add + * @return this + */ public UnaryAnd and(UnaryPredicate p) { super.addUnaryPredicate(p); return this; @@ -65,6 +88,9 @@ // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public boolean test(Object obj) { for (Iterator iter = getUnaryPredicateIterator(); iter.hasNext();) { if (!((UnaryPredicate) iter.next()).test(obj)) { @@ -74,6 +100,9 @@ return true; } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof UnaryAnd) { return equals((UnaryAnd) that); @@ -82,14 +111,25 @@ } } + /** + * Learn whether another UnaryAnd is equal to this. + * @param that UnaryAnd to test + * @return boolean + */ public boolean equals(UnaryAnd that) { return getUnaryPredicateListEquals(that); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { return "UnaryAnd".hashCode() ^ getUnaryPredicateListHashCode(); } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "UnaryAnd<" + getUnaryPredicateListToString() + ">"; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryCompositeBinaryPredicate.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryCompositeBinaryPredicate.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryCompositeBinaryPredicate.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryCompositeBinaryPredicate.java Mon Apr 7 16:29:25 2008 @@ -39,9 +39,20 @@ * @author Rodney Waldhoff */ public class UnaryCompositeBinaryPredicate implements BinaryPredicate, Serializable { + // attributes + // ------------------------------------------------------------------------ + private BinaryPredicate binary = null; + private UnaryFunction leftUnary = null; + private UnaryFunction rightUnary = null; // constructor // ------------------------------------------------------------------------ + /** + * Create a new UnaryCompositeBinaryPredicate. + * @param f BinaryPredicate to test <i>output(</i><code>f</code><i>), output(</i><code>g</code><i>)</i> + * @param g left UnaryFunction + * @param h right UnaryFunction + */ public UnaryCompositeBinaryPredicate(BinaryPredicate f, UnaryFunction g, UnaryFunction h) { binary = f; leftUnary = g; @@ -50,10 +61,16 @@ // function interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public boolean test(Object left, Object right) { return binary.test(leftUnary.evaluate(left), rightUnary.evaluate(right)); } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof UnaryCompositeBinaryPredicate) { return equals((UnaryCompositeBinaryPredicate) that); @@ -62,13 +79,21 @@ } } + /** + * Learn whether another UnaryCompositeBinaryPredicate is equal to this. + * @param that UnaryCompositeBinaryPredicate to test + * @return boolean + */ public boolean equals(UnaryCompositeBinaryPredicate that) { - return (null != that) && - (null == binary ? null == that.binary : binary.equals(that.binary)) && - (null == leftUnary ? null == that.leftUnary : leftUnary.equals(that.leftUnary)) && - (null == rightUnary ? null == that.rightUnary : rightUnary.equals(that.rightUnary)); + return (null != that) + && (null == binary ? null == that.binary : binary.equals(that.binary)) + && (null == leftUnary ? null == that.leftUnary : leftUnary.equals(that.leftUnary)) + && (null == rightUnary ? null == that.rightUnary : rightUnary.equals(that.rightUnary)); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "UnaryCompositeBinaryPredicate".hashCode(); if (null != binary) { @@ -86,14 +111,11 @@ return hash; } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "UnaryCompositeBinaryPredicate<" + binary + ";" + leftUnary + ";" + rightUnary + ">"; } - - // attributes - // ------------------------------------------------------------------------ - private BinaryPredicate binary = null; - private UnaryFunction leftUnary = null; - private UnaryFunction rightUnary = null; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryOr.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryOr.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryOr.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/UnaryOr.java Mon Apr 7 16:29:25 2008 @@ -40,24 +40,47 @@ // constructor // ------------------------------------------------------------------------ + /** + * Create a new UnaryOr. + */ public UnaryOr() { super(); } + /** + * Create a new UnaryOr. + * @param p Predicate to add + */ public UnaryOr(UnaryPredicate p) { super(p); } + /** + * Create a new UnaryOr. + * @param p Predicate to add + * @param q Predicate to add + */ public UnaryOr(UnaryPredicate p, UnaryPredicate q) { super(p,q); } + /** + * Create a new UnaryOr. + * @param p Predicate to add + * @param q Predicate to add + * @param r Predicate to add + */ public UnaryOr(UnaryPredicate p, UnaryPredicate q, UnaryPredicate r) { super(p,q,r); } // modifiers // ------------------------------------------------------------------------ + /** + * Fluently add a Predicate. + * @param p Predicate to add + * @return this + */ public UnaryOr or(UnaryPredicate p) { super.addUnaryPredicate(p); return this; @@ -65,6 +88,9 @@ // predicate interface // ------------------------------------------------------------------------ + /** + * [EMAIL PROTECTED] + */ public boolean test(Object a) { for (Iterator iter = getUnaryPredicateIterator(); iter.hasNext();) { if (((UnaryPredicate) iter.next()).test(a)) { @@ -74,6 +100,9 @@ return false; } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object that) { if (that instanceof UnaryOr) { return equals((UnaryOr) that); @@ -82,14 +111,25 @@ } } + /** + * Learn whether another UnaryOr is equal to this. + * @param that UnaryOr to test + * @return boolean + */ public boolean equals(UnaryOr that) { return getUnaryPredicateListEquals(that); } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { return "UnaryOr".hashCode() ^ getUnaryPredicateListHashCode(); } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "UnaryOr<" + getUnaryPredicateListToString() + ">"; } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/WhileDoProcedure.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/WhileDoProcedure.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/WhileDoProcedure.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/composite/WhileDoProcedure.java Mon Apr 7 16:29:25 2008 @@ -37,17 +37,26 @@ * @author Rodney Waldhoff */ public class WhileDoProcedure extends AbstractLoopProcedure { + /** + * Create a new WhileDoProcedure. + * @param condition while + * @param action to do + */ public WhileDoProcedure(Predicate condition, Procedure action) { super(condition, action); } - + /** + * [EMAIL PROTECTED] + */ public void run() { while(getCondition().test()) getAction().run(); } - + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object object) { if (object instanceof WhileDoProcedure) { return super.equals(object); @@ -56,13 +65,17 @@ } } - + /** + * [EMAIL PROTECTED] + */ public int hashCode() { return super.hashCode("WhileDoProcedure".hashCode()); } - + /** + * [EMAIL PROTECTED] + */ public String toString() { - return "WhileDoProcedure<while("+getCondition()+") do("+getAction()+")>"; + return "WhileDoProcedure<while(" + getCondition() + ") do(" + getAction() + ")>"; } } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/BaseGenerator.java Mon Apr 7 16:29:25 2008 @@ -31,12 +31,14 @@ * @version $Revision$ $Date$ * @author Jason Horman ([EMAIL PROTECTED]) */ - public abstract class BaseGenerator implements Generator { /** A generator can wrap another generator. */ private Generator wrappedGenerator = null; + /** Set to true when the generator is [EMAIL PROTECTED] #stop stopped}. */ + private boolean stopped = false; + /** Create a new generator. */ public BaseGenerator() { } @@ -45,84 +47,125 @@ * A generator can wrap another generator. When wrapping generators you * should use probably this constructor since doing so will cause the * [EMAIL PROTECTED] #stop} method to stop the wrapped generator as well. + * @param generator Generator to wrap */ public BaseGenerator(Generator generator) { this.wrappedGenerator = generator; } - /** Get the generator that is being wrapped. */ + /** + * Get the generator that is being wrapped. + * @return Generator + */ protected Generator getWrappedGenerator() { return wrappedGenerator; } - /** Generators must implement this method. */ + /** + * [EMAIL PROTECTED] + * Generators must implement this method. + */ public abstract void run(UnaryProcedure proc); - /** Stop the generator. Will stop the wrapped generator if one was set. */ + /** + * [EMAIL PROTECTED] + * Stop the generator. Will stop the wrapped generator if one was set. + */ public void stop() { if (wrappedGenerator != null) { wrappedGenerator.stop(); } stopped = true; } - /** Check if the generator is stopped. */ + /** + * [EMAIL PROTECTED] + * Check if the generator is stopped. + */ public boolean isStopped() { return stopped; } - /** Set to true when the generator is [EMAIL PROTECTED] #stop stopped}. */ - private boolean stopped = false; - - /*** See [EMAIL PROTECTED] Algorithms#apply}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#apply}. + */ public final Generator apply(UnaryFunction func) { return Algorithms.apply(this,func); } - /** See [EMAIL PROTECTED] Algorithms#contains}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#contains}. + */ public final boolean contains(UnaryPredicate pred) { return Algorithms.contains(this, pred); } - /** See [EMAIL PROTECTED] Algorithms#detect}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#detect}. + */ public final Object detect(UnaryPredicate pred) { return Algorithms.detect(this, pred); } - /** See [EMAIL PROTECTED] Algorithms#detect}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#detect}. + */ public final Object detect(UnaryPredicate pred, Object ifNone) { return Algorithms.detect(this, pred, ifNone); } - /** Synonym for run. */ + /** + * [EMAIL PROTECTED] + * Synonym for run. + */ public final void foreach(UnaryProcedure proc) { Algorithms.foreach(this, proc); } - /** See [EMAIL PROTECTED] Algorithms#inject}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#inject}. + */ public final Object inject(Object seed, BinaryFunction func) { return Algorithms.inject(this, seed, func); } - /** See [EMAIL PROTECTED] Algorithms#reject}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#reject}. + */ public final Generator reject(UnaryPredicate pred) { return Algorithms.reject(this, pred); } - /** See [EMAIL PROTECTED] Algorithms#select}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#select}. + */ public final Generator select(UnaryPredicate pred) { return Algorithms.select(this, pred); } - /** See [EMAIL PROTECTED] Algorithms#select}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#select}. + */ public final Generator where(UnaryPredicate pred) { return Algorithms.select(this, pred); } - /** See [EMAIL PROTECTED] Algorithms#until}. */ + /** + * [EMAIL PROTECTED] + * See [EMAIL PROTECTED] Algorithms#until}. + */ public final Generator until(UnaryPredicate pred) { return Algorithms.until(this, pred); } /** + * [EMAIL PROTECTED] * Transforms this generator using the passed in * UnaryFunction. An example function might turn the contents of the * generator into a [EMAIL PROTECTED] Collection} of elements. @@ -131,12 +174,18 @@ return transformer.evaluate(this); } - /** Same as to(new CollectionTransformer(collection)). */ + /** + * [EMAIL PROTECTED] + * Same as to(new CollectionTransformer(collection)). + */ public final Collection to(Collection collection) { return (Collection) to(new CollectionTransformer(collection)); } - /** Same as to(new CollectionTransformer()). */ + /** + * [EMAIL PROTECTED] + * Same as to(new CollectionTransformer()). + */ public final Collection toCollection() { return (Collection) to(new CollectionTransformer()); } Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/IntegerRange.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/IntegerRange.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/IntegerRange.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/IntegerRange.java Mon Apr 7 16:29:25 2008 @@ -133,7 +133,7 @@ // private methods //--------------------------------------------------------------- /** - * Get <code>value/|value|</code> (0 when value == 0). + * Get <code>value/|value|</code> (0 when value == 0). * @param value to test * @return int */ Modified: commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/LongRange.java URL: http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/LongRange.java?rev=645735&r1=645734&r2=645735&view=diff ============================================================================== --- commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/LongRange.java (original) +++ commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/util/LongRange.java Mon Apr 7 16:29:25 2008 @@ -17,7 +17,6 @@ import org.apache.commons.functor.UnaryProcedure; import org.apache.commons.functor.generator.BaseGenerator; - /** * A generator for the range <i>from</i> (inclusive) to <i>to</i> (exclusive). * @@ -27,22 +26,49 @@ * @author Rodney Waldhoff */ public final class LongRange extends BaseGenerator { + // attributes + //--------------------------------------------------------------- + + private long from; + private long to; + private long step; // constructors //--------------------------------------------------------------- - + /** + * Create a new LongRange. + * @param from start + * @param to end + */ public LongRange(Number from, Number to) { - this(from.longValue(),to.longValue()); + this(from.longValue(), to.longValue()); } + /** + * Create a new LongRange. + * @param from start + * @param to end + * @param step increment + */ public LongRange(Number from, Number to, Number step) { - this(from.longValue(),to.longValue(),step.longValue()); + this(from.longValue(), to.longValue(), step.longValue()); } + /** + * Create a new LongRange. + * @param from start + * @param to end + */ public LongRange(long from, long to) { - this(from,to,defaultStep(from,to)); + this(from, to, defaultStep(from, to)); } + /** + * Create a new LongRange. + * @param from start + * @param to end + * @param step increment + */ public LongRange(long from, long to, long step) { if (from != to && signOf(step) != signOf(to-from)) { throw new IllegalArgumentException("Will never reach " + to + " from " + from + " using step " + step); @@ -55,23 +81,31 @@ // methods //--------------------------------------------------------------- - + /** + * [EMAIL PROTECTED] + */ public void run(UnaryProcedure proc) { if (signOf(step) == -1L) { - for (long i=from; i > to; i += step) { + for (long i = from; i > to; i += step) { proc.run(new Long(i)); } } else { - for (long i=from; i < to; i += step) { + for (long i = from; i < to; i += step) { proc.run(new Long(i)); } } } + /** + * [EMAIL PROTECTED] + */ public String toString() { return "LongRange<" + from + "," + to + "," + step + ">"; } + /** + * [EMAIL PROTECTED] + */ public boolean equals(Object obj) { if (obj instanceof LongRange) { LongRange that = (LongRange) obj; @@ -81,6 +115,9 @@ } } + /** + * [EMAIL PROTECTED] + */ public int hashCode() { int hash = "LongRange".hashCode(); hash <<= 2; @@ -94,17 +131,27 @@ // private methods //--------------------------------------------------------------- - + /** + * Get <code>value/|value|</code> (0L when value == 0L). + * @param value to test + * @return long + */ private static long signOf(long value) { - if (value < 0) { - return -1; - } else if (value > 0) { - return 1; + if (value < 0L) { + return -1L; + } else if (value > 0L) { + return 1L; } else { - return 0; + return 0L; } } + /** + * Calculate default step to get from <code>from</code> to <code>to</code>. + * @param from start + * @param to end + * @return long + */ private static long defaultStep(long from, long to) { if (from > to) { return -1L; @@ -112,13 +159,5 @@ return 1L; } } - - // attributes - //--------------------------------------------------------------- - - private long from; - private long to; - private long step; - }