Package org.codehaus.groovy.vmplugin.v8
Class PluginDefaultGroovyMethods
- java.lang.Object
-
- org.codehaus.groovy.vmplugin.v8.PluginDefaultGroovyMethods
-
public class PluginDefaultGroovyMethods extends Object
Defines new Groovy methods which appear on normal JDK 8 classes inside the Groovy environment.- Since:
- 2.5.0
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
asBoolean(Optional<?> optional)
Coerce anOptional
instance to aboolean
value.static <S,T>
Future<T>collect(Future<S> self, Closure<T> transform)
Returns a Future asynchronously returning a transformed result.static <S,T>
Optional<T>collect(Optional<S> self, Closure<T> transform)
If the optional contains a value, returns an optional containing the transformed value obtained using thetransform
closure or otherwise an empty optional.static <T> Optional<T>
filter(Optional<?> self, Class<T> type)
Tests given value against specified type and changes generics of result.static OptionalDouble
filter(OptionalDouble self, DoublePredicate test)
If a value is present in theOptionalDouble
, tests the value using the given predicate and returns the optional if the test returns true or empty otherwise.static OptionalInt
filter(OptionalInt self, IntPredicate test)
If a value is present in theOptionalInt
, tests the value using the given predicate and returns the optional if the test returns true or else empty.static OptionalLong
filter(OptionalLong self, LongPredicate test)
If a value is present in theOptionalLong
, tests the value using the given predicate and returns the optional if the test returns true or else empty.static double
get(OptionalDouble self)
If a value is present in theOptionalDouble
, returns the value, otherwise throwsNoSuchElementException
.static int
get(OptionalInt self)
If a value is present in theOptionalInt
, returns the value, otherwise throwsNoSuchElementException
.static long
get(OptionalLong self)
If a value is present in theOptionalLong
, returns the value, otherwise throwsNoSuchElementException
.static <T> OptionalDouble
mapToDouble(Optional<T> self, ToDoubleFunction<? super T> mapper)
If a value is present in theOptionalDouble
, returns anOptionalDouble
consisting of the result of applying the given function to the value or else empty.static <T> OptionalInt
mapToInt(Optional<T> self, ToIntFunction<? super T> mapper)
If a value is present in theOptionalInt
, returns anOptionalInt
consisting of the result of applying the given function to the value or else empty.static <T> OptionalLong
mapToLong(Optional<T> self, ToLongFunction<? super T> mapper)
If a value is present in theOptionalLong
, returns anOptionalLong
consisting of the result of applying the given function to the value or else empty.static <T> Optional<T>
mapToObj(OptionalDouble self, DoubleFunction<? extends T> mapper)
If a value is present in theOptionalDouble
, returns anOptional
consisting of the result of applying the given function to the value or else empty.static <T> Optional<T>
mapToObj(OptionalInt self, IntFunction<? extends T> mapper)
If a value is present in theOptionalInt
, returns anOptional
consisting of the result of applying the given function to the value or else empty.static <T> Optional<T>
mapToObj(OptionalLong self, LongFunction<? extends T> mapper)
If a value is present in theOptionalLong
, returns anOptional
consisting of the result of applying the given function to the value or else empty.static Stream<Boolean>
stream(boolean[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Byte>
stream(byte[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Character>
stream(char[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Double>
stream(double[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Float>
stream(float[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Integer>
stream(int[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Long>
stream(long[] self)
Returns a sequentialStream
with the specified array as its source.static Stream<Short>
stream(short[] self)
Returns a sequentialStream
with the specified array as its source.static <T> Stream<T>
stream(Iterable<T> self)
Returns a sequentialStream
with the specified element(s) as its source.static <T> Stream<T>
stream(Enumeration<T> self)
Returns a sequentialStream
with the specified element(s) as its source.static <T> Stream<T>
stream(Iterator<T> self)
Returns a sequentialStream
with the specified element(s) as its source.static <T> Stream<T>
stream(Optional<T> self)
static DoubleStream
stream(OptionalDouble self)
If a value is present in theOptionalDouble
, returns aDoubleStream
with the value as its source or else an empty stream.static IntStream
stream(OptionalInt self)
If a value is present in theOptionalInt
, returns anIntStream
with the value as its source or else an empty stream.static LongStream
stream(OptionalLong self)
If a value is present in theOptionalLong
, returns aLongStream
with the value as its source or else an empty stream.static <T> Stream<T>
stream(Spliterator<T> self)
Returns a sequentialStream
with the specified element(s) as its source.static <T> Stream<T>
stream(NullObject self)
Returns an empty sequentialStream
.static <T> Stream<T>
stream(T self)
Returns a sequentialStream
containing a single element.static <T> Stream<T>
stream(T[] self)
Returns a sequentialStream
with the specified array as its source.static <T> List<T>
toList(BaseStream<T,? extends BaseStream> self)
Accumulates the elements of stream into a new List.static <T> List<T>
toList(Stream<T> self)
Accumulates the elements of stream into a new List.static <T> Set<T>
toSet(BaseStream<T,? extends BaseStream> self)
Accumulates the elements of stream into a new Set.static <T> Set<T>
toSet(Stream<T> self)
Accumulates the elements of stream into a new Set.
-
-
-
Method Detail
-
asBoolean
public static boolean asBoolean(Optional<?> optional)
Coerce anOptional
instance to aboolean
value.assert !Optional.empty().asBoolean() assert Optional.of(1234).asBoolean()
- Parameters:
optional
- the Optional- Returns:
true
if a value is present, otherwisefalse
- Since:
- 2.5.0
-
get
public static int get(OptionalInt self)
If a value is present in theOptionalInt
, returns the value, otherwise throwsNoSuchElementException
.assert OptionalInt.of(1234).get() == 1234
- Since:
- 3.0.0
-
get
public static long get(OptionalLong self)
If a value is present in theOptionalLong
, returns the value, otherwise throwsNoSuchElementException
.assert OptionalLong.of(1234L).get() == 1234L
- Since:
- 3.0.0
-
get
public static double get(OptionalDouble self)
If a value is present in theOptionalDouble
, returns the value, otherwise throwsNoSuchElementException
.assert OptionalDouble.of(Math.PI).get() == Math.PI
- Since:
- 3.0.0
-
filter
public static <T> Optional<T> filter(Optional<?> self, Class<T> type)
Tests given value against specified type and changes generics of result. This is equivalent to:self.filter(it -> it instanceof Type).map(it -> (Type) it)
assert !Optional.empty().filter(Number).isPresent() assert !Optional.of('x').filter(Number).isPresent() assert Optional.of(1234).filter(Number).isPresent() assert Optional.of(1234).filter(Number).get().equals(1234)
- Since:
- 3.0.0
-
filter
public static OptionalInt filter(OptionalInt self, IntPredicate test)
If a value is present in theOptionalInt
, tests the value using the given predicate and returns the optional if the test returns true or else empty.assert !OptionalInt.empty().filter(i -> true).isPresent() assert OptionalInt.of(1234).filter(i -> true).isPresent() assert !OptionalInt.of(1234).filter(i -> false).isPresent() assert OptionalInt.of(1234).filter(i -> true).getAsInt() == 1234
- Since:
- 3.0.0
-
filter
public static OptionalLong filter(OptionalLong self, LongPredicate test)
If a value is present in theOptionalLong
, tests the value using the given predicate and returns the optional if the test returns true or else empty.assert !OptionalLong.empty().filter(n -> true).isPresent() assert OptionalLong.of(123L).filter(n -> true).isPresent() assert !OptionalLong.of(123L).filter(n -> false).isPresent() assert OptionalLong.of(123L).filter(n -> true).getAsLong() == 123L
- Since:
- 3.0.0
-
filter
public static OptionalDouble filter(OptionalDouble self, DoublePredicate test)
If a value is present in theOptionalDouble
, tests the value using the given predicate and returns the optional if the test returns true or empty otherwise.assert !OptionalDouble.empty().filter(n -> true).isPresent() assert OptionalDouble.of(Math.PI).filter(n -> true).isPresent() assert !OptionalDouble.of(Math.PI).filter(n -> false).isPresent() assert OptionalDouble.of(Math.PI).filter(n -> true).getAsDouble() == Math.PI
- Since:
- 3.0.0
-
mapToObj
public static <T> Optional<T> mapToObj(OptionalInt self, IntFunction<? extends T> mapper)
If a value is present in theOptionalInt
, returns anOptional
consisting of the result of applying the given function to the value or else empty.assert !OptionalInt.empty().mapToObj(x -> new Object()).isPresent() assert OptionalInt.of(1234).mapToObj(x -> new Object()).isPresent() assert !OptionalInt.of(1234).mapToObj(x -> null).isPresent() assert OptionalInt.of(1234).mapToObj(Integer::toString).get() == '1234'
- Since:
- 3.0.0
-
mapToObj
public static <T> Optional<T> mapToObj(OptionalLong self, LongFunction<? extends T> mapper)
If a value is present in theOptionalLong
, returns anOptional
consisting of the result of applying the given function to the value or else empty.assert !OptionalLong.empty().mapToObj(x -> new Object()).isPresent() assert OptionalLong.of(123L).mapToObj(x -> new Object()).isPresent() assert !OptionalLong.of(123L).mapToObj(x -> null).isPresent() assert OptionalLong.of(1234L).mapToObj(Long::toString).get() == '1234'
- Since:
- 3.0.0
-
mapToObj
public static <T> Optional<T> mapToObj(OptionalDouble self, DoubleFunction<? extends T> mapper)
If a value is present in theOptionalDouble
, returns anOptional
consisting of the result of applying the given function to the value or else empty.assert !OptionalDouble.empty().mapToObj(x -> new Object()).isPresent() assert OptionalDouble.of(Math.PI).mapToObj(x -> new Object()).isPresent() assert !OptionalDouble.of(Math.PI).mapToObj(x -> null).isPresent() assert OptionalDouble.of(Math.PI).mapToObj(Double::toString).get().startsWith('3.14')
- Since:
- 3.0.0
-
mapToInt
public static <T> OptionalInt mapToInt(Optional<T> self, ToIntFunction<? super T> mapper)
If a value is present in theOptionalInt
, returns anOptionalInt
consisting of the result of applying the given function to the value or else empty.assert !Optional.empty().mapToInt(x -> 42).isPresent() assert Optional.of('x').mapToInt(x -> 42).getAsInt() == 42
- Since:
- 3.0.0
-
mapToLong
public static <T> OptionalLong mapToLong(Optional<T> self, ToLongFunction<? super T> mapper)
If a value is present in theOptionalLong
, returns anOptionalLong
consisting of the result of applying the given function to the value or else empty.assert !Optional.empty().mapToLong(x -> 42L).isPresent() assert Optional.of('x').mapToLong(x -> 42L).getAsLong() == 42L
- Since:
- 3.0.0
-
mapToDouble
public static <T> OptionalDouble mapToDouble(Optional<T> self, ToDoubleFunction<? super T> mapper)
If a value is present in theOptionalDouble
, returns anOptionalDouble
consisting of the result of applying the given function to the value or else empty.assert !Optional.empty().mapToDouble(x -> Math.PI).isPresent() assert Optional.of('x').mapToDouble(x -> Math.PI).getAsDouble() == Math.PI
- Since:
- 3.0.0
-
collect
public static <S,T> Optional<T> collect(Optional<S> self, Closure<T> transform)
If the optional contains a value, returns an optional containing the transformed value obtained using thetransform
closure or otherwise an empty optional.assert Optional.of("foobar").collect{ it.size() }.get() == 6 assert !Optional.empty().collect{ it.size() }.isPresent()
- Parameters:
self
- an Optionaltransform
- the closure used to transform the optional value if present- Returns:
- an Optional containing the transformed value or empty if the optional is empty or the transform returns null
- Since:
- 3.0.0
-
collect
public static <S,T> Future<T> collect(Future<S> self, Closure<T> transform)
Returns a Future asynchronously returning a transformed result.import java.util.concurrent.* def executor = Executors.newSingleThreadExecutor() Future
foobar = executor.submit{ "foobar" } Future foobarSize = foobar.collect{ it.size() } assert foobarSize.get() == 6 executor.shutdown() - Parameters:
self
- a Futuretransform
- the closure used to transform the Future value- Returns:
- a Future allowing the transformed value to be obtained asynchronously
- Since:
- 3.0.0
-
toList
public static <T> List<T> toList(Stream<T> self)
Accumulates the elements of stream into a new List.- Type Parameters:
T
- the type of element- Parameters:
self
- the Stream- Returns:
- a new
java.util.List
instance - Since:
- 2.5.0
-
toSet
public static <T> Set<T> toSet(Stream<T> self)
Accumulates the elements of stream into a new Set.- Type Parameters:
T
- the type of element- Parameters:
self
- the Stream- Returns:
- a new
java.util.Set
instance - Since:
- 2.5.0
-
toList
public static <T> List<T> toList(BaseStream<T,? extends BaseStream> self)
Accumulates the elements of stream into a new List.- Type Parameters:
T
- the type of element- Parameters:
self
- thejava.util.stream.BaseStream
- Returns:
- a new
java.util.List
instance - Since:
- 2.5.0
-
toSet
public static <T> Set<T> toSet(BaseStream<T,? extends BaseStream> self)
Accumulates the elements of stream into a new Set.- Type Parameters:
T
- the type of element- Parameters:
self
- thejava.util.stream.BaseStream
- Returns:
- a new
java.util.Set
instance - Since:
- 2.5.0
-
stream
public static <T> Stream<T> stream(NullObject self)
Returns an empty sequentialStream
.def item = null assert item.stream().toList() == [] assert !item.stream().findFirst().isPresent()
- Since:
- 3.0.0
-
stream
public static <T> Stream<T> stream(T self)
Returns a sequentialStream
containing a single element.def item = 'string' assert item.stream().toList() == ['string'] assert item.stream().findFirst().isPresent()
- Since:
- 3.0.0
-
stream
public static <T> Stream<T> stream(T[] self)
Returns a sequentialStream
with the specified array as its source.- Type Parameters:
T
- The type of the array elements- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Integer> stream(int[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Long> stream(long[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Double> stream(double[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Character> stream(char[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Byte> stream(byte[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Short> stream(short[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Boolean> stream(boolean[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static Stream<Float> stream(float[] self)
Returns a sequentialStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 2.5.0
-
stream
public static <T> Stream<T> stream(Enumeration<T> self)
Returns a sequentialStream
with the specified element(s) as its source.def tokens = new StringTokenizer('one two') assert tokens.stream().toList() == ['one', 'two']
- Since:
- 3.0.0
-
stream
public static <T> Stream<T> stream(Iterable<T> self)
Returns a sequentialStream
with the specified element(s) as its source.class Items implements Iterable
{ Iterator iterator() { ['one', 'two'].iterator() } } def items = new Items() assert items.stream().toList() == ['one', 'two'] - Since:
- 3.0.0
-
stream
public static <T> Stream<T> stream(Iterator<T> self)
Returns a sequentialStream
with the specified element(s) as its source.[].iterator().stream().toList().isEmpty() ['one', 'two'].iterator().stream().toList() == ['one', 'two']
- Since:
- 3.0.0
-
stream
public static <T> Stream<T> stream(Spliterator<T> self)
Returns a sequentialStream
with the specified element(s) as its source.[].spliterator().stream().toList().isEmpty() ['one', 'two'].spliterator().stream().toList() == ['one', 'two']
- Since:
- 3.0.0
-
stream
public static <T> Stream<T> stream(Optional<T> self)
If a value is present in theOptional
, returns aStream
with the value as its source or else an empty stream.- Since:
- 3.0.0
-
stream
public static IntStream stream(OptionalInt self)
If a value is present in theOptionalInt
, returns anIntStream
with the value as its source or else an empty stream.- Since:
- 3.0.0
-
stream
public static LongStream stream(OptionalLong self)
If a value is present in theOptionalLong
, returns aLongStream
with the value as its source or else an empty stream.- Since:
- 3.0.0
-
stream
public static DoubleStream stream(OptionalDouble self)
If a value is present in theOptionalDouble
, returns aDoubleStream
with the value as its source or else an empty stream.- Since:
- 3.0.0
-
-