
jedi.option.None Maven / Gradle / Ivy
The newest version!
package jedi.option;
import jedi.functional.*;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/**
* None represents a non existent value.
*/
public final class None implements Option {
public static final long serialVersionUID = 1L;
private final EmptyIterator iterator = new EmptyIterator();
public List asList() {
return Collections. emptyList();
}
public T getOrElse(Functor0 extends T> generator) {
return generator.execute();
}
public T getOrElse(T defaultValue) {
return defaultValue;
}
public void match(OptionMatcher super T> matcher) {
matcher.caseNone();
}
public void match(Command super T> someCommand, Command0 noneCommand) {
noneCommand.execute();
}
public R1 match(Functor super T, R1> someFunctor, Functor0 noneFunctor) {
return noneFunctor.execute();
}
public Option map(Functor super T, R> mappingFunction) {
return Options. none();
}
public Option flatMap(Functor super T, Option> mappingFunction) {
return Options. none();
}
@SuppressWarnings("unchecked")
@Override
public boolean equals(Object obj) {
return obj instanceof None;
}
@Override
public int hashCode() {
return getClass().hashCode();
}
@Override
public String toString() {
return "None";
}
public Iterator iterator() {
return iterator;
}
public Option filter(Filter super T> f) {
return this;
}
public void forEach(Command super T> command) {
// no op
}
/**
* @return null
*/
public T unsafeGet() {
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy