[Java] Class PluginDefaultGroovyMethods

  • org.codehaus.groovy.vmplugin.v8.PluginDefaultGroovyMethods
public class PluginDefaultGroovyMethods
extends DefaultGroovyMethodsSupport

Defines new Groovy methods which appear on standard Java 8 classes within the Groovy environment.

Since:
2.5.0

Methods Summary

Methods
Type Params Return Type Name and description
public static boolean asBoolean(Optional<?> optional)
Coerce an Optional instance to a boolean value.
<S, T> public static Optional<T> collect(Optional<S> self, Closure<T> transform)
If the optional contains a value, returns an optional containing the transformed value obtained using the transform closure or otherwise an empty optional.
<S, T> public static Future<T> collect(Future<S> self, Closure<T> transform)
Returns a Future asynchronously returning a transformed result.
<T> public static Optional<T> filter(Optional<?> self, Class<T> type)
Tests given value against specified type and changes generics of result.
public static OptionalInt filter(OptionalInt self, IntPredicate test)
If a value is present in the OptionalInt, tests the value using the given predicate and returns the optional if the test returns true or else empty.
public static OptionalLong filter(OptionalLong self, LongPredicate test)
If a value is present in the OptionalLong, tests the value using the given predicate and returns the optional if the test returns true or else empty.
public static OptionalDouble filter(OptionalDouble self, DoublePredicate test)
If a value is present in the OptionalDouble, tests the value using the given predicate and returns the optional if the test returns true or empty otherwise.
public void forEachRemaining(Consumer<? super T> action)
public static int get(OptionalInt self)
If a value is present in the OptionalInt, returns the value, otherwise throws NoSuchElementException.
public static long get(OptionalLong self)
If a value is present in the OptionalLong, returns the value, otherwise throws NoSuchElementException.
public static double get(OptionalDouble self)
If a value is present in the OptionalDouble, returns the value, otherwise throws NoSuchElementException.
public static StringBuilder leftShift(StringBuilder self, Object value)
Overloads the left shift operator to provide an easy way to append multiple objects as string representations to a StringBuilder.
<T> public static OptionalDouble mapToDouble(Optional<T> self, ToDoubleFunction<? super T> mapper)
If a value is present in the OptionalDouble, returns an OptionalDouble consisting of the result of applying the given function to the value or else empty.
<T> public static OptionalInt mapToInt(Optional<T> self, ToIntFunction<? super T> mapper)
If a value is present in the OptionalInt, returns an OptionalInt consisting of the result of applying the given function to the value or else empty.
<T> public static OptionalLong mapToLong(Optional<T> self, ToLongFunction<? super T> mapper)
If a value is present in the OptionalLong, returns an OptionalLong consisting of the result of applying the given function to the value or else empty.
<T> public static Optional<T> mapToObj(OptionalInt self, IntFunction<? extends T> mapper)
If a value is present in the OptionalInt, returns an Optional consisting of the result of applying the given function to the value or else empty.
<T> public static Optional<T> mapToObj(OptionalLong self, LongFunction<? extends T> mapper)
If a value is present in the OptionalLong, returns an Optional consisting of the result of applying the given function to the value or else empty.
<T> public static Optional<T> mapToObj(OptionalDouble self, DoubleFunction<? extends T> mapper)
If a value is present in the OptionalDouble, returns an Optional consisting of the result of applying the given function to the value or else empty.
public static Object next(Enum self)
Overloads the ++ operator for enums.
<T> public static Optional<T> orOptional(Optional<T> self, Supplier<? extends Optional<? extends T>> supplier)
Provide similar functionality to JDK9 or on JDK8.
public static String plus(StringBuilder self, String value)
Appends a String to this StringBuilder.
public static Object previous(Enum self)
Overloads the -- operator for enums.
public static void putAt(StringBuilder self, IntRange range, Object value)
Supports the range subscript operator for StringBuilder.
public static void putAt(StringBuilder self, EmptyRange range, Object value)
Supports the range subscript operator for StringBuilder.
public static int size(StringBuilder self)
Provides the standard Groovy size() method for StringBuilder.
<T> public static Stream<T> stream(NullObject self)
Returns an empty sequential Stream.
<T> public static Stream<T> stream(T self)
Returns a sequential Stream containing a single element.
<T> public static Stream<T> stream(T[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Integer> stream(int[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Long> stream(long[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Double> stream(double[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Character> stream(char[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Byte> stream(byte[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Short> stream(short[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Boolean> stream(boolean[] self)
Returns a sequential Stream with the specified array as its source.
public static Stream<Float> stream(float[] self)
Returns a sequential Stream with the specified array as its source.
<T> public static Stream<T> stream(Enumeration<T> self)
Returns a sequential Stream with the specified element(s) as its source.
<T> public static Stream<T> stream(Iterable<T> self)
Returns a sequential Stream with the specified element(s) as its source.
<T> public static Stream<T> stream(Iterator<T> self)
Returns a sequential Stream with the specified element(s) as its source.
<T> public static Stream<T> stream(Spliterator<T> self)
Returns a sequential Stream with the specified element(s) as its source.
<T> public static Stream<T> stream(Optional<T> self)
If a value is present in the Optional, returns a Stream with the value as its source or else an empty stream.
public static IntStream stream(OptionalInt self)
If a value is present in the OptionalInt, returns an IntStream with the value as its source or else an empty stream.
public static LongStream stream(OptionalLong self)
If a value is present in the OptionalLong, returns a LongStream with the value as its source or else an empty stream.
public static DoubleStream stream(OptionalDouble self)
If a value is present in the OptionalDouble, returns a DoubleStream with the value as its source or else an empty stream.
<T> public static T[] toArray(Stream<? extends T> self, Class<T> type)
Returns an array containing the elements of the stream.
<T> public static List<T> toList(Stream<T> self)
Accumulates the elements of stream into a new List.
<T> public static List<T> toList(BaseStream<T, ? extends BaseStream> self)
Accumulates the elements of stream into a new List.
<T> public static Set<T> toSet(Stream<T> self)
Accumulates the elements of stream into a new Set.
<T> public static Set<T> toSet(BaseStream<T, ? extends BaseStream> self)
Accumulates the elements of stream into a new Set.
public boolean tryAdvance(Consumer<? super T> action)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class DefaultGroovyMethodsSupport cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarQueue, createSimilarSet, normaliseIndex, sameType, subListBorders, subListBorders, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired

Method Detail

public static boolean asBoolean(Optional<?> optional)

Coerce an Optional instance to a boolean value.

 assert !Optional.empty().asBoolean()
 assert Optional.of(1234).asBoolean()
 
Parameters:
optional - the Optional
Returns:
true if a value is present, otherwise false
Since:
2.5.0

<S, T> public static Optional<T> collect(Optional<S> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> transform)

If the optional contains a value, returns an optional containing the transformed value obtained using the transform 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 Optional
transform - 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

<S, T> public static Future<T> collect(Future<S> self, @ClosureParams(FirstParam.FirstGenericType.class) 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 Future
transform - the closure used to transform the Future value
Returns:
a Future allowing the transformed value to be obtained asynchronously
Since:
3.0.0

<T> public static 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

public static OptionalInt filter(OptionalInt self, IntPredicate test)

If a value is present in the OptionalInt, 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

public static OptionalLong filter(OptionalLong self, LongPredicate test)

If a value is present in the OptionalLong, 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

public static OptionalDouble filter(OptionalDouble self, DoublePredicate test)

If a value is present in the OptionalDouble, 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

@Override public void forEachRemaining(Consumer<? super T> action)

public static int get(OptionalInt self)

If a value is present in the OptionalInt, returns the value, otherwise throws NoSuchElementException.

 assert OptionalInt.of(1234).get() == 1234
 
Since:
3.0.0

public static long get(OptionalLong self)

If a value is present in the OptionalLong, returns the value, otherwise throws NoSuchElementException.

 assert OptionalLong.of(1234L).get() == 1234L
 
Since:
3.0.0

public static double get(OptionalDouble self)

If a value is present in the OptionalDouble, returns the value, otherwise throws NoSuchElementException.

 assert OptionalDouble.of(Math.PI).get() == Math.PI
 
Since:
3.0.0

public static StringBuilder leftShift(StringBuilder self, Object value)

Overloads the left shift operator to provide an easy way to append multiple objects as string representations to a StringBuilder.

Parameters:
self - a StringBuilder
value - a value to append
Returns:
the StringBuilder on which this operation was invoked
Since:
1.5.2

<T> public static OptionalDouble mapToDouble(Optional<T> self, ToDoubleFunction<? super T> mapper)

If a value is present in the OptionalDouble, returns an OptionalDouble 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

<T> public static OptionalInt mapToInt(Optional<T> self, ToIntFunction<? super T> mapper)

If a value is present in the OptionalInt, returns an OptionalInt 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

<T> public static OptionalLong mapToLong(Optional<T> self, ToLongFunction<? super T> mapper)

If a value is present in the OptionalLong, returns an OptionalLong 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

<T> public static Optional<T> mapToObj(OptionalInt self, IntFunction<? extends T> mapper)

If a value is present in the OptionalInt, returns an Optional 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

<T> public static Optional<T> mapToObj(OptionalLong self, LongFunction<? extends T> mapper)

If a value is present in the OptionalLong, returns an Optional 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

<T> public static Optional<T> mapToObj(OptionalDouble self, DoubleFunction<? extends T> mapper)

If a value is present in the OptionalDouble, returns an Optional 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

public static Object next(Enum self)

Overloads the ++ operator for enums. It will invoke Groovy's default next behaviour for enums that do not have their own next method.

Parameters:
self - an Enum
Returns:
the next defined enum from the enum class
Since:
1.5.2

<T> public static Optional<T> orOptional(Optional<T> self, Supplier<? extends Optional<? extends T>> supplier)

Provide similar functionality to JDK9 or on JDK8.

public static String plus(StringBuilder self, String value)

Appends a String to this StringBuilder.

Parameters:
self - a StringBuilder
value - a String
Returns:
a String
Since:
1.5.2

public static Object previous(Enum self)

Overloads the -- operator for enums. It will invoke Groovy's default previous behaviour for enums that do not have their own previous method.

Parameters:
self - an Enum
Returns:
the previous defined enum from the enum class
Since:
1.5.2

public static void putAt(StringBuilder self, IntRange range, Object value)

Supports the range subscript operator for StringBuilder. Index values are treated as characters within the builder.

Parameters:
self - a StringBuilder
range - a Range
value - the object that's toString() will be inserted
Since:
1.5.2

public static void putAt(StringBuilder self, EmptyRange range, Object value)

Supports the range subscript operator for StringBuilder.

Parameters:
self - a StringBuilder
range - a Range
value - the object that's toString() will be inserted
Since:
1.5.2

@Deprecated public static int size(StringBuilder self)

Provides the standard Groovy size() method for StringBuilder.

Parameters:
self - a StringBuilder
Returns:
the length of the StringBuilder
Since:
1.5.2
See Also:
StringGroovyMethods.size

<T> public static Stream<T> stream(NullObject self)

Returns an empty sequential Stream.

 def item = null
 assert item.stream().toList() == []
 assert !item.stream().findFirst().isPresent()
 
Since:
3.0.0

<T> public static Stream<T> stream(T self)

Returns a sequential Stream containing a single element.

 def item = 'string'
 assert item.stream().toList() == ['string']
 assert item.stream().findFirst().isPresent()
 
Since:
3.0.0

<T> public static Stream<T> stream(T[] self)

Returns a sequential Stream 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

public static Stream<Integer> stream(int[] self)

Returns a sequential Stream 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

public static Stream<Long> stream(long[] self)

Returns a sequential Stream 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

public static Stream<Double> stream(double[] self)

Returns a sequential Stream 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

public static Stream<Character> stream(char[] self)

Returns a sequential Stream 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

public static Stream<Byte> stream(byte[] self)

Returns a sequential Stream 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

public static Stream<Short> stream(short[] self)

Returns a sequential Stream 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

public static Stream<Boolean> stream(boolean[] self)

Returns a sequential Stream 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

public static Stream<Float> stream(float[] self)

Returns a sequential Stream 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

<T> public static Stream<T> stream(Enumeration<T> self)

Returns a sequential Stream with the specified element(s) as its source.

 def tokens = new StringTokenizer('one two')
 assert tokens.stream().toList() == ['one', 'two']
 
Since:
3.0.0

<T> public static Stream<T> stream(Iterable<T> self)

Returns a sequential Stream 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

<T> public static Stream<T> stream(Iterator<T> self)

Returns a sequential Stream with the specified element(s) as its source.

 [].iterator().stream().toList().isEmpty()
 ['one', 'two'].iterator().stream().toList() == ['one', 'two']
 
Since:
3.0.0

<T> public static Stream<T> stream(Spliterator<T> self)

Returns a sequential Stream with the specified element(s) as its source.

 [].spliterator().stream().toList().isEmpty()
 ['one', 'two'].spliterator().stream().toList() == ['one', 'two']
 
Since:
3.0.0

<T> public static Stream<T> stream(Optional<T> self)

If a value is present in the Optional, returns a Stream with the value as its source or else an empty stream.

Since:
3.0.0

public static IntStream stream(OptionalInt self)

If a value is present in the OptionalInt, returns an IntStream with the value as its source or else an empty stream.

Since:
3.0.0

public static LongStream stream(OptionalLong self)

If a value is present in the OptionalLong, returns a LongStream with the value as its source or else an empty stream.

Since:
3.0.0

public static DoubleStream stream(OptionalDouble self)

If a value is present in the OptionalDouble, returns a DoubleStream with the value as its source or else an empty stream.

Since:
3.0.0

<T> public static T[] toArray(Stream<? extends T> self, Class<T> type)

Returns an array containing the elements of the stream.

 import static groovy.test.GroovyAssert.shouldFail

 assert Arrays.equals([].stream().toArray(Object), new Object[0])
 assert Arrays.equals([].stream().toArray(String), new String[0])
 assert Arrays.equals([].stream().toArray(String[]), new String[0][])
 assert Arrays.equals(['x'].stream().toArray(Object), ['x'].toArray())
 assert Arrays.equals(['x'].stream().toArray(String), ['x'] as String[])
 assert Arrays.deepEquals([['x'] as String[]].stream().toArray(String[]), [['x'] as String[]] as String[][])
 assert Arrays.equals(['x'].stream().toArray(CharSequence), ['x'] as CharSequence[])

 shouldFail(ArrayStoreException) {
     ['x'].stream().toArray(Thread)
 }

 shouldFail(IllegalArgumentException) {
     ['x'].stream().toArray((Class) null)
 }

 // Stream#toArray(IntFunction) should still be used for closure literal:
 assert Arrays.equals(['x'].stream().toArray { n -> new String[n] }, ['x'] as String[])

 // Stream#toArray(IntFunction) should still be used for method reference:
 assert Arrays.equals(['x'].stream().toArray(String[]::new), ['x'] as String[])
 
Parameters:
self - the stream
type - the array element type
Since:
3.0.4

<T> public static List<T> toList(Stream<T> self)

Accumulates the elements of stream into a new List.

Parameters:
self - the stream
Type Parameters:
T - the type of element
Returns:
a new java.util.List instance
Since:
2.5.0

<T> public static List<T> toList(BaseStream<T, ? extends BaseStream> self)

Accumulates the elements of stream into a new List.

Parameters:
self - the java.util.stream.BaseStream
Type Parameters:
T - the type of element
Returns:
a new java.util.List instance
Since:
2.5.0

<T> public static Set<T> toSet(Stream<T> self)

Accumulates the elements of stream into a new Set.

Parameters:
self - the stream
Type Parameters:
T - the type of element
Returns:
a new java.util.Set instance
Since:
2.5.0

<T> public static Set<T> toSet(BaseStream<T, ? extends BaseStream> self)

Accumulates the elements of stream into a new Set.

Parameters:
self - the java.util.stream.BaseStream
Type Parameters:
T - the type of element
Returns:
a new java.util.Set instance
Since:
2.5.0

@Override public boolean tryAdvance(Consumer<? super T> action)

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.html