Author: simonetripodi
Date: Thu May 31 16:06:36 2012
New Revision: 1344792

URL: http://svn.apache.org/viewvc?rev=1344792&view=rev
Log:
[FUNCTOR-9] Make Limit and Offset Serializable - patch submitted by Bruno P. 
Kinoshita

Modified:
    commons/proper/functor/trunk/src/changes/changes.xml
    
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Limit.java
    
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Offset.java

Modified: commons/proper/functor/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/changes/changes.xml?rev=1344792&r1=1344791&r2=1344792&view=diff
==============================================================================
--- commons/proper/functor/trunk/src/changes/changes.xml (original)
+++ commons/proper/functor/trunk/src/changes/changes.xml Thu May 31 16:06:36 
2012
@@ -26,6 +26,9 @@
       <action dev="simonetripodi" issue="FUNCTOR-16" due-to="Bruno P. 
Kinoshita">
         Fix checkstyle errors
       </action>
+      <action dev="simonetripodi" issue="FUNCTOR-9" due-to="Bruno P. 
Kinoshita">
+        Make Limit and Offset Serializable
+      </action>
       <action dev="simonetripodi" issue="FUNCTOR-8" due-to="Bruno P. 
Kinoshita">
         Possible NPE in TransformedGenerator if getWrappedGenerator() is 
overridden to return null
       </action>

Modified: 
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Limit.java
URL: 
http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Limit.java?rev=1344792&r1=1344791&r2=1344792&view=diff
==============================================================================
--- 
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Limit.java
 (original)
+++ 
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Limit.java
 Thu May 31 16:06:36 2012
@@ -17,6 +17,8 @@
  */
 package org.apache.commons.functor.core;
 
+import java.io.Serializable;
+
 import org.apache.commons.functor.BinaryPredicate;
 import org.apache.commons.functor.Predicate;
 import org.apache.commons.functor.UnaryPredicate;
@@ -32,8 +34,14 @@ import org.apache.commons.functor.UnaryP
  * @author Rodney Waldhoff
  */
 
-public final class Limit implements Predicate, UnaryPredicate<Object>, 
BinaryPredicate<Object, Object> {
-    // instance variables
+public final class Limit implements Predicate, UnaryPredicate<Object>, 
BinaryPredicate<Object, Object>, Serializable {
+       // static attributes
+    // ------------------------------------------------------------------------
+    /**
+        * serialVersionUID declaration.
+        */
+       private static final long serialVersionUID = 8974528922587619067L;
+       // instance variables
     //---------------------------------------------------------------
     /**
      * The max number of times the predicate can be invoked.
@@ -85,6 +93,32 @@ public final class Limit implements Pred
      * {@inheritDoc}
      */
     @Override
+    public boolean equals(Object obj) {
+       if(obj == this) {
+               return true;
+       }
+       if(!(obj instanceof Limit)) {
+               return false;
+       }
+       Limit other = (Limit)obj;
+       return other.max == max;
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int hashCode() {
+       int result = "Limit".hashCode();
+       result <<= 2;
+       result ^= max;
+       return result;
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public String toString() {
         return "Limit<" + max + ">";
     }

Modified: 
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Offset.java
URL: 
http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Offset.java?rev=1344792&r1=1344791&r2=1344792&view=diff
==============================================================================
--- 
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Offset.java
 (original)
+++ 
commons/proper/functor/trunk/src/main/java/org/apache/commons/functor/core/Offset.java
 Thu May 31 16:06:36 2012
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.functor.core;
 
+import java.io.Serializable;
+
 import org.apache.commons.functor.BinaryPredicate;
 import org.apache.commons.functor.Predicate;
 import org.apache.commons.functor.UnaryPredicate;
@@ -31,8 +33,15 @@ import org.apache.commons.functor.UnaryP
  * @author Rodney Waldhoff
  */
 
-public final class Offset implements Predicate, UnaryPredicate<Object>, 
BinaryPredicate<Object, Object> {
-    // instance variables
+public final class Offset implements Predicate, UnaryPredicate<Object>, 
BinaryPredicate<Object, Object>, Serializable {
+       // static attributes
+    // ------------------------------------------------------------------------
+    /**
+        * serialVersionUID declaration.
+        */
+       private static final long serialVersionUID = 5800706757874735854L;
+       
+       // instance variables
     //---------------------------------------------------------------
     /**
      * The number of times the predicate must return {@code false}.
@@ -84,6 +93,32 @@ public final class Offset implements Pre
      * {@inheritDoc}
      */
     @Override
+    public boolean equals(Object obj) {
+       if(obj == this) {
+               return true;
+       }
+       if(!(obj instanceof Offset)) {
+               return false;
+       }
+       Offset other = (Offset)obj;
+       return other.min == min;
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int hashCode() {
+       int result = "Offset".hashCode();
+       result <<= 2;
+       result ^= min;
+       return result;
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public String toString() {
         return "Offset<" + min + ">";
     }


Reply via email to