You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2014/06/25 10:28:34 UTC

svn commit: r1605290 - in /pivot/trunk/core/src/org/apache/pivot/functional/monad: Monad.java None.java Option.java OptionCompanion.java

Author: smartini
Date: Wed Jun 25 08:28:34 2014
New Revision: 1605290

URL: http://svn.apache.org/r1605290
Log:
PIVOT-799, small changes to monad-related classes (still wip)

Modified:
    pivot/trunk/core/src/org/apache/pivot/functional/monad/Monad.java
    pivot/trunk/core/src/org/apache/pivot/functional/monad/None.java
    pivot/trunk/core/src/org/apache/pivot/functional/monad/Option.java
    pivot/trunk/core/src/org/apache/pivot/functional/monad/OptionCompanion.java

Modified: pivot/trunk/core/src/org/apache/pivot/functional/monad/Monad.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/functional/monad/Monad.java?rev=1605290&r1=1605289&r2=1605290&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/functional/monad/Monad.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/functional/monad/Monad.java Wed Jun 25 08:28:34 2014
@@ -17,54 +17,18 @@
 package org.apache.pivot.functional.monad;
 
 /**
- * Definition of a generic Monad, to hold an invariant value.
+ * Definition of a generic Monad.
  */
 public abstract class Monad<T> {
-    final T value;
 
-    /**
-     * Monad constructor
-     *
-     * @param val the value to set in the Monad
-     */
-    Monad(final T val) {
-        value = val;
+    /** Default constructor */
+    protected Monad() {
+        // no-op
     }
 
     @Override
     public String toString() {
-        return "Monad(" + ((value != null) ? value.toString() : "null") + ")";
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((value == null) ? 0 : value.hashCode());
-        return result;
-    }
-
-    @SuppressWarnings("rawtypes")
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (!(obj instanceof Monad)) {
-            return false;
-        }
-        Monad other = (Monad) obj;
-        if (value == null) {
-            if (other.value != null) {
-                return false;
-            }
-        } else if (!value.equals(other.value)) {
-            return false;
-        }
-        return true;
+        return "Monad()";
     }
 
 }

Modified: pivot/trunk/core/src/org/apache/pivot/functional/monad/None.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/functional/monad/None.java?rev=1605290&r1=1605289&r2=1605290&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/functional/monad/None.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/functional/monad/None.java Wed Jun 25 08:28:34 2014
@@ -19,8 +19,8 @@ package org.apache.pivot.functional.mona
 /**
  * Container for an immutable no-value, derived from Option.
  */
+@SuppressWarnings({"unchecked", "rawtypes"})
 public final class None<T> extends Option<T> {
-    @SuppressWarnings("rawtypes")
     private static final None INSTANCE = new None<>();
 
     /**

Modified: pivot/trunk/core/src/org/apache/pivot/functional/monad/Option.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/functional/monad/Option.java?rev=1605290&r1=1605289&r2=1605290&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/functional/monad/Option.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/functional/monad/Option.java Wed Jun 25 08:28:34 2014
@@ -20,13 +20,13 @@ package org.apache.pivot.functional.mona
  * Definition of a generic Option container, to hold an invariant value (derived from Monad).
  */
 public abstract class Option<T> extends Monad<T> {
+    final T value;
 
     /**
-     * Default constructor, do not use.
+     * Default constructor, do not use because it set null as invariant value to hold.
      */
     Option() {
-        super(null);
-        // throw new IllegalArgumentException("Option must have a value in the constructor");
+        this(null);
     }
 
     /**
@@ -35,7 +35,7 @@ public abstract class Option<T> extends 
      * @param val the value to set in the Option
      */
     Option(final T val) {
-        super(val);
+        this.value = val;
     }
 
     /**
@@ -60,6 +60,42 @@ public abstract class Option<T> extends 
         return (hasValue() == true) ? getValue() : alternativeValue;
     }
 
-// TODO: check if implement map, mapFlatten, etc ...
+    @Override
+    public String toString() {
+        return "Monad(" + ((value != null) ? value.toString() : "null") + ")";
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((value == null) ? 0 : value.hashCode());
+        return result;
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof Option)) {
+            return false;
+        }
+        Option other = (Option) obj;
+        if (value == null) {
+            if (other.value != null) {
+                return false;
+            }
+        } else if (!value.equals(other.value)) {
+            return false;
+        }
+        return true;
+    }
+
+// TODO: check if implement map, flatten, etc ...
 
 }

Modified: pivot/trunk/core/src/org/apache/pivot/functional/monad/OptionCompanion.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/functional/monad/OptionCompanion.java?rev=1605290&r1=1605289&r2=1605290&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/functional/monad/OptionCompanion.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/functional/monad/OptionCompanion.java Wed Jun 25 08:28:34 2014
@@ -19,8 +19,8 @@ package org.apache.pivot.functional.mona
 /**
  * Utility class for additional Option methods.
  */
+@SuppressWarnings({"unchecked", "rawtypes"})
 public final class OptionCompanion<T> {
-    @SuppressWarnings("rawtypes")
     private static final OptionCompanion INSTANCE = new OptionCompanion<>();
 
     /**