package de.retest.recheck.util;

import java.util.Optional;
import java.util.function.Supplier;
import java.util.stream.Stream;

public class OptionalUtil {

	private OptionalUtil() {}

	public static <T> Stream<T> stream( final Optional<T> o ) {
		return o.map( Stream::of ).orElseGet( Stream::empty );
	}

	public static <T> Optional<T> or​( final Optional<T> o, final Supplier<Optional<T>> s ) {
		return o.isPresent() ? o : s.get();
	}

}

@@ -179,16 +179,50 @@
 l() %7B%7D%0A%0A
+%09@SuppressWarnings( %22unchecked%22 )%0A
 %09public 
@@ -261,24 +261,34 @@
 al Optional%3C
+? extends 
 T%3E o ) %7B%0A%09%09r
@@ -292,16 +292,28 @@
 %09%09return
+ (Stream%3CT%3E)
  o.map( 
@@ -357,16 +357,50 @@
  );%0A%09%7D%0A%0A
+%09@SuppressWarnings( %22unchecked%22 )%0A
 %09public 
@@ -446,14 +446,27 @@
 nal%3C
+? extends 
 T%3E o,
- 
+%0A%09%09%09
 fina
@@ -476,25 +476,45 @@
 upplier%3C
-Optional%3C
+? extends Optional%3C? extends 
 T%3E%3E s ) 
@@ -524,16 +524,31 @@
 %09return 
+(Optional%3CT%3E) (
 o.isPres
@@ -566,16 +566,17 @@
  s.get()
+)
 ;%0A%09%7D%0A%0A%7D%0A

Improve types