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<>();
/**