Package org.codehaus.groovy.vmplugin.v8
Class PluginDefaultGroovyMethods
- java.lang.Object
-
- org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport
-
- 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
-
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated 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 DoubleStream
doubleStream(double[] self)
Returns a sequentialDoubleStream
with the specified array as its source.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 IntStream
intStream(int[] self)
Returns a sequentialIntStream
with the specified array as its source.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.static LongStream
longStream(long[] self)
Returns a sequentialLongStream
with the specified array as its source.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 Object
next(Enum self)
Overloads the++
operator for enums.static <T> Optional<T>
orOptional(Optional<T> self, Supplier<? extends Optional<? extends T>> supplier)
Provide similar functionality to JDK9or
on JDK8.static String
plus(StringBuilder self, String value)
Appends a String to this StringBuilder.static Object
previous(Enum self)
Overloads the--
operator for enums.static void
putAt(StringBuilder self, EmptyRange range, Object value)
Supports the range subscript operator for StringBuilder.static void
putAt(StringBuilder self, IntRange range, Object value)
Supports the range subscript operator for StringBuilder.static int
size(StringBuilder self)
Deprecated.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> T[]
toArray(Stream<? extends T> self, Class<T> type)
Returns an array containing the elements of the stream.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.-
Methods inherited from class org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport
cloneSimilarCollection, cloneSimilarMap, closeQuietly, closeWithWarning, createSimilarArray, createSimilarCollection, createSimilarCollection, createSimilarCollection, createSimilarList, createSimilarMap, createSimilarOrDefaultCollection, createSimilarQueue, createSimilarSet, normaliseIndex, sameType, subListBorders, subListBorders, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired, writeUTF16BomIfRequired
-
-
-
-
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
-
next
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
-
previous
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
-
size
@Deprecated public static int size(StringBuilder self)
Deprecated.Provides the standard Groovysize()
method forStringBuilder
.- Parameters:
self
- a StringBuilder- Returns:
- the length of the StringBuilder
- Since:
- 1.5.2
- See Also:
StringGroovyMethods.size(CharSequence)
-
leftShift
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 StringBuildervalue
- a value to append- Returns:
- the StringBuilder on which this operation was invoked
- Since:
- 1.5.2
-
putAt
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 StringBuilderrange
- a Rangevalue
- the object that's toString() will be inserted- Since:
- 1.5.2
-
putAt
public static void putAt(StringBuilder self, EmptyRange range, Object value)
Supports the range subscript operator for StringBuilder.- Parameters:
self
- a StringBuilderrange
- a Rangevalue
- the object that's toString() will be inserted- Since:
- 1.5.2
-
plus
public static String plus(StringBuilder self, String value)
Appends a String to this StringBuilder.- Parameters:
self
- a StringBuildervalue
- a String- Returns:
- a String
- Since:
- 1.5.2
-
toArray
public static <T> 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 streamtype
- the array element type- Since:
- 3.0.4
-
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
-
intStream
public static IntStream intStream(int[] self)
Returns a sequentialIntStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 3.0.8
-
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
-
longStream
public static LongStream longStream(long[] self)
Returns a sequentialLongStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 3.0.8
-
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
-
doubleStream
public static DoubleStream doubleStream(double[] self)
Returns a sequentialDoubleStream
with the specified array as its source.- Parameters:
self
- The array, assumed to be unmodified during use- Returns:
- a
Stream
for the array - Since:
- 3.0.8
-
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
-
-