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 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 booleanasBoolean(Optional<?> optional)Coerce anOptionalinstance to abooleanvalue.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 thetransformclosure 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 OptionalDoublefilter(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 OptionalIntfilter(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 OptionalLongfilter(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 doubleget(OptionalDouble self)If a value is present in theOptionalDouble, returns the value, otherwise throwsNoSuchElementException.static intget(OptionalInt self)If a value is present in theOptionalInt, returns the value, otherwise throwsNoSuchElementException.static longget(OptionalLong self)If a value is present in theOptionalLong, returns the value, otherwise throwsNoSuchElementException.static StringBuilderleftShift(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 <T> OptionalDoublemapToDouble(Optional<T> self, ToDoubleFunction<? super T> mapper)If a value is present in theOptionalDouble, returns anOptionalDoubleconsisting of the result of applying the given function to the value or else empty.static <T> OptionalIntmapToInt(Optional<T> self, ToIntFunction<? super T> mapper)If a value is present in theOptionalInt, returns anOptionalIntconsisting of the result of applying the given function to the value or else empty.static <T> OptionalLongmapToLong(Optional<T> self, ToLongFunction<? super T> mapper)If a value is present in theOptionalLong, returns anOptionalLongconsisting 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 anOptionalconsisting 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 anOptionalconsisting 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 anOptionalconsisting of the result of applying the given function to the value or else empty.static Objectnext(Enum self)This method is called by the ++ operator for enums.static Stringplus(StringBuilder self, String value)Appends a String to this StringBuilder.static Objectprevious(Enum self)This method is called by the -- operator for enums.static voidputAt(StringBuilder self, EmptyRange range, Object value)Support the range subscript operator for StringBuilder.static voidputAt(StringBuilder self, IntRange range, Object value)Support the range subscript operator for StringBuilder.static intsize(StringBuilder builder)Standard Groovy size() method for StringBuilders.static Stream<Boolean>stream(boolean[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Byte>stream(byte[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Character>stream(char[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Double>stream(double[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Float>stream(float[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Integer>stream(int[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Long>stream(long[] self)Returns a sequentialStreamwith the specified array as its source.static Stream<Short>stream(short[] self)Returns a sequentialStreamwith the specified array as its source.static <T> Stream<T>stream(Iterable<T> self)Returns a sequentialStreamwith the specified element(s) as its source.static <T> Stream<T>stream(Enumeration<T> self)Returns a sequentialStreamwith the specified element(s) as its source.static <T> Stream<T>stream(Iterator<T> self)Returns a sequentialStreamwith the specified element(s) as its source.static <T> Stream<T>stream(Optional<T> self)static DoubleStreamstream(OptionalDouble self)If a value is present in theOptionalDouble, returns aDoubleStreamwith the value as its source or else an empty stream.static IntStreamstream(OptionalInt self)If a value is present in theOptionalInt, returns anIntStreamwith the value as its source or else an empty stream.static LongStreamstream(OptionalLong self)If a value is present in theOptionalLong, returns aLongStreamwith the value as its source or else an empty stream.static <T> Stream<T>stream(Spliterator<T> self)Returns a sequentialStreamwith 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 sequentialStreamcontaining a single element.static <T> Stream<T>stream(T[] self)Returns a sequentialStreamwith 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.-
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 anOptionalinstance to abooleanvalue.assert !Optional.empty().asBoolean() assert Optional.of(1234).asBoolean()
- Parameters:
optional- the Optional- Returns:
trueif 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 anOptionalconsisting 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 anOptionalconsisting 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 anOptionalconsisting 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 anOptionalIntconsisting 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 anOptionalLongconsisting 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 anOptionalDoubleconsisting 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 thetransformclosure 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)
This method is called by the ++ operator for enums. It will invoke Groovy's default next behaviour for enums do not have their own next method.- Parameters:
self- an Enum- Returns:
- the next defined enum from the enum class
-
previous
public static Object previous(Enum self)
This method is called by 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
-
size
public static int size(StringBuilder builder)
Standard Groovy size() method for StringBuilders.- Parameters:
builder- a StringBuilder- Returns:
- the length of the StringBuilder
-
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
-
putAt
public static void putAt(StringBuilder self, IntRange range, Object value)
Support 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
-
putAt
public static void putAt(StringBuilder self, EmptyRange range, Object value)
Support the range subscript operator for StringBuilder.- Parameters:
self- a StringBuilderrange- a Rangevalue- the object that's toString() will be inserted
-
plus
public static String plus(StringBuilder self, String value)
Appends a String to this StringBuilder.- Parameters:
self- a StringBuildervalue- a String- Returns:
- a String
-
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.Listinstance - 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.Setinstance - 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.Listinstance - 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.Setinstance - 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 sequentialStreamcontaining 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 sequentialStreamwith 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
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Integer> stream(int[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Long> stream(long[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Double> stream(double[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Character> stream(char[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Byte> stream(byte[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Short> stream(short[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Boolean> stream(boolean[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static Stream<Float> stream(float[] self)
Returns a sequentialStreamwith the specified array as its source.- Parameters:
self- The array, assumed to be unmodified during use- Returns:
- a
Streamfor the array - Since:
- 2.5.0
-
stream
public static <T> Stream<T> stream(Enumeration<T> self)
Returns a sequentialStreamwith 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 sequentialStreamwith 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 sequentialStreamwith 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 sequentialStreamwith 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 aStreamwith 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 anIntStreamwith 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 aLongStreamwith 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 aDoubleStreamwith the value as its source or else an empty stream.- Since:
- 3.0.0
-
-