sbt/interface/src/main/java/xsbti/Maybe.java

30 lines
726 B
Java

/* sbt -- Simple Build Tool
* Copyright 2008, 2009, 2010 Mark Harrah
*/
package xsbti;
/** Intended as a lightweight carrier for scala.Option. */
public abstract class Maybe<t>
{
// private pending Scala bug #3642
protected Maybe() {}
public static <s> Maybe<s> just(final s v)
{
return new Maybe<s>() {
public boolean isDefined() { return true; }
public s get() { return v; }
};
}
public static <s> Maybe<s> nothing()
{
return new Maybe<s>() {
public boolean isDefined() { return false; }
public s get() { throw new UnsupportedOperationException("nothing.get"); }
};
}
public final boolean isEmpty() { return !isDefined(); }
public abstract boolean isDefined();
public abstract t get();
}