From ce12a74a721943d1c44a77c09378b9931674f180 Mon Sep 17 00:00:00 2001 From: Jochen Theodorou Date: Fri, 7 Aug 2026 01:19:47 +0200 Subject: [PATCH] GroovyABI annotation to mark mainly methods as used through the compiler and have special requirements for backwards compatibility --- .../java/groovy/concurrent/Awaitable.java | 2 + src/main/java/groovy/lang/Closure.java | 2 + src/main/java/groovy/lang/Reference.java | 3 + .../ast/tools/ConstructorNodeUtils.java | 2 + .../groovy/lang/annotation/GroovyABI.java | 61 +++++++++++ .../groovy/runtime/async/AsyncSupport.java | 13 +++ .../copywith/NestedCopyWithSupport.java | 3 + .../java/org/apache/groovy/util/Maps.java | 102 ++++++++++++++++++ .../classgen/asm/BinaryExpressionHelper.java | 1 - .../groovy/classgen/asm/ClosureWriter.java | 1 - .../asm/sc/StaticTypesCallSiteWriter.java | 3 +- .../codehaus/groovy/reflection/ClassInfo.java | 3 + .../groovy/runtime/CurriedClosure.java | 2 + .../groovy/runtime/DefaultGroovyMethods.java | 14 +++ .../codehaus/groovy/runtime/FormatHelper.java | 3 + .../codehaus/groovy/runtime/GStringImpl.java | 2 + .../groovy/runtime/InvokerHelper.java | 10 ++ .../runtime/MultipleAssignmentSupport.java | 3 + .../groovy/runtime/ScriptBytecodeAdapter.java | 5 + .../groovy/runtime/StringGroovyMethods.java | 2 + .../runtime/dgmimpl/NumberNumberDiv.java | 2 + .../runtime/dgmimpl/NumberNumberMinus.java | 2 + .../runtime/dgmimpl/NumberNumberMultiply.java | 2 + .../powerassert/AssertionRenderer.java | 2 + .../runtime/powerassert/ValueRecorder.java | 4 + .../DefaultTypeTransformation.java | 18 ++++ .../runtime/typehandling/NumberMath.java | 10 ++ .../transform/ImmutableASTTransformation.java | 5 +- .../codehaus/groovy/util/HashCodeHelper.java | 23 ++++ .../groovy/vmplugin/v7/IndyInterface.java | 2 + .../groovy/vmplugin/v8/IndyInterface.java | 5 + .../groovy/runtime/callsite/CallSite.java | 31 ++++++ .../runtime/callsite/CallSiteArray.java | 2 + .../groovy/contracts/ViolationTracker.java | 10 ++ .../contracts/generation/Configurator.java | 3 + .../generation/ContractExecutionTracker.java | 3 + .../groovy/contracts/util/FieldValues.java | 4 + .../collection/runtime/NamedRecord.groovy | 2 + .../collection/runtime/Queryable.java | 5 + .../collection/runtime/QueryableHelper.groovy | 8 ++ .../collection/runtime/WindowDefinition.java | 12 +++ .../groovy/macro/runtime/MacroBuilder.java | 4 + 42 files changed, 391 insertions(+), 5 deletions(-) create mode 100644 src/main/java/org/apache/groovy/lang/annotation/GroovyABI.java diff --git a/src/main/java/groovy/concurrent/Awaitable.java b/src/main/java/groovy/concurrent/Awaitable.java index bb941cd1e7f..782b8992277 100644 --- a/src/main/java/groovy/concurrent/Awaitable.java +++ b/src/main/java/groovy/concurrent/Awaitable.java @@ -18,6 +18,7 @@ */ package groovy.concurrent; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.runtime.async.AsyncSupport; import org.apache.groovy.runtime.async.GroovyPromise; @@ -416,6 +417,7 @@ static T withScope(Function body) { * @param sources the awaitables, futures, or adapted objects to wait for * @return an awaitable that resolves to a list of results */ + @GroovyABI(since="6.0.0") static Awaitable> all(Object... sources) { return AsyncSupport.allAsync(sources); } diff --git a/src/main/java/groovy/lang/Closure.java b/src/main/java/groovy/lang/Closure.java index bb7f50010d9..9a3b638f896 100644 --- a/src/main/java/groovy/lang/Closure.java +++ b/src/main/java/groovy/lang/Closure.java @@ -20,6 +20,7 @@ import org.apache.groovy.internal.util.UncheckedThrow; import org.apache.groovy.io.StringBuilderWriter; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.util.Maps; import org.codehaus.groovy.reflection.ReflectionCache; import org.codehaus.groovy.reflection.stdclasses.CachedClosureClass; @@ -345,6 +346,7 @@ public int getResolveStrategy() { * * @return the lexical {@code this} object */ + @GroovyABI(since = "1.0") public Object getThisObject() { return thisObject; } diff --git a/src/main/java/groovy/lang/Reference.java b/src/main/java/groovy/lang/Reference.java index f54f9b5c013..8fa5c759ba7 100644 --- a/src/main/java/groovy/lang/Reference.java +++ b/src/main/java/groovy/lang/Reference.java @@ -18,6 +18,7 @@ */ package groovy.lang; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.runtime.InvokerHelper; import java.io.Serial; @@ -96,6 +97,7 @@ public Object invokeMethod(String name, Object args) { * * @return the referenced value */ + @GroovyABI(since = "1.0") public T get() { return value; } @@ -105,6 +107,7 @@ public T get() { * * @param value the new value */ + @GroovyABI(since = "1.0") public void set(T value) { this.value = value; } diff --git a/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java b/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java index 63ca17af780..19636cbb5f2 100644 --- a/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java +++ b/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java @@ -18,6 +18,7 @@ */ package org.apache.groovy.ast.tools; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.ast.ClassHelper; import org.codehaus.groovy.ast.ClassNode; import org.codehaus.groovy.ast.Parameter; @@ -97,6 +98,7 @@ public static ConstructorCallExpression getFirstIfSpecialConstructorCall(final S * @param props the properties accepted by the constructor * @return a statement that performs the validation */ + @GroovyABI(since="4.0.0") public static Statement checkPropNamesS(final VariableExpression namedArgs, final boolean pojo, final List props) { if (!pojo) { return stmt(callX(IMMUTABLE_TYPE, "checkPropNames", args(varX("this"), namedArgs))); diff --git a/src/main/java/org/apache/groovy/lang/annotation/GroovyABI.java b/src/main/java/org/apache/groovy/lang/annotation/GroovyABI.java new file mode 100644 index 00000000000..e397df8d97d --- /dev/null +++ b/src/main/java/org/apache/groovy/lang/annotation/GroovyABI.java @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.groovy.lang.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.CONSTRUCTOR; +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.SOURCE; + +/** + * Marks a program element as part of Groovy's binary ABI. + *

+ * Elements annotated with {@code @GroovyABI} may be referenced directly by + * bytecode generated by the Groovy compiler. Their signatures and semantics + * therefore form part of the compatibility contract between compiled Groovy + * classes and the Groovy runtime. + *

+ * Changes to annotated elements must preserve binary compatibility with + * previously compiled Groovy code unless the corresponding compatibility + * guarantee is intentionally dropped. + *

+ * This annotation is intended only for members that are referenced by + * bytecode which may outlive the compiler version that produced it. Members + * used exclusively by bytecode generated at runtime by the current Groovy + * version should not be annotated. + *

+ * Notes: + *

  • groovy.*: These classes are not annotated, as they are part of public API + *
  • runtime packages: These classes are normally internal and subject + * to removal or change. These classes must use this annotation if any of their methods + * is referenced by the compiler. + *
  • AST helper classes not in runtime: Some AST transforms leverage helper classes, that + * are not in a runtime package. These classes must be annotated. + */ +@Documented +@Target({TYPE, METHOD, CONSTRUCTOR, FIELD}) +@Retention(SOURCE) +public @interface GroovyABI { + String since() default ""; +} diff --git a/src/main/java/org/apache/groovy/runtime/async/AsyncSupport.java b/src/main/java/org/apache/groovy/runtime/async/AsyncSupport.java index 6c78b0990bc..0328ab6dd53 100644 --- a/src/main/java/org/apache/groovy/runtime/async/AsyncSupport.java +++ b/src/main/java/org/apache/groovy/runtime/async/AsyncSupport.java @@ -21,6 +21,7 @@ import groovy.concurrent.AwaitResult; import groovy.concurrent.Awaitable; import groovy.concurrent.AwaitableAdapterRegistry; +import org.apache.groovy.lang.annotation.GroovyABI; import java.io.Closeable; import java.lang.reflect.InvocationTargetException; @@ -120,6 +121,7 @@ public static void resetExecutor() { * Blocks the calling thread until the computation completes. * The original exception is rethrown transparently. */ + @GroovyABI(since="6.0.0") public static T await(Awaitable awaitable) { try { return awaitable.get(); @@ -131,6 +133,7 @@ public static T await(Awaitable awaitable) { } /** Awaits a {@link CompletableFuture} using non-interruptible {@code join()}. */ + @GroovyABI(since="6.0.0") public static T await(CompletableFuture future) { try { return future.join(); @@ -142,11 +145,13 @@ public static T await(CompletableFuture future) { } /** Awaits a {@link CompletionStage} by converting to CompletableFuture. */ + @GroovyABI(since="6.0.0") public static T await(CompletionStage stage) { return await(stage.toCompletableFuture()); } /** Awaits a {@link Future}. Delegates to the CF overload if applicable. */ + @GroovyABI(since="6.0.0") public static T await(Future future) { if (future instanceof CompletableFuture cf) { return await(cf); @@ -171,6 +176,7 @@ public static T await(Future future) { * {@code CompletionStage}, and {@code Future} when a value implements more * than one of them (e.g. {@link CompletableFuture}). */ + @GroovyABI(since="6.0.0") @SuppressWarnings("unchecked") public static T await(Object source) { if (source == null) return null; @@ -202,6 +208,7 @@ public static Awaitable executeAsync(Supplier supplier, Executor execu /** * Executes the given supplier asynchronously using the default executor. */ + @GroovyABI(since="6.0.0") public static Awaitable async(Supplier supplier) { return executeAsync(supplier, AsyncExecutors.getExecutor()); } @@ -221,6 +228,7 @@ public static Awaitable go(Supplier supplier) { * Called by compiler-generated code at the start of closures * containing {@code defer} statements. */ + @GroovyABI(since="6.0.0") public static Deque> createDeferScope() { return new ArrayDeque<>(); } @@ -229,6 +237,7 @@ public static Deque> createDeferScope() { * Registers a deferred action in the given scope. Actions execute in LIFO * order when {@link #executeDeferScope} is called (in the finally block). */ + @GroovyABI(since="6.0.0") public static void defer(Deque> scope, Callable action) { if (scope == null) { @@ -287,6 +296,7 @@ private static void awaitDeferredResult(Object result) { * @param bridge the GeneratorBridge instance (injected as synthetic parameter) * @param value the value to yield */ + @GroovyABI(since="6.0.0") public static void yieldReturn(Object bridge, Object value) { if (!(bridge instanceof GeneratorBridge)) { throw new IllegalStateException("yield return can only be used inside an async generator"); @@ -307,6 +317,7 @@ public static void yieldReturn(Object bridge, Object value) { * @param the element type * @return an Iterable that yields values from the generator */ + @GroovyABI(since="6.0.0") public static Iterable asyncGenerator(Consumer body) { Objects.requireNonNull(body, "body must not be null"); GeneratorBridge bridge = new GeneratorBridge<>(); @@ -335,6 +346,7 @@ public static Iterable asyncGenerator(Consumer body) { * @param the element type * @return an iterable */ + @GroovyABI(since="6.0.0") @SuppressWarnings("unchecked") public static Iterable toIterable(Object source) { if (source == null) return Collections.emptyList(); @@ -354,6 +366,7 @@ public static Iterable toIterable(Object source) { * cannot mask the original loop error; prefer robust {@code close()} * implementations. */ + @GroovyABI(since="6.0.0") public static void closeIterable(Object source) { if (source instanceof Closeable c) { try { diff --git a/src/main/java/org/apache/groovy/transform/copywith/NestedCopyWithSupport.java b/src/main/java/org/apache/groovy/transform/copywith/NestedCopyWithSupport.java index 70f697b4213..fe7ac4aab49 100644 --- a/src/main/java/org/apache/groovy/transform/copywith/NestedCopyWithSupport.java +++ b/src/main/java/org/apache/groovy/transform/copywith/NestedCopyWithSupport.java @@ -20,6 +20,7 @@ import groovy.lang.Closure; import groovy.lang.GroovyRuntimeException; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.lang.annotation.Incubating; import org.codehaus.groovy.runtime.InvokerHelper; @@ -52,6 +53,7 @@ private NestedCopyWithSupport() { * (nested-aware) {@code copyWith(Map)}. The block is thus pure sugar over * the map form, inheriting its closed-type-domain and identity guarantees. */ + @GroovyABI(since="6.0.0") public static Object applyBlock(final Object self, final Closure block) { Map sink = new LinkedHashMap<>(); Closure c = (Closure) block.clone(); @@ -63,6 +65,7 @@ public static Object applyBlock(final Object self, final Closure block) { } @SuppressWarnings("unchecked") + @GroovyABI(since="6.0.0") public static Map flatten(final Object self, final Map raw) { if (raw == null) return new LinkedHashMap<>(); Map flat = new LinkedHashMap<>(); diff --git a/src/main/java/org/apache/groovy/util/Maps.java b/src/main/java/org/apache/groovy/util/Maps.java index ff9c8b382bd..0298ec55044 100644 --- a/src/main/java/org/apache/groovy/util/Maps.java +++ b/src/main/java/org/apache/groovy/util/Maps.java @@ -18,6 +18,8 @@ */ package org.apache.groovy.util; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -31,6 +33,7 @@ public class Maps { /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1) { Map map = new LinkedHashMap(); @@ -42,6 +45,7 @@ public static Map of(K k1, V v1) { /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2) { Map map = new LinkedHashMap(); @@ -54,6 +58,7 @@ public static Map of(K k1, V v1, K k2, V v2) { /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3) { Map map = new LinkedHashMap(); @@ -67,6 +72,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3) { /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) { Map map = new LinkedHashMap(); @@ -81,6 +87,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) { Map map = new LinkedHashMap(); @@ -96,6 +103,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6) { Map map = new LinkedHashMap(); @@ -112,6 +120,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7) { Map map = new LinkedHashMap(); @@ -129,6 +138,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8) { Map map = new LinkedHashMap(); @@ -147,6 +157,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9) { Map map = new LinkedHashMap(); @@ -166,6 +177,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10) { Map map = new LinkedHashMap(); @@ -186,6 +198,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11) { Map map = new LinkedHashMap(); @@ -207,6 +220,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12) { Map map = new LinkedHashMap(); @@ -229,6 +243,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13) { Map map = new LinkedHashMap(); @@ -252,6 +267,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14) { Map map = new LinkedHashMap(); @@ -276,6 +292,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15) { Map map = new LinkedHashMap(); @@ -301,6 +318,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16) { Map map = new LinkedHashMap(); @@ -327,6 +345,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17) { Map map = new LinkedHashMap(); @@ -354,6 +373,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18) { Map map = new LinkedHashMap(); @@ -382,6 +402,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19) { Map map = new LinkedHashMap(); @@ -411,6 +432,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20) { Map map = new LinkedHashMap(); @@ -441,6 +463,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21) { Map map = new LinkedHashMap(); @@ -472,6 +495,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22) { Map map = new LinkedHashMap(); @@ -504,6 +528,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23) { Map map = new LinkedHashMap(); @@ -537,6 +562,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24) { Map map = new LinkedHashMap(); @@ -571,6 +597,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25) { Map map = new LinkedHashMap(); @@ -606,6 +633,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26) { Map map = new LinkedHashMap(); @@ -642,6 +670,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27) { Map map = new LinkedHashMap(); @@ -679,6 +708,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28) { Map map = new LinkedHashMap(); @@ -717,6 +747,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29) { Map map = new LinkedHashMap(); @@ -756,6 +787,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30) { Map map = new LinkedHashMap(); @@ -796,6 +828,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31) { Map map = new LinkedHashMap(); @@ -837,6 +870,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32) { Map map = new LinkedHashMap(); @@ -879,6 +913,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33) { Map map = new LinkedHashMap(); @@ -922,6 +957,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34) { Map map = new LinkedHashMap(); @@ -966,6 +1002,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35) { Map map = new LinkedHashMap(); @@ -1011,6 +1048,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36) { Map map = new LinkedHashMap(); @@ -1057,6 +1095,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37) { Map map = new LinkedHashMap(); @@ -1104,6 +1143,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38) { Map map = new LinkedHashMap(); @@ -1152,6 +1192,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39) { Map map = new LinkedHashMap(); @@ -1201,6 +1242,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40) { Map map = new LinkedHashMap(); @@ -1251,6 +1293,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41) { Map map = new LinkedHashMap(); @@ -1302,6 +1345,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42) { Map map = new LinkedHashMap(); @@ -1354,6 +1398,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43) { Map map = new LinkedHashMap(); @@ -1407,6 +1452,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44) { Map map = new LinkedHashMap(); @@ -1461,6 +1507,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45) { Map map = new LinkedHashMap(); @@ -1516,6 +1563,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46) { Map map = new LinkedHashMap(); @@ -1572,6 +1620,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47) { Map map = new LinkedHashMap(); @@ -1629,6 +1678,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48) { Map map = new LinkedHashMap(); @@ -1687,6 +1737,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49) { Map map = new LinkedHashMap(); @@ -1746,6 +1797,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50) { Map map = new LinkedHashMap(); @@ -1806,6 +1858,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51) { Map map = new LinkedHashMap(); @@ -1867,6 +1920,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52) { Map map = new LinkedHashMap(); @@ -1929,6 +1983,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53) { Map map = new LinkedHashMap(); @@ -1992,6 +2047,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54) { Map map = new LinkedHashMap(); @@ -2056,6 +2112,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55) { Map map = new LinkedHashMap(); @@ -2121,6 +2178,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56) { Map map = new LinkedHashMap(); @@ -2187,6 +2245,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57) { Map map = new LinkedHashMap(); @@ -2254,6 +2313,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58) { Map map = new LinkedHashMap(); @@ -2322,6 +2382,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59) { Map map = new LinkedHashMap(); @@ -2391,6 +2452,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60) { Map map = new LinkedHashMap(); @@ -2461,6 +2523,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61) { Map map = new LinkedHashMap(); @@ -2532,6 +2595,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62) { Map map = new LinkedHashMap(); @@ -2604,6 +2668,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63) { Map map = new LinkedHashMap(); @@ -2677,6 +2742,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64) { Map map = new LinkedHashMap(); @@ -2751,6 +2817,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65) { Map map = new LinkedHashMap(); @@ -2826,6 +2893,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66) { Map map = new LinkedHashMap(); @@ -2902,6 +2970,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67) { Map map = new LinkedHashMap(); @@ -2979,6 +3048,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68) { Map map = new LinkedHashMap(); @@ -3057,6 +3127,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69) { Map map = new LinkedHashMap(); @@ -3136,6 +3207,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70) { Map map = new LinkedHashMap(); @@ -3216,6 +3288,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71) { Map map = new LinkedHashMap(); @@ -3297,6 +3370,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72) { Map map = new LinkedHashMap(); @@ -3379,6 +3453,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73) { Map map = new LinkedHashMap(); @@ -3462,6 +3537,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74) { Map map = new LinkedHashMap(); @@ -3546,6 +3622,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75) { Map map = new LinkedHashMap(); @@ -3631,6 +3708,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76) { Map map = new LinkedHashMap(); @@ -3717,6 +3795,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77) { Map map = new LinkedHashMap(); @@ -3804,6 +3883,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78) { Map map = new LinkedHashMap(); @@ -3892,6 +3972,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79) { Map map = new LinkedHashMap(); @@ -3981,6 +4062,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80) { Map map = new LinkedHashMap(); @@ -4071,6 +4153,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81) { Map map = new LinkedHashMap(); @@ -4162,6 +4245,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82) { Map map = new LinkedHashMap(); @@ -4254,6 +4338,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83) { Map map = new LinkedHashMap(); @@ -4347,6 +4432,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84) { Map map = new LinkedHashMap(); @@ -4441,6 +4527,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85) { Map map = new LinkedHashMap(); @@ -4536,6 +4623,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86) { Map map = new LinkedHashMap(); @@ -4632,6 +4720,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87) { Map map = new LinkedHashMap(); @@ -4729,6 +4818,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88) { Map map = new LinkedHashMap(); @@ -4827,6 +4917,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89) { Map map = new LinkedHashMap(); @@ -4926,6 +5017,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90) { Map map = new LinkedHashMap(); @@ -5026,6 +5118,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91) { Map map = new LinkedHashMap(); @@ -5127,6 +5220,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92) { Map map = new LinkedHashMap(); @@ -5229,6 +5323,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93) { Map map = new LinkedHashMap(); @@ -5332,6 +5427,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94) { Map map = new LinkedHashMap(); @@ -5436,6 +5532,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95) { Map map = new LinkedHashMap(); @@ -5541,6 +5638,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95, K k96, V v96) { Map map = new LinkedHashMap(); @@ -5647,6 +5745,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95, K k96, V v96, K k97, V v97) { Map map = new LinkedHashMap(); @@ -5754,6 +5853,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95, K k96, V v96, K k97, V v97, K k98, V v98) { Map map = new LinkedHashMap(); @@ -5862,6 +5962,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95, K k96, V v96, K k97, V v97, K k98, V v98, K k99, V v99) { Map map = new LinkedHashMap(); @@ -5971,6 +6072,7 @@ public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4 /** * Returns an immutable map containing the supplied key-value pairs in encounter order. */ + @GroovyABI(since="2.5.0") public static Map of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10, K k11, V v11, K k12, V v12, K k13, V v13, K k14, V v14, K k15, V v15, K k16, V v16, K k17, V v17, K k18, V v18, K k19, V v19, K k20, V v20, K k21, V v21, K k22, V v22, K k23, V v23, K k24, V v24, K k25, V v25, K k26, V v26, K k27, V v27, K k28, V v28, K k29, V v29, K k30, V v30, K k31, V v31, K k32, V v32, K k33, V v33, K k34, V v34, K k35, V v35, K k36, V v36, K k37, V v37, K k38, V v38, K k39, V v39, K k40, V v40, K k41, V v41, K k42, V v42, K k43, V v43, K k44, V v44, K k45, V v45, K k46, V v46, K k47, V v47, K k48, V v48, K k49, V v49, K k50, V v50, K k51, V v51, K k52, V v52, K k53, V v53, K k54, V v54, K k55, V v55, K k56, V v56, K k57, V v57, K k58, V v58, K k59, V v59, K k60, V v60, K k61, V v61, K k62, V v62, K k63, V v63, K k64, V v64, K k65, V v65, K k66, V v66, K k67, V v67, K k68, V v68, K k69, V v69, K k70, V v70, K k71, V v71, K k72, V v72, K k73, V v73, K k74, V v74, K k75, V v75, K k76, V v76, K k77, V v77, K k78, V v78, K k79, V v79, K k80, V v80, K k81, V v81, K k82, V v82, K k83, V v83, K k84, V v84, K k85, V v85, K k86, V v86, K k87, V v87, K k88, V v88, K k89, V v89, K k90, V v90, K k91, V v91, K k92, V v92, K k93, V v93, K k94, V v94, K k95, V v95, K k96, V v96, K k97, V v97, K k98, V v98, K k99, V v99, K k100, V v100) { Map map = new LinkedHashMap(); diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java index 01c3e3dac3e..b9401a52df4 100644 --- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java +++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java @@ -583,7 +583,6 @@ public void evaluateEqual(final BinaryExpression expression, final boolean defin VariableExpression var = (VariableExpression) leftExpression; if (var.isClosureSharedVariable() && ClassHelper.isPrimitiveType(rhsType)) { // GROOVY-5570: if a closure shared variable is a primitive type, it must be boxed - rhsType = ClassHelper.getWrapper(rhsType); operandStack.box(); } diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java index 4462f7aad5d..85397257817 100644 --- a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java +++ b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java @@ -82,7 +82,6 @@ import static org.apache.groovy.ast.tools.ClassNodeUtils.addGeneratedMethod; import static org.codehaus.groovy.ast.tools.GeneralUtils.args; import static org.codehaus.groovy.ast.tools.GeneralUtils.callThisX; -import static org.codehaus.groovy.ast.tools.GeneralUtils.callX; import static org.codehaus.groovy.ast.tools.GeneralUtils.constX; import static org.codehaus.groovy.ast.tools.GeneralUtils.ctorSuperX; import static org.codehaus.groovy.ast.tools.GeneralUtils.nullX; diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java index 577c09d23fb..5d45251f28f 100644 --- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java +++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesCallSiteWriter.java @@ -584,9 +584,8 @@ public void makeSingleArgumentCall(final Expression receiver, final String messa writePowerCall(receiver, argument, rType, aType); return; case "and": - case "or": + case "or": case "xor": - case "implies": case "remainder": case "leftShift": case "rightShift": diff --git a/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java b/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java index ec2042012af..8c0d8e26881 100644 --- a/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java +++ b/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java @@ -26,6 +26,7 @@ import groovy.lang.MetaClassRegistry; import groovy.lang.MetaMethod; import groovy.transform.Internal; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.runtime.indy.IndyInvalidation; import org.apache.groovy.runtime.indy.SwitchPointInvalidator; import org.apache.groovy.util.concurrent.ManagedIdentityConcurrentMap; @@ -346,6 +347,7 @@ public ClassLoaderForClassArtifacts getArtifactClassLoader() { * @param cls the class to get information for * @return the class information, or {@code null} if {@code cls} is {@code null} */ + @GroovyABI(since = "1.6.0") public static ClassInfo getClassInfo (Class cls) { return globalClassValue.get(cls); } @@ -583,6 +585,7 @@ private static boolean isValidWeakMetaClass(MetaClass metaClass, MetaClassRegist * * @return a {@code MetaClass} instance */ + @GroovyABI(since = "1.6.0") public final MetaClass getMetaClass() { MetaClass answer = getMetaClassForClass(); if (answer != null) return answer; diff --git a/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java b/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java index feaced7383b..d31bd14d2bc 100644 --- a/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java +++ b/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java @@ -19,6 +19,7 @@ package org.codehaus.groovy.runtime; import groovy.lang.Closure; +import org.apache.groovy.lang.annotation.GroovyABI; import java.io.ObjectStreamException; import java.io.Serial; @@ -103,6 +104,7 @@ public CurriedClosure(final int index, final Closure uncurriedClosure, final } } + @GroovyABI(since = "1.0") public CurriedClosure(final Closure uncurriedClosure, final Object... arguments) { this(0, uncurriedClosure, arguments); } diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java index e4e24804b3c..e592bf48833 100644 --- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java +++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java @@ -57,6 +57,7 @@ import groovy.util.PermutationGenerator; import groovy.util.ProxyGenerator; import org.apache.groovy.io.StringBuilderWriter; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.lang.annotation.Incubating; import org.apache.groovy.util.ReversedList; import org.apache.groovy.util.SystemUtil; @@ -1003,6 +1004,7 @@ public static Collection asCollection(Iterable self) { * @see #asUnmodifiable(java.util.Map) * @since 1.0 */ + @GroovyABI(since="3.0.0") public static Map asImmutable(Map self) { return asUnmodifiable(new LinkedHashMap<>(self)); } @@ -1016,6 +1018,7 @@ public static Map asImmutable(Map self) { * @see #asUnmodifiable(java.util.SortedMap) * @since 1.0 */ + @GroovyABI(since="3.0.0") public static SortedMap asImmutable(SortedMap self) { return asUnmodifiable(new TreeMap<>(self)); } @@ -1041,6 +1044,7 @@ public static SortedMap asImmutable(SortedMap self) { * @see #asUnmodifiable(java.util.List) * @since 1.0 */ + @GroovyABI(since="3.0.0") public static List asImmutable(List self) { return asUnmodifiable(new ArrayList<>(self)); } @@ -1054,6 +1058,7 @@ public static List asImmutable(List self) { * @see #asUnmodifiable(java.util.Set) * @since 1.0 */ + @GroovyABI(since="3.0.0") public static Set asImmutable(Set self) { return asUnmodifiable(new LinkedHashSet<>(self)); } @@ -1067,6 +1072,7 @@ public static Set asImmutable(Set self) { * @see #asUnmodifiable(java.util.SortedSet) * @since 1.0 */ + @GroovyABI(since="3.0.0") public static SortedSet asImmutable(SortedSet self) { return asUnmodifiable(new TreeSet<>(self)); } @@ -1080,6 +1086,7 @@ public static SortedSet asImmutable(SortedSet self) { * @see #asUnmodifiable(java.util.Collection) * @since 1.5.0 */ + @GroovyABI(since="3.0.0") public static Collection asImmutable(Collection self) { return asUnmodifiable((Collection) new ArrayList<>(self)); } @@ -11645,6 +11652,7 @@ public static boolean isWhitespace(Character self) { * @see org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation#asCollection(java.lang.Object) * @since 1.0 */ + @GroovyABI(since="2.0.0") public static Iterator iterator(final Object self) { if (self instanceof Iterator) return (Iterator) self; return DefaultTypeTransformation.asCollection(self).iterator(); @@ -13818,6 +13826,7 @@ public static T pop(List self) { * @return a Number to the power of a certain exponent * @since 1.0 */ + @GroovyABI(since="2.0.0") public static Number power(Number self, Number exponent) { double base, exp, answer; base = self.doubleValue(); @@ -13842,6 +13851,7 @@ public static Number power(Number self, Number exponent) { * @param exponent an Integer exponent * @return a Number to the power of the exponent */ + @GroovyABI(since="2.0.0") public static Number power(BigDecimal self, Integer exponent) { if (exponent >= 0) { return self.pow(exponent); @@ -13859,6 +13869,7 @@ public static Number power(BigDecimal self, Integer exponent) { * @param exponent an Integer exponent * @return a Number to the power of the exponent */ + @GroovyABI(since="2.0.0") public static Number power(BigInteger self, Integer exponent) { if (exponent >= 0) { return self.pow(exponent); @@ -13877,6 +13888,7 @@ public static Number power(BigInteger self, Integer exponent) { * @param exponent an Integer exponent * @return a Number to the power of the exponent */ + @GroovyABI(since="2.0.0") public static Number power(Integer self, Integer exponent) { if (exponent >= 0) { BigInteger answer = BigInteger.valueOf(self).pow(exponent); @@ -13900,6 +13912,7 @@ public static Number power(Integer self, Integer exponent) { * @param exponent an Integer exponent * @return a Number to the power of the exponent */ + @GroovyABI(since="2.0.0") public static Number power(Long self, Integer exponent) { if (exponent >= 0) { BigInteger answer = BigInteger.valueOf(self).pow(exponent); @@ -13921,6 +13934,7 @@ public static Number power(Long self, Integer exponent) { * @return a BigInteger to the power of the exponent * @since 2.3.8 */ + @GroovyABI(since="2.0.0") public static BigInteger power(BigInteger self, BigInteger exponent) { if ((exponent.signum() >= 0) && (exponent.compareTo(BI_INT_MAX) <= 0)) { return self.pow(exponent.intValue()); diff --git a/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java b/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java index 866293d70ae..be1bf3a7f32 100644 --- a/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java +++ b/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java @@ -27,6 +27,7 @@ import groovy.transform.NamedParam; import groovy.transform.NamedParams; import org.apache.groovy.io.StringBuilderWriter; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.control.ResolveVisitor; import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation; @@ -45,6 +46,7 @@ /** * Formatting methods + * @since Groovy 4.0.0 */ public class FormatHelper { @@ -96,6 +98,7 @@ static String tryGroovyToString(Object object) { * @param arguments the object to convert to a string * @return a string representation */ + @GroovyABI(since="5.0.0") public static String toString(Object arguments) { return format(arguments, false, -1, false); } diff --git a/src/main/java/org/codehaus/groovy/runtime/GStringImpl.java b/src/main/java/org/codehaus/groovy/runtime/GStringImpl.java index 4885ce650e8..9012c488522 100644 --- a/src/main/java/org/codehaus/groovy/runtime/GStringImpl.java +++ b/src/main/java/org/codehaus/groovy/runtime/GStringImpl.java @@ -22,6 +22,7 @@ import groovy.lang.GroovyObject; import groovy.transform.Pure; import org.apache.groovy.ast.tools.ImmutablePropertyUtils; +import org.apache.groovy.lang.annotation.GroovyABI; import java.io.IOException; import java.io.Serial; @@ -59,6 +60,7 @@ public class GStringImpl extends GString { * @param values the value parts * @param strings the string parts */ + @GroovyABI(since = "1.0") public GStringImpl(Object[] values, String[] strings) { this(values, strings, checkValuesStringConstant(values), null, false); } diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java index 9b06e98d6f0..4d97d4cb89e 100644 --- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java +++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java @@ -34,6 +34,7 @@ import groovy.lang.SpreadMapEvaluatingException; import groovy.lang.Tuple; import groovy.util.regex.RegexGuard; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.reflection.ClassInfo; import org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl; import org.codehaus.groovy.runtime.metaclass.MissingMethodExecutionFailed; @@ -154,6 +155,7 @@ public static void setAttribute(Object object, String attribute, Object newValue } } + @GroovyABI(since="2.5.0") public static Object getProperty(Object object, String property) { if (object == null) { object = NullObject.getNullObject(); @@ -168,6 +170,7 @@ public static Object getProperty(Object object, String property) { } } + @GroovyABI(since="2.5.0") public static Object getPropertySafe(Object object, String property) { if (object != null) { return getProperty(object, property); @@ -175,6 +178,7 @@ public static Object getPropertySafe(Object object, String property) { return null; } + @GroovyABI(since="?") public static void setProperty(Object object, String property, Object newValue) { if (object == null) { object = NullObject.getNullObject(); @@ -193,6 +197,7 @@ public static void setProperty(Object object, String property, Object newValue) * This is so we don't have to reorder the stack when we call this method. * At some point a better name might be in order. */ + @GroovyABI(since="?") public static void setProperty2(Object newValue, Object object, String property) { setProperty(object, property, newValue); } @@ -201,10 +206,12 @@ public static void setProperty2(Object newValue, Object object, String property) * This is so we don't have to reorder the stack when we call this method. * At some point a better name might be in order. */ + @GroovyABI(since="?") public static void setGroovyObjectProperty(Object newValue, GroovyObject object, String property) { object.setProperty(property, newValue); } + @GroovyABI(since="?") public static Object getGroovyObjectProperty(GroovyObject object, String property) { return object.getProperty(property); } @@ -213,6 +220,7 @@ public static Object getGroovyObjectProperty(GroovyObject object, String propert * This is so we don't have to reorder the stack when we call this method. * At some point a better name might be in order. */ + @GroovyABI(since="?") public static void setPropertySafe2(Object newValue, Object object, String property) { if (object != null) { setProperty2(newValue, object, property); @@ -584,6 +592,7 @@ public static MetaClass getMetaClass(Class cls) { /** * Invokes the given method on the object. */ + @GroovyABI(since="5.0.0") public static Object invokeMethod(Object object, String methodName, Object arguments) { if (object == null) { object = NullObject.getNullObject(); @@ -686,6 +695,7 @@ public static Iterator asIterator(Object o) { } @Deprecated + @GroovyABI(since="1.0") public static String toString(Object arguments) { return FormatHelper.toString(arguments); } diff --git a/src/main/java/org/codehaus/groovy/runtime/MultipleAssignmentSupport.java b/src/main/java/org/codehaus/groovy/runtime/MultipleAssignmentSupport.java index 590dac543cd..4b564b30ef0 100644 --- a/src/main/java/org/codehaus/groovy/runtime/MultipleAssignmentSupport.java +++ b/src/main/java/org/codehaus/groovy/runtime/MultipleAssignmentSupport.java @@ -19,6 +19,7 @@ package org.codehaus.groovy.runtime; import groovy.lang.IntRange; +import org.apache.groovy.lang.annotation.GroovyABI; import java.lang.reflect.Array; import java.util.ArrayList; @@ -80,6 +81,7 @@ private MultipleAssignmentSupport() {} * @param fromIndex the declarator position of the rest binding * @param seq the iterator that has already yielded the preceding fixed-slot values */ + @GroovyABI(since="6.0.0") public static Object tailRest(final Object rhs, final int fromIndex, final Iterator seq) { if (rhs instanceof List) { if (fromIndex >= ((List) rhs).size()) return createSimilarList((List) rhs, 0); @@ -144,6 +146,7 @@ public static Object tailRest(final Object rhs, final int fromIndex, final Itera * @param fromIndex positive index where the slice begins * @param toIndex negative index where the slice ends (inclusive) */ + @GroovyABI(since="6.0.0") public static Object nonTailRestSlice(final Object rhs, final int fromIndex, final int toIndex) { int size = -1; if (rhs instanceof List) size = ((List) rhs).size(); diff --git a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java index 9715301e3cf..805e80d95f2 100644 --- a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java +++ b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java @@ -30,6 +30,7 @@ import groovy.lang.NumberRange; import groovy.lang.ObjectRange; import groovy.lang.Tuple; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack; import org.codehaus.groovy.runtime.metaclass.MissingMethodExecutionFailed; import org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack; @@ -52,6 +53,7 @@ /** * A static helper class to interface bytecode and runtime */ +@GroovyABI(since="1.0.0") public class ScriptBytecodeAdapter { /** @@ -747,6 +749,7 @@ private static T comparableNumber(Number n) { return (T) n; } + @GroovyABI(since = "1.0") public static MetaClass initMetaClass(final Object object) { return InvokerHelper.getMetaClass(object.getClass()); } @@ -1039,6 +1042,7 @@ public static Object bitwiseNegate(final Object value) throws Throwable { * * @since 6.0.0 */ + @GroovyABI(since="6.0.0") public static Object compoundAssign(final Object receiver, final Object arg, final String assignName, final String baseName) throws Throwable { if (receiver != null) { @@ -1071,6 +1075,7 @@ public static Object compoundAssign(final Object receiver, final Object arg, * * @since 6.0.0 */ + @GroovyABI(since="6.0.0") public static Closure packedClosure(final Object owner, final Object dispatchers, final int id, final String method, final Object[] captured, final Class[] paramTypes, final boolean strict, final boolean implicit, final boolean vararg) { diff --git a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java index bc424d871e6..29b7e716f5a 100644 --- a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java +++ b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java @@ -29,6 +29,7 @@ import groovy.util.regex.BalancedGroup; import groovy.util.regex.RegexGuard; import org.apache.groovy.io.StringBuilderWriter; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.lang.annotation.Incubating; import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation; import org.codehaus.groovy.util.CharSequenceReader; @@ -2448,6 +2449,7 @@ public static String padRight(final CharSequence self, final Number numberOfChar * * @since 1.8.2 */ + @GroovyABI(since="3.0.0") public static String plus(final CharSequence left, final Object right) { return left + DefaultGroovyMethods.toString(right); } diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java index 5a76e244d3b..93bebf1d906 100644 --- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java +++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java @@ -18,6 +18,7 @@ */ package org.codehaus.groovy.runtime.dgmimpl; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.runtime.typehandling.NumberMath; public final class NumberNumberDiv extends NumberNumberMetaMethod { @@ -41,6 +42,7 @@ public Object invoke(Object object, Object[] arguments) { * @param right another Number * @return a Number resulting of the divide operation */ + @GroovyABI(since="2.0") public static Number div(Number left, Number right) { return NumberMath.divide(left, right); } diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java index b0301b0335e..d39f0593b73 100644 --- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java +++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java @@ -18,6 +18,7 @@ */ package org.codehaus.groovy.runtime.dgmimpl; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.runtime.typehandling.NumberMath; public final class NumberNumberMinus extends NumberNumberMetaMethod { @@ -38,6 +39,7 @@ public Object invoke(Object object, Object[] arguments) { * @param right another Number to subtract to the first one * @return the subtraction */ + @GroovyABI(since="2.0") public static Number minus(Number left, Number right) { return NumberMath.subtract(left, right); } diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java index a040743db0f..73f0b7b421d 100644 --- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java +++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java @@ -18,6 +18,7 @@ */ package org.codehaus.groovy.runtime.dgmimpl; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.runtime.typehandling.NumberMath; public final class NumberNumberMultiply extends NumberNumberMetaMethod { @@ -31,6 +32,7 @@ public Object invoke(Object object, Object[] arguments) { return NumberMath.multiply((Number) object, (Number) arguments[0]); } + @GroovyABI(since="2.0") public static Number multiply(Number left, Number right) { return NumberMath.multiply(left, right); } diff --git a/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java b/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java index 759e747f5d4..cb8b6fb5078 100644 --- a/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java +++ b/src/main/java/org/codehaus/groovy/runtime/powerassert/AssertionRenderer.java @@ -18,6 +18,7 @@ */ package org.codehaus.groovy.runtime.powerassert; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.runtime.FormatHelper; import java.util.ArrayList; @@ -53,6 +54,7 @@ public static String render(String text, ValueRecorder recorder) { return new AssertionRenderer(text, recorder).render(); } + @GroovyABI(since="1.7.0") private String render() { renderText(); sortValues(); diff --git a/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java b/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java index 8e4194f50e6..efa61ceec7c 100644 --- a/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java +++ b/src/main/java/org/codehaus/groovy/runtime/powerassert/ValueRecorder.java @@ -18,6 +18,8 @@ */ package org.codehaus.groovy.runtime.powerassert; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.util.ArrayList; import java.util.List; @@ -31,6 +33,7 @@ public class ValueRecorder { /** * Removes all values recorded for the current assertion evaluation. */ + @GroovyABI(since="1.7.0") public void clear() { values.clear(); } @@ -43,6 +46,7 @@ public void clear() { * non-positive value if the position is unknown * @return {@code value} */ + @GroovyABI(since="1.7.0") public Object record(Object value, int anchor) { values.add(new Value(value, anchor)); return value; diff --git a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java index 10d589b37ca..ce601f51e44 100644 --- a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java +++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java @@ -21,6 +21,7 @@ import groovy.lang.Closure; import groovy.lang.GString; import groovy.lang.GroovyRuntimeException; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.classgen.asm.util.TypeUtil; import org.codehaus.groovy.reflection.stdclasses.CachedSAMClass; import org.codehaus.groovy.runtime.ArrayGroovyMethods; @@ -63,6 +64,7 @@ /** * Class providing various type conversions, coercions and boxing/unboxing operations. + * @since Groovy 1.8.0 */ public class DefaultTypeTransformation { @@ -95,6 +97,7 @@ public class DefaultTypeTransformation { * @return the byte value * @throws GroovyCastException if the object cannot be converted to a number */ + @GroovyABI(since = "1.8.0") public static byte byteUnbox(final Object value) { if (value instanceof Byte b) { return b; @@ -113,6 +116,7 @@ public static byte byteUnbox(final Object value) { * @return the char value, or null character if value is null * @throws GroovyCastException if the object cannot be converted to char */ + @GroovyABI(since = "1.8.0") public static char charUnbox(final Object value) { if (value instanceof Character c) { return c; @@ -130,6 +134,7 @@ public static char charUnbox(final Object value) { * @return the short value * @throws GroovyCastException if the object cannot be converted to a number */ + @GroovyABI(since = "1.8.0") public static short shortUnbox(final Object value) { if (value instanceof Short s) { return s; @@ -147,6 +152,7 @@ public static short shortUnbox(final Object value) { * @return the int value * @throws GroovyCastException if the object cannot be converted to a number */ + @GroovyABI(since = "1.8.0") public static int intUnbox(final Object value) { if (value instanceof Integer i) { return i; @@ -163,6 +169,7 @@ public static int intUnbox(final Object value) { * @param value the object to unbox (may be null for false, Boolean, or any object with asBoolean()) * @return the boolean value */ + @GroovyABI(since = "1.8.0") public static boolean booleanUnbox(final Object value) { if (value instanceof Boolean b) { return b; @@ -179,6 +186,7 @@ public static boolean booleanUnbox(final Object value) { * @return the long value * @throws GroovyCastException if the object cannot be converted to a number */ + @GroovyABI(since = "1.8.0") public static long longUnbox(final Object value) { if (value instanceof Long l) { return l; @@ -197,6 +205,7 @@ public static long longUnbox(final Object value) { * @return the float value, or NaN if value is null * @throws GroovyCastException if the object cannot be converted to a number */ + @GroovyABI(since = "1.8.0") public static float floatUnbox(final Object value) { if (value instanceof Float f) { return f; @@ -216,6 +225,7 @@ public static float floatUnbox(final Object value) { * @return the double value, or NaN if value is null * @throws GroovyCastException if the object cannot be converted to a number */ + @GroovyABI(since = "1.8.0") public static double doubleUnbox(final Object value) { if (value instanceof Double d) { return d; @@ -237,6 +247,7 @@ public static double doubleUnbox(final Object value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(boolean value) { return value ? Boolean.TRUE : Boolean.FALSE; } @@ -249,6 +260,7 @@ public static Object box(boolean value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(byte value) { return value; } @@ -261,6 +273,7 @@ public static Object box(byte value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(char value) { return value; } @@ -273,6 +286,7 @@ public static Object box(char value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(short value) { return value; } @@ -285,6 +299,7 @@ public static Object box(short value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(int value) { return value; } @@ -297,6 +312,7 @@ public static Object box(int value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(long value) { return value; } @@ -309,6 +325,7 @@ public static Object box(long value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(float value) { return value; } @@ -321,6 +338,7 @@ public static Object box(float value) { * @deprecated since 2.3.0 - Java's auto-boxing is sufficient for this operation */ @Deprecated(since = "2.3.0") + @GroovyABI(since = "1.8.0") public static Object box(double value) { return value; } diff --git a/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMath.java b/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMath.java index 9fe7cf532c6..15dd093c83a 100644 --- a/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMath.java +++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/NumberMath.java @@ -18,6 +18,8 @@ */ package org.codehaus.groovy.runtime.typehandling; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.math.BigDecimal; import java.math.BigInteger; @@ -121,6 +123,7 @@ public static int compareTo(Number left, Number right) { * @return the bitwise OR result * @throws UnsupportedOperationException if operands are not integral types */ + @GroovyABI(since="2.5.0") public static Number or(Number left, Number right) { return getMath(left, right).orImpl(left, right); } @@ -133,6 +136,7 @@ public static Number or(Number left, Number right) { * @return the bitwise AND result * @throws UnsupportedOperationException if operands are not integral types */ + @GroovyABI(since="2.5.0") public static Number and(Number left, Number right) { return getMath(left, right).andImpl(left, right); } @@ -145,6 +149,7 @@ public static Number and(Number left, Number right) { * @return the bitwise XOR result * @throws UnsupportedOperationException if operands are not integral types */ + @GroovyABI(since="2.5.0") public static Number xor(Number left, Number right) { return getMath(left, right).xorImpl(left, right); } @@ -173,6 +178,7 @@ public static Number intdiv(Number left, Number right) { * @param right the divisor * @return the modulo result */ + @GroovyABI(since = "2.0") public static Number mod(Number left, Number right) { return getMath(left, right).modImpl(left, right); } @@ -187,6 +193,7 @@ public static Number mod(Number left, Number right) { * @return the remainder * @throws UnsupportedOperationException if operands don't support remainder operation */ + @GroovyABI(since="2.5.0") public static Number remainder(Number left, Number right) { return getMath(left, right).remainderImpl(left, right); } @@ -202,6 +209,7 @@ public static Number remainder(Number left, Number right) { * @return the left-shifted value * @throws UnsupportedOperationException if shift distance is floating-point or BigDecimal */ + @GroovyABI(since="2.5.0") public static Number leftShift(Number left, Number right) { if (isFloatingPoint(right) || isBigDecimal(right)) { throw new UnsupportedOperationException("Shift distance must be an integral type, but " + right + " (" + right.getClass().getName() + ") was supplied"); @@ -220,6 +228,7 @@ public static Number leftShift(Number left, Number right) { * @return the right-shifted value * @throws UnsupportedOperationException if shift distance is floating-point or BigDecimal */ + @GroovyABI(since="2.5.0") public static Number rightShift(Number left, Number right) { if (isFloatingPoint(right) || isBigDecimal(right)) { throw new UnsupportedOperationException("Shift distance must be an integral type, but " + right + " (" + right.getClass().getName() + ") was supplied"); @@ -238,6 +247,7 @@ public static Number rightShift(Number left, Number right) { * @return the unsigned right-shifted value * @throws UnsupportedOperationException if shift distance is floating-point or BigDecimal */ + @GroovyABI(since="2.5.0") public static Number rightShiftUnsigned(Number left, Number right) { if (isFloatingPoint(right) || isBigDecimal(right)) { throw new UnsupportedOperationException("Shift distance must be an integral type, but " + right + " (" + right.getClass().getName() + ") was supplied"); diff --git a/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java index a74d493ac4b..09c6a6971c5 100644 --- a/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java +++ b/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java @@ -27,6 +27,7 @@ import org.apache.groovy.ast.tools.AnnotatedNodeUtils; import org.apache.groovy.ast.tools.CopyWithUtils; import org.apache.groovy.ast.tools.ImmutablePropertyUtils; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.ast.ASTNode; import org.codehaus.groovy.ast.AnnotatedNode; import org.codehaus.groovy.ast.AnnotationNode; @@ -325,8 +326,10 @@ private static void createCopyWith(final ClassNode cNode, final List) field); diff --git a/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java b/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java index a92511beaa3..f3b9ce4d856 100644 --- a/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java +++ b/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java @@ -18,6 +18,8 @@ */ package org.codehaus.groovy.util; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.util.Arrays; /** @@ -34,6 +36,7 @@ public class HashCodeHelper { * * @return the starting hash value */ + @GroovyABI(since="1.6.0") public static int initHash() { return SEED; } @@ -45,6 +48,7 @@ public static int initHash() { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, boolean var) { return shift(current) + (var ? 79 : 97); } @@ -56,6 +60,7 @@ public static int updateHash(int current, boolean var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, char var) { return shift(current) + (int) var; } @@ -67,6 +72,7 @@ public static int updateHash(int current, char var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, Character var) { return updateHash(current, var == null ? 0 : var.charValue()); } @@ -78,6 +84,7 @@ public static int updateHash(int current, Character var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, int var) { return shift(current) + var; } @@ -89,6 +96,7 @@ public static int updateHash(int current, int var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, Integer var) { return updateHash(current, var == null ? 0 : var); } @@ -100,6 +108,7 @@ public static int updateHash(int current, Integer var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, long var) { return shift(current) + (int) (var ^ (var >>> 32)); } @@ -111,6 +120,7 @@ public static int updateHash(int current, long var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, Long var) { return updateHash(current, var == null ? 0L : var); } @@ -122,6 +132,7 @@ public static int updateHash(int current, Long var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, float var) { return updateHash(current, Float.floatToIntBits(var)); } @@ -133,6 +144,7 @@ public static int updateHash(int current, float var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, Float var) { return updateHash(current, var == null ? 0f : var); } @@ -144,6 +156,7 @@ public static int updateHash(int current, Float var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, double var) { return updateHash(current, Double.doubleToLongBits(var)); } @@ -155,6 +168,7 @@ public static int updateHash(int current, double var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, Double var) { return updateHash(current, var == null ? 0d : var); } @@ -166,6 +180,7 @@ public static int updateHash(int current, Double var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, Object var) { if (var == null) return updateHash(current, 0); if (var.getClass().isArray()) @@ -180,6 +195,7 @@ public static int updateHash(int current, Object var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, boolean[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -192,6 +208,7 @@ public static int updateHash(int current, boolean[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, char[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -204,6 +221,7 @@ public static int updateHash(int current, char[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, byte[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -216,6 +234,7 @@ public static int updateHash(int current, byte[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, short[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -228,6 +247,7 @@ public static int updateHash(int current, short[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, int[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -240,6 +260,7 @@ public static int updateHash(int current, int[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, long[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -252,6 +273,7 @@ public static int updateHash(int current, long[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, float[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); @@ -264,6 +286,7 @@ public static int updateHash(int current, float[] var) { * @param var the value to mix in * @return the updated hash value */ + @GroovyABI(since="1.6.0") public static int updateHash(int current, double[] var) { if (var == null) return updateHash(current, 0); return shift(current) + Arrays.hashCode(var); diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyInterface.java b/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyInterface.java index f902783c01a..aeea2138d57 100644 --- a/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyInterface.java +++ b/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyInterface.java @@ -18,6 +18,7 @@ */ package org.codehaus.groovy.vmplugin.v7; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.vmplugin.v8.CacheableCallSite; import java.lang.invoke.CallSite; @@ -126,6 +127,7 @@ public static CallType fromCallSiteName(String callSiteName) { * @return the produced CallSite * @since 2.1.0 */ + @GroovyABI(since="2.1.0") public static CallSite bootstrap(Lookup caller, String callType, MethodType type, String name, int flags) { return org.codehaus.groovy.vmplugin.v8.IndyInterface.bootstrap(caller, callType, type, name, flags); } diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java index 05cd8761505..31f8fdd5c38 100644 --- a/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java +++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java @@ -20,6 +20,7 @@ import groovy.lang.GroovyRuntimeException; import groovy.lang.GroovySystem; +import org.apache.groovy.lang.annotation.GroovyABI; import org.apache.groovy.runtime.indy.IndyInvalidation; import org.apache.groovy.util.SystemUtil; import org.codehaus.groovy.GroovyBugError; @@ -293,6 +294,7 @@ static MethodHandle applyMopSwitchPoints(final MethodHandle handle, final Method * * @since 2.1.0 */ + @GroovyABI(since="2.1.0") public static CallSite bootstrap(final MethodHandles.Lookup caller, final String callType, final MethodType type, final String name, final int flags) { CallType ct = CallType.fromCallSiteName(callType); if (null == ct) throw new GroovyBugError("Unknown call type: " + callType); @@ -631,6 +633,7 @@ private static MethodHandleWrapper fallback(CacheableCallSite callSite, Class /** * @since 2.5.0 */ + @GroovyABI(since="2.5.0") public static CallSite staticArrayAccess(MethodHandles.Lookup lookup, String name, MethodType type) { if (type.parameterCount() == 2) { return new ConstantCallSite(IndyArrayAccess.arrayGet(type)); @@ -647,6 +650,7 @@ public static CallSite staticArrayAccess(MethodHandles.Lookup lookup, String nam * * @since 6.0.0 */ + @GroovyABI(since="6.0.0") public static CallSite packedDispatchers(MethodHandles.Lookup caller, String name, MethodType type) throws Throwable { return GeneratedDispatcher.bootstrap(caller, name, type); } @@ -659,6 +663,7 @@ public static CallSite packedDispatchers(MethodHandles.Lookup caller, String nam * * @since 6.0.0 */ + @GroovyABI(since="6.0.0") public static Class[] packedParamTypes(MethodHandles.Lookup caller, String name, Class type, String descriptor) { return GeneratedDispatcher.paramTypes(caller, name, type, descriptor); } diff --git a/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSite.java b/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSite.java index d46b833a1f8..b1e0329ae50 100644 --- a/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSite.java +++ b/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSite.java @@ -19,6 +19,7 @@ package org.codehaus.groovy.runtime.callsite; import groovy.lang.GroovyObject; +import org.apache.groovy.lang.annotation.GroovyABI; /** * Classic (non-{@code invokedynamic}) call site. @@ -37,38 +38,68 @@ public interface CallSite { Object callGroovyObjectGetProperty (Object receiver) throws Throwable; Object callGroovyObjectGetPropertySafe (Object receiver) throws Throwable; + @GroovyABI(since = "1.6.0") Object call (Object receiver, Object[] args) throws Throwable; + @GroovyABI(since = "1.6.0") Object call (Object receiver) throws Throwable; + @GroovyABI(since = "1.6.0") Object call (Object receiver, Object arg1) throws Throwable; + @GroovyABI(since = "1.6.0") Object call (Object receiver, Object arg1, Object arg2) throws Throwable; + @GroovyABI(since = "1.6.0") Object call (Object receiver, Object arg1, Object arg2, Object arg3) throws Throwable; + @GroovyABI(since = "1.6.0") Object call (Object receiver, Object arg1, Object arg2, Object arg3, Object arg4) throws Throwable; + @GroovyABI(since = "1.6.0") Object callSafe (Object receiver, Object[] args) throws Throwable; + @GroovyABI(since = "1.6.0") Object callSafe (Object receiver) throws Throwable; + @GroovyABI(since = "1.6.0") Object callSafe (Object receiver, Object arg1) throws Throwable; + @GroovyABI(since = "1.6.0") Object callSafe (Object receiver, Object arg1, Object arg2) throws Throwable; + @GroovyABI(since = "1.6.0") Object callSafe (Object receiver, Object arg1, Object arg2, Object arg3) throws Throwable; + @GroovyABI(since = "1.6.0") Object callSafe (Object receiver, Object arg1, Object arg2, Object arg3, Object arg4) throws Throwable; + @GroovyABI(since = "1.6.0") Object callCurrent (GroovyObject receiver, Object [] args) throws Throwable; + @GroovyABI(since = "1.6.0") Object callCurrent (GroovyObject receiver) throws Throwable; + @GroovyABI(since = "1.6.0") Object callCurrent (GroovyObject receiver, Object arg1) throws Throwable; + @GroovyABI(since = "1.6.0") Object callCurrent (GroovyObject receiver, Object arg1, Object arg2) throws Throwable; + @GroovyABI(since = "1.6.0") Object callCurrent (GroovyObject receiver, Object arg1, Object arg2, Object arg3) throws Throwable; + @GroovyABI(since = "1.6.0") Object callCurrent (GroovyObject receiver, Object arg1, Object arg2, Object arg3, Object arg4) throws Throwable; + @GroovyABI(since = "1.6.0") Object callStatic (Class receiver, Object [] args) throws Throwable; + @GroovyABI(since = "1.6.0") Object callStatic (Class receiver) throws Throwable; + @GroovyABI(since = "1.6.0") Object callStatic (Class receiver, Object arg1) throws Throwable; + @GroovyABI(since = "1.6.0") Object callStatic (Class receiver, Object arg1, Object arg2) throws Throwable; + @GroovyABI(since = "1.6.0") Object callStatic (Class receiver, Object arg1, Object arg2, Object arg3) throws Throwable; + @GroovyABI(since = "1.6.0") Object callStatic (Class receiver, Object arg1, Object arg2, Object arg3, Object arg4) throws Throwable; + @GroovyABI(since = "1.6.0") Object callConstructor (Object receiver, Object [] args) throws Throwable; + @GroovyABI(since = "1.6.0") Object callConstructor (Object receiver) throws Throwable; + @GroovyABI(since = "1.6.0") Object callConstructor (Object receiver, Object arg1) throws Throwable; + @GroovyABI(since = "1.6.0") Object callConstructor (Object receiver, Object arg1, Object arg2) throws Throwable; + @GroovyABI(since = "1.6.0") Object callConstructor (Object receiver, Object arg1, Object arg2, Object arg3) throws Throwable; + @GroovyABI(since = "1.6.0") Object callConstructor (Object receiver, Object arg1, Object arg2, Object arg3, Object arg4) throws Throwable; } diff --git a/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java b/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java index b60630fb419..7539d9c8608 100644 --- a/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java +++ b/subprojects/groovy-callsite/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java @@ -22,6 +22,7 @@ import groovy.lang.GroovyObject; import groovy.lang.MetaClass; import groovy.lang.MetaClassImpl; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.reflection.ClassInfo; import org.codehaus.groovy.runtime.GroovyCategorySupport; import org.codehaus.groovy.runtime.InvokerHelper; @@ -39,6 +40,7 @@ public final class CallSiteArray { public final CallSite[] array; public final Class owner; + @GroovyABI(since = "1.6.0") public CallSiteArray(Class owner, final String[] names) { this.owner = owner; this.array = IntStream.range(0, names.length) diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ViolationTracker.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ViolationTracker.java index b4d4cb312ef..a1c4f5acb4b 100644 --- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ViolationTracker.java +++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ViolationTracker.java @@ -19,6 +19,7 @@ package org.apache.groovy.contracts; import org.apache.groovy.contracts.util.Validate; +import org.apache.groovy.lang.annotation.GroovyABI; import java.util.NavigableMap; import java.util.TreeMap; @@ -40,6 +41,7 @@ public class ViolationTracker { /** * Installs a fresh tracker for the current thread. */ + @GroovyABI(since="4.0.0") public static void init() { INSTANCE.set(new ViolationTracker()); } @@ -47,6 +49,7 @@ public static void init() { /** * Removes the tracker associated with the current thread. */ + @GroovyABI(since="4.0.0") public static void deinit() { INSTANCE.remove(); } @@ -56,6 +59,7 @@ public static void deinit() { * * @return {@code true} if a violation has been tracked for the current thread */ + @GroovyABI(since="4.0.0") public static boolean violationsOccurred() { return INSTANCE.get().hasViolations(); } @@ -63,6 +67,7 @@ public static boolean violationsOccurred() { /** * Rethrows the earliest recorded violation for the current thread. */ + @GroovyABI(since="4.0.0") public static void rethrowFirst() { throw INSTANCE.get().first(); } @@ -70,6 +75,7 @@ public static void rethrowFirst() { /** * Rethrows the most recently recorded violation for the current thread. */ + @GroovyABI(since="4.0.0") public static void rethrowLast() { throw INSTANCE.get().last(); } @@ -81,6 +87,7 @@ public static void rethrowLast() { * * @param assertionViolation the violation to store */ + @GroovyABI(since="4.0.0") public void track(final AssertionViolation assertionViolation) { Validate.notNull(assertionViolation); @@ -92,6 +99,7 @@ public void track(final AssertionViolation assertionViolation) { * * @return {@code true} if at least one violation has been recorded */ + @GroovyABI(since="4.0.0") public boolean hasViolations() { return !violations.isEmpty(); } @@ -101,6 +109,7 @@ public boolean hasViolations() { * * @return the first violation in encounter order */ + @GroovyABI(since="4.0.0") public AssertionViolation first() { return violations.firstEntry().getValue(); } @@ -110,6 +119,7 @@ public AssertionViolation first() { * * @return the last violation in encounter order */ + @GroovyABI(since="4.0.0") public AssertionViolation last() { return violations.lastEntry().getValue(); } diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/Configurator.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/Configurator.java index aef71bfd582..9f2802a8edd 100644 --- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/Configurator.java +++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/Configurator.java @@ -18,6 +18,8 @@ */ package org.apache.groovy.contracts.generation; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.util.HashMap; @@ -102,6 +104,7 @@ private static void initAssertionConfiguration() { * @param className the class name to look up in the assertion configuration * @return whether assertion checking is enabled or not */ + @GroovyABI(since="4.0.0") public static boolean checkAssertionsEnabled(final String className) { return internalMethod(className); } diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ContractExecutionTracker.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ContractExecutionTracker.java index 9e521d9bc76..546a3530171 100644 --- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ContractExecutionTracker.java +++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ContractExecutionTracker.java @@ -18,6 +18,8 @@ */ package org.apache.groovy.contracts.generation; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -156,6 +158,7 @@ public static boolean track(String className, String methodIdentifier, String as * @param assertionType the logical contract kind * @param isStatic whether the executable is static */ + @GroovyABI(since="4.0.0") public static void clear(String className, String methodIdentifier, String assertionType, boolean isStatic) { final Set contractExecutions = executions.get(); diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/util/FieldValues.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/util/FieldValues.java index f9b6fd10e5b..d22b0c36d73 100644 --- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/util/FieldValues.java +++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/util/FieldValues.java @@ -18,6 +18,8 @@ */ package org.apache.groovy.contracts.util; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.lang.reflect.Field; /** @@ -37,6 +39,7 @@ public class FieldValues { * @throws IllegalAccessException if reflective access fails */ @SuppressWarnings("unchecked") + @GroovyABI(since="4.0.0") public static T fieldValue(Object obj, String fieldName, Class type) throws IllegalAccessException { Validate.notNull(obj); Validate.notNull(fieldName); @@ -54,6 +57,7 @@ public static T fieldValue(Object obj, String fieldName, Class type) thro return (T) f.get(target); } + @GroovyABI(since="4.0.0") private static Field findField(Class clazz, String name) { Class next = clazz; while (!Object.class.equals(next) && next != null) { diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/NamedRecord.groovy b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/NamedRecord.groovy index 3f24b0a641a..88eeb8f8e42 100644 --- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/NamedRecord.groovy +++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/NamedRecord.groovy @@ -21,6 +21,7 @@ package org.apache.groovy.ginq.provider.collection.runtime import groovy.transform.AutoFinal import groovy.transform.CompileStatic import groovy.transform.stc.POJO +import org.apache.groovy.lang.annotation.GroovyABI /** * Represents named record, which is constructed by clauses excluding {@code from} and joins @@ -99,6 +100,7 @@ class NamedRecord extends NamedTuple { * @param sr the source record * @return this record */ + @GroovyABI(since="4.0.0") NamedRecord sourceRecord(T sr) { sourceRecord = new SourceRecord<>(sr, getAliasList()) return this diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java index a3b013b56fc..9eb9b62f9e7 100644 --- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java +++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java @@ -20,6 +20,7 @@ import groovy.lang.Tuple2; import groovy.transform.Internal; +import org.apache.groovy.lang.annotation.GroovyABI; import java.math.BigDecimal; import java.util.Arrays; @@ -72,6 +73,7 @@ static Queryable emptyQueryable() { * @return the {@link Queryable} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static Queryable from(Iterable iterable) { return new QueryableCollection<>(iterable); } @@ -84,6 +86,7 @@ static Queryable from(Iterable iterable) { * @return the {@link Queryable} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static Queryable from(T[] array) { return new QueryableCollection<>(Arrays.asList(array)); } @@ -96,6 +99,7 @@ static Queryable from(T[] array) { * @return the {@link Queryable} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static Queryable from(Stream sourceStream) { return new QueryableCollection<>(sourceStream); } @@ -108,6 +112,7 @@ static Queryable from(Stream sourceStream) { * @return the {@link Queryable} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static Queryable from(Queryable queryable) { return queryable; } diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableHelper.groovy b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableHelper.groovy index 40febc064b7..f4a7cc5e27e 100644 --- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableHelper.groovy +++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableHelper.groovy @@ -21,6 +21,7 @@ package org.apache.groovy.ginq.provider.collection.runtime import groovy.transform.CompileDynamic import groovy.transform.CompileStatic import groovy.transform.Internal +import org.apache.groovy.lang.annotation.GroovyABI import org.apache.groovy.util.SystemUtil import java.util.concurrent.Callable @@ -54,6 +55,7 @@ class QueryableHelper { * @return the result {@link Queryable} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static Queryable> navigate(Queryable queryable, List aliasList) { List> sourceRecordList = queryable.stream() @@ -71,6 +73,7 @@ class QueryableHelper { * @throws TooManyValuesException if the {@link Queryable} instance contains more than one value * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static T singleValue(final Queryable queryable) { List list = queryable.toList() int size = list.size() @@ -91,6 +94,7 @@ class QueryableHelper { * @param supplier the supplier to execute * @return the asynchronous result */ + @GroovyABI(since="4.0.0") static CompletableFuture supplyAsync(Supplier supplier) { return CompletableFuture.supplyAsync(supplier, ThreadPoolHolder.THREAD_POOL) } @@ -112,6 +116,7 @@ class QueryableHelper { * @param callable the task to submit * @return the submitted task */ + @GroovyABI(since="4.0.0") static ForkJoinTask submit(Callable callable) { return ThreadPoolHolder.FORKJOIN_POOL.submit(callable) } @@ -131,6 +136,7 @@ class QueryableHelper { * @param name the variable name * @param value the variable value */ + @GroovyABI(since="4.0.0") static void setVar(String name, T value) { VAR_HOLDER.get().put(name, value) } @@ -141,6 +147,7 @@ class QueryableHelper { * @param name the variable name * @return the stored value */ + @GroovyABI(since="4.0.0") static T getVar(String name) { (T) VAR_HOLDER.get().get(name) } @@ -151,6 +158,7 @@ class QueryableHelper { * @param name the variable name * @return the removed value */ + @GroovyABI(since="4.0.0") static T removeVar(String name) { (T) VAR_HOLDER.get().remove(name) } diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinition.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinition.java index f56cb14c867..ac3223ea6bc 100644 --- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinition.java +++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinition.java @@ -18,6 +18,8 @@ */ package org.apache.groovy.ginq.provider.collection.runtime; +import org.apache.groovy.lang.annotation.GroovyABI; + import java.util.Collections; import java.util.List; import java.util.function.Function; @@ -39,6 +41,7 @@ public interface WindowDefinition> { * @return the {@link WindowDefinition} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static > WindowDefinition of() { return new WindowDefinitionImpl<>(); } @@ -52,6 +55,7 @@ static > WindowDefinition of() { * @return the {@link WindowDefinition} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static > WindowDefinition of(Function partitionBy) { return new WindowDefinitionImpl<>(partitionBy); } @@ -65,6 +69,7 @@ static > WindowDefinition of(Function> WindowDefinition of(Queryable.Order orderBy) { return new WindowDefinitionImpl(Collections.singletonList(orderBy)); } @@ -78,6 +83,7 @@ static > WindowDefinition of(Queryable. * @return the {@link WindowDefinition} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") static > WindowDefinition of(List> orderBy) { return new WindowDefinitionImpl<>(orderBy); } @@ -92,6 +98,7 @@ static > WindowDefinition of(List> WindowDefinition of(Function partitionBy, List> orderBy) { return new WindowDefinitionImpl<>(partitionBy, orderBy); } @@ -107,6 +114,7 @@ static > WindowDefinition of(Function> WindowDefinition of(Function partitionBy, List> orderBy, RowBound rows) { return new WindowDefinitionImpl<>(partitionBy, orderBy, rows); } @@ -121,6 +129,7 @@ static > WindowDefinition of(Function> WindowDefinition of(List> orderBy, RowBound rows) { return new WindowDefinitionImpl<>(orderBy, rows); } @@ -136,6 +145,7 @@ static > WindowDefinition of(List> WindowDefinition of(Function partitionBy, List> orderBy, ValueBound range) { return new WindowDefinitionImpl<>(partitionBy, orderBy, range); } @@ -150,6 +160,7 @@ static > WindowDefinition of(Function> WindowDefinition of(List> orderBy, ValueBound range) { return new WindowDefinitionImpl<>(orderBy, range); } @@ -208,5 +219,6 @@ default ValueBound range() { * @return self, i.e. current {@link WindowDefinition} instance * @since 4.0.0 */ + @GroovyABI(since="4.0.0") WindowDefinition setId(Object id); } diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java index 4a329ed74f1..88ba70db1a3 100644 --- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java +++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java @@ -19,6 +19,7 @@ package org.codehaus.groovy.macro.runtime; import groovy.lang.Closure; +import org.apache.groovy.lang.annotation.GroovyABI; import org.codehaus.groovy.ast.ASTNode; import org.codehaus.groovy.ast.ClassCodeExpressionTransformer; import org.codehaus.groovy.ast.ClassNode; @@ -55,6 +56,7 @@ public enum MacroBuilder { * @param the expected result type * @return the built macro value */ + @GroovyABI(since="2.5.0") public T macro(String source, final List> context, Class resultClass) { return macro(false, source, context, resultClass); } @@ -69,6 +71,7 @@ public T macro(String source, final List> context, Class * @param the expected result type * @return the built macro value */ + @GroovyABI(since="2.5.0") public T macro(boolean asIs, String source, final List> context, Class resultClass) { return macro(null, asIs, source, context, resultClass); } @@ -83,6 +86,7 @@ public T macro(boolean asIs, String source, final List> * @param the expected result type * @return the built macro value */ + @GroovyABI(since="2.5.0") public T macro(CompilePhase compilePhase, String source, final List> context, Class resultClass) { return macro(compilePhase, false, source, context, resultClass); }