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 15:06:42 UTC
svn commit: r1605381 - in
/pivot/trunk/core/src/org/apache/pivot/functional/monad: Monad.java
None.java Option.java OptionCompanion.java
Author: smartini
Date: Wed Jun 25 13:06:41 2014
New Revision: 1605381
URL: http://svn.apache.org/r1605381
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=1605381&r1=1605380&r2=1605381&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 13:06:41 2014
@@ -31,4 +31,7 @@ public abstract class Monad<T> {
return "Monad()";
}
+// TODO: check if add other abstract (generic, typical of Monads: apply, unit, map, flatten, etc)
+// methods here, and see what implement in Option ...
+
}
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=1605381&r1=1605380&r2=1605381&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 13:06:41 2014
@@ -16,6 +16,8 @@
*/
package org.apache.pivot.functional.monad;
+import java.util.NoSuchElementException;
+
/**
* Container for an immutable no-value, derived from Option.
*/
@@ -46,7 +48,7 @@ public final class None<T> extends Optio
@Override
public T getValue() {
- throw new IllegalStateException("None does not contain a value");
+ throw new NoSuchElementException("None does not contain a value");
}
@Override
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=1605381&r1=1605380&r2=1605381&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 13:06:41 2014
@@ -96,6 +96,4 @@ public abstract class Option<T> extends
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=1605381&r1=1605380&r2=1605381&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 13:06:41 2014
@@ -58,29 +58,32 @@ public final class OptionCompanion<T> {
if (val != null) {
return new Some<>(val);
}
- // return new None<>();
+
return None.getInstance();
}
/**
* Utility method to return the value contained in the given Option.
* @param o the Option
- * @return the value (if any)
+ * @return the value if any, or null
*/
public T toValue(final Option<T> o) {
if (o == null) {
throw new IllegalArgumentException("option is null.");
}
+ if (!o.hasValue()) {
+ return null;
+ }
+
return o.getValue();
- // TODO: make generic (even to handle hasValue, etc) ...
}
/**
* Utility method to return the value contained in the given Option,
* or an alternate value if not present.
* @param o the Option
- * @param alternativeValue the alternative value
+ * @param alternativeValue the alternative value (null could be used here)
* @return value if set, otherwise alternativeValue
*/
public T toValueOrElse(final Option<T> o, final T alternativeValue) {
@@ -101,8 +104,11 @@ public final class OptionCompanion<T> {
throw new IllegalArgumentException("option is null.");
}
+ if (o instanceof None) {
+ return false;
+ }
+
return o.getValue() instanceof Option;
- // TODO: make generic (even to handle hasValue, etc) ...
}
/*