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

fi.evolver.utils.OptionalUtils Maven / Gradle / Ivy

There is a newer version: 3.5.0
Show newest version
package fi.evolver.utils;

import java.util.Arrays;
import java.util.Optional;
import java.util.stream.Stream;

public class OptionalUtils {

	private OptionalUtils() { }


	@SafeVarargs
	public static  Optional getFirst(Optional... optionals) {
		return stream(optionals).findFirst();
	}


	public static  boolean equalBothPresent(Optional optional1, Optional optional2) {
		if (!optional1.isPresent() || !optional2.isPresent())
			return false;

		return optional1.get().equals(optional2.get());
	}


	@SafeVarargs
	public static  Stream stream(Optional... optionals) {
		return Arrays.stream(optionals)
				.filter(Optional::isPresent)
				.map(Optional::get);
	}


	public static > int compareEmptyLast(Optional optional1, Optional optional2) {
		if (optional1.isPresent() && optional2.isPresent())
			return optional1.get().compareTo(optional2.get());
		if (optional1.isPresent() != optional2.isPresent())
			return optional1.isPresent() ? -1 : 1;
		return 0;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy