All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 generator) {
		return generator.execute();
	}

	public T getOrElse(T defaultValue) {
		return defaultValue;
	}

	public void match(OptionMatcher matcher) {
		matcher.caseNone();
	}

	public void match(Command someCommand, Command0 noneCommand) {
		noneCommand.execute();
	}

	public  R1 match(Functor someFunctor, Functor0 noneFunctor) {
		return noneFunctor.execute();
	}

	public  Option map(Functor mappingFunction) {
		return Options. none();
	}

	public  Option flatMap(Functor> 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 f) {
		return this;
	}

	public void forEach(Command command) {
		// no op
	}

	/**
	 * @return null
	 */
	public T unsafeGet() {
		return null;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy