Package org.organicdesign.fp.oneOf
Class OneOf2OrNone<A,B>
- java.lang.Object
-
- org.organicdesign.fp.oneOf.OneOf2OrNone<A,B>
-
public abstract class OneOf2OrNone<A,B> extends Object
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
int
hashCode()
<R> R
match(@NotNull Fn1<A,R> fa, @NotNull Fn1<B,R> fb, @NotNull Fn0<R> fz)
Languages that have union types built in have a match statement that works like this method.String
toString()
-
-
-
Constructor Detail
-
OneOf2OrNone
protected OneOf2OrNone(@Nullable @Nullable Object o, @NotNull @NotNull Class<A> aClass, @NotNull @NotNull Class<B> bClass, int index)
Protected constructor for subclassing.- Parameters:
o
- the item (may be null)aClass
- class 0 (to have at runtime for descriptive error messages and toString()).bClass
- class 1 (to have at runtime for descriptive error messages and toString()).index
- 0 means this represents an A, 1 represents a B, 2 represents a None
-
-
Method Detail
-
match
public <R> R match(@NotNull @NotNull Fn1<A,R> fa, @NotNull @NotNull Fn1<B,R> fb, @NotNull @NotNull Fn0<R> fz)
Languages that have union types built in have a match statement that works like this method. Exactly one of these functions will be executed - determined by which type of item this object holds.- Parameters:
fa
- the function to be executed if this OneOf stores the first type.fb
- the function to be executed if this OneOf stores the second type.fz
- the function to be executed if this OneOf stores a None.- Returns:
- the return value of whichever function is executed.
-
-