OpenJDK / bsd-port / jdk9 / jdk
changeset 3793:9c1e4e0ab69f
7012648: move JSR 292 to package java.lang.invoke and adjust names
Summary: package and class renaming only; delete unused methods and classes; add @since tags; no code changes
Reviewed-by: twisti
line wrap: on
line diff
--- a/make/common/Release.gmk Fri Mar 18 00:03:24 2011 -0700 +++ b/make/common/Release.gmk Wed Mar 23 23:02:31 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -54,9 +54,6 @@ com.sun.java.swing.plaf.motif \ com.sun.java.swing.plaf.gtk -# This is a stopgap until 6839872 is fixed. -EXCLUDE_PROPWARN_PKGS += sun.dyn - # # Include the exported private packages in ct.sym. # This is an interim solution until the ct.sym is replaced
--- a/make/docs/CORE_PKGS.gmk Fri Mar 18 00:03:24 2011 -0700 +++ b/make/docs/CORE_PKGS.gmk Wed Mar 23 23:02:31 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -55,7 +55,7 @@ # This is a list of regular expressions. So foo.* matches "foo" and "foo.bar". # ACTIVE_JSR_PKGS= \ - java.dyn \ + java.lang.invoke \ java.sql \ javax.activation \ javax.annotation.* \ @@ -97,11 +97,11 @@ java.awt.print \ java.beans \ java.beans.beancontext \ - java.dyn \ java.io \ java.lang \ java.lang.annotation \ java.lang.instrument \ + java.lang.invoke \ java.lang.management \ java.lang.ref \ java.lang.reflect \
--- a/make/java/Makefile Fri Mar 18 00:03:24 2011 -0700 +++ b/make/java/Makefile Wed Mar 23 23:02:31 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ SUBDIRS_desktop = awt applet beans SUBDIRS_management = management SUBDIRS_misc = npt java_crw_demo java_hprof_demo \ - logging instrument dyn sql rmi + logging instrument invoke sql rmi ifeq ($(PLATFORM), solaris)
--- a/make/java/dyn/Makefile Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -# -# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -BUILDDIR = ../.. - -PACKAGE = java.dyn -PRODUCT = java -include $(BUILDDIR)/common/Defs.gmk - -AUTO_FILES_JAVA_DIRS = java/dyn sun/dyn - -# The sources built here use new language syntax to generate -# method handle calls. Let's be sure we are using that format. -LANGUAGE_VERSION = -source 7 -CLASS_VERSION = -target 7 - -# Tell the compiler not to accept transitional forms. -OTHER_JAVACFLAGS = -XDallowTransitionalJSR292=no - -include $(BUILDDIR)/common/Classes.gmk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/java/invoke/Makefile Wed Mar 23 23:02:31 2011 -0700 @@ -0,0 +1,42 @@ +# +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +BUILDDIR = ../.. + +PACKAGE = java.lang.invoke +PRODUCT = java +include $(BUILDDIR)/common/Defs.gmk + +AUTO_FILES_JAVA_DIRS = java/lang/invoke sun/invoke +FILES_java = \ + java/lang/ClassValue.java \ + java/lang/BootstrapMethodError.java + +# The sources built here use new language syntax to generate +# method handle calls. Let's be sure we are using that format. +LANGUAGE_VERSION = -source 7 +CLASS_VERSION = -target 7 + +include $(BUILDDIR)/common/Classes.gmk
--- a/src/share/classes/java/dyn/AdapterMethodHandle.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,943 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import sun.dyn.util.VerifyType; -import sun.dyn.util.Wrapper; -import java.util.Arrays; -import static java.dyn.MethodHandleNatives.Constants.*; -import static java.dyn.MethodHandleStatics.*; - -/** - * This method handle performs simple conversion or checking of a single argument. - * @author jrose - */ -class AdapterMethodHandle extends BoundMethodHandle { - - //MethodHandle vmtarget; // next AMH or BMH in chain or final DMH - //Object argument; // parameter to the conversion if needed - //int vmargslot; // which argument slot is affected - private final int conversion; // the type of conversion: RETYPE_ONLY, etc. - - // Constructors in this class *must* be package scoped or private. - private AdapterMethodHandle(MethodHandle target, MethodType newType, - long conv, Object convArg) { - super(newType, convArg, newType.parameterSlotDepth(1+convArgPos(conv))); - this.conversion = convCode(conv); - // JVM might update VM-specific bits of conversion (ignore) - MethodHandleNatives.init(this, target, convArgPos(conv)); - } - private AdapterMethodHandle(MethodHandle target, MethodType newType, - long conv) { - this(target, newType, conv, null); - } - - // TO DO: When adapting another MH with a null conversion, clone - // the target and change its type, instead of adding another layer. - - /** Can a JVM-level adapter directly implement the proposed - * argument conversions, as if by MethodHandles.convertArguments? - */ - static boolean canPairwiseConvert(MethodType newType, MethodType oldType) { - // same number of args, of course - int len = newType.parameterCount(); - if (len != oldType.parameterCount()) - return false; - - // Check return type. (Not much can be done with it.) - Class<?> exp = newType.returnType(); - Class<?> ret = oldType.returnType(); - if (!VerifyType.isNullConversion(ret, exp)) - return false; - - // Check args pairwise. - for (int i = 0; i < len; i++) { - Class<?> src = newType.parameterType(i); // source type - Class<?> dst = oldType.parameterType(i); // destination type - if (!canConvertArgument(src, dst)) - return false; - } - - return true; - } - - /** Can a JVM-level adapter directly implement the proposed - * argument conversion, as if by MethodHandles.convertArguments? - */ - static boolean canConvertArgument(Class<?> src, Class<?> dst) { - // ? Retool this logic to use RETYPE_ONLY, CHECK_CAST, etc., as opcodes, - // so we don't need to repeat so much decision making. - if (VerifyType.isNullConversion(src, dst)) { - return true; - } else if (src.isPrimitive()) { - if (dst.isPrimitive()) - return canPrimCast(src, dst); - else - return canBoxArgument(src, dst); - } else { - if (dst.isPrimitive()) - return canUnboxArgument(src, dst); - else - return true; // any two refs can be interconverted - } - } - - /** - * Create a JVM-level adapter method handle to conform the given method - * handle to the similar newType, using only pairwise argument conversions. - * For each argument, convert incoming argument to the exact type needed. - * Only null conversions are allowed on the return value (until - * the JVM supports ricochet adapters). - * The argument conversions allowed are casting, unboxing, - * integral widening or narrowing, and floating point widening or narrowing. - * @param newType required call type - * @param target original method handle - * @return an adapter to the original handle with the desired new type, - * or the original target if the types are already identical - * or null if the adaptation cannot be made - */ - static MethodHandle makePairwiseConvert(MethodType newType, MethodHandle target) { - MethodType oldType = target.type(); - if (newType == oldType) return target; - - if (!canPairwiseConvert(newType, oldType)) - return null; - // (after this point, it is an assertion error to fail to convert) - - // Find last non-trivial conversion (if any). - int lastConv = newType.parameterCount()-1; - while (lastConv >= 0) { - Class<?> src = newType.parameterType(lastConv); // source type - Class<?> dst = oldType.parameterType(lastConv); // destination type - if (VerifyType.isNullConversion(src, dst)) { - --lastConv; - } else { - break; - } - } - // Now build a chain of one or more adapters. - MethodHandle adapter = target; - MethodType midType = oldType.changeReturnType(newType.returnType()); - for (int i = 0; i <= lastConv; i++) { - Class<?> src = newType.parameterType(i); // source type - Class<?> dst = midType.parameterType(i); // destination type - if (VerifyType.isNullConversion(src, dst)) { - // do nothing: difference is trivial - continue; - } - // Work the current type backward toward the desired caller type: - if (i != lastConv) { - midType = midType.changeParameterType(i, src); - } else { - // When doing the last (or only) real conversion, - // force all remaining null conversions to happen also. - assert(VerifyType.isNullConversion(newType, midType.changeParameterType(i, src))); - midType = newType; - } - - // Tricky case analysis follows. - // It parallels canConvertArgument() above. - if (src.isPrimitive()) { - if (dst.isPrimitive()) { - adapter = makePrimCast(midType, adapter, i, dst); - } else { - adapter = makeBoxArgument(midType, adapter, i, dst); - } - } else { - if (dst.isPrimitive()) { - // Caller has boxed a primitive. Unbox it for the target. - // The box type must correspond exactly to the primitive type. - // This is simpler than the powerful set of widening - // conversions supported by reflect.Method.invoke. - // Those conversions require a big nest of if/then/else logic, - // which we prefer to make a user responsibility. - adapter = makeUnboxArgument(midType, adapter, i, dst); - } else { - // Simple reference conversion. - // Note: Do not check for a class hierarchy relation - // between src and dst. In all cases a 'null' argument - // will pass the cast conversion. - adapter = makeCheckCast(midType, adapter, i, dst); - } - } - assert(adapter != null); - assert(adapter.type() == midType); - } - if (adapter.type() != newType) { - // Only trivial conversions remain. - adapter = makeRetypeOnly(newType, adapter); - assert(adapter != null); - // Actually, that's because there were no non-trivial ones: - assert(lastConv == -1); - } - assert(adapter.type() == newType); - return adapter; - } - - /** - * Create a JVM-level adapter method handle to permute the arguments - * of the given method. - * @param newType required call type - * @param target original method handle - * @param argumentMap for each target argument, position of its source in newType - * @return an adapter to the original handle with the desired new type, - * or the original target if the types are already identical - * and the permutation is null - * @throws IllegalArgumentException if the adaptation cannot be made - * directly by a JVM-level adapter, without help from Java code - */ - static MethodHandle makePermutation(MethodType newType, MethodHandle target, - int[] argumentMap) { - MethodType oldType = target.type(); - boolean nullPermutation = true; - for (int i = 0; i < argumentMap.length; i++) { - int pos = argumentMap[i]; - if (pos != i) - nullPermutation = false; - if (pos < 0 || pos >= newType.parameterCount()) { - argumentMap = new int[0]; break; - } - } - if (argumentMap.length != oldType.parameterCount()) - throw newIllegalArgumentException("bad permutation: "+Arrays.toString(argumentMap)); - if (nullPermutation) { - MethodHandle res = makePairwiseConvert(newType, target); - // well, that was easy - if (res == null) - throw newIllegalArgumentException("cannot convert pairwise: "+newType); - return res; - } - - // Check return type. (Not much can be done with it.) - Class<?> exp = newType.returnType(); - Class<?> ret = oldType.returnType(); - if (!VerifyType.isNullConversion(ret, exp)) - throw newIllegalArgumentException("bad return conversion for "+newType); - - // See if the argument types match up. - for (int i = 0; i < argumentMap.length; i++) { - int j = argumentMap[i]; - Class<?> src = newType.parameterType(j); - Class<?> dst = oldType.parameterType(i); - if (!VerifyType.isNullConversion(src, dst)) - throw newIllegalArgumentException("bad argument #"+j+" conversion for "+newType); - } - - // Now figure out a nice mix of SWAP, ROT, DUP, and DROP adapters. - // A workable greedy algorithm is as follows: - // Drop unused outgoing arguments (right to left: shallowest first). - // Duplicate doubly-used outgoing arguments (left to right: deepest first). - // Then the remaining problem is a true argument permutation. - // Marshal the outgoing arguments as required from left to right. - // That is, find the deepest outgoing stack position that does not yet - // have the correct argument value, and correct at least that position - // by swapping or rotating in the misplaced value (from a shallower place). - // If the misplaced value is followed by one or more consecutive values - // (also misplaced) issue a rotation which brings as many as possible - // into position. Otherwise make progress with either a swap or a - // rotation. Prefer the swap as cheaper, but do not use it if it - // breaks a slot pair. Prefer the rotation over the swap if it would - // preserve more consecutive values shallower than the target position. - // When more than one rotation will work (because the required value - // is already adjacent to the target position), then use a rotation - // which moves the old value in the target position adjacent to - // one of its consecutive values. Also, prefer shorter rotation - // spans, since they use fewer memory cycles for shuffling. - - throw new UnsupportedOperationException("NYI"); - } - - private static byte basicType(Class<?> type) { - if (type == null) return T_VOID; - switch (Wrapper.forBasicType(type)) { - case BOOLEAN: return T_BOOLEAN; - case CHAR: return T_CHAR; - case FLOAT: return T_FLOAT; - case DOUBLE: return T_DOUBLE; - case BYTE: return T_BYTE; - case SHORT: return T_SHORT; - case INT: return T_INT; - case LONG: return T_LONG; - case OBJECT: return T_OBJECT; - case VOID: return T_VOID; - } - return 99; // T_ILLEGAL or some such - } - - /** Number of stack slots for the given type. - * Two for T_DOUBLE and T_FLOAT, one for the rest. - */ - private static int type2size(int type) { - assert(type >= T_BOOLEAN && type <= T_OBJECT); - return (type == T_LONG || type == T_DOUBLE) ? 2 : 1; - } - private static int type2size(Class<?> type) { - return type2size(basicType(type)); - } - - /** The given stackMove is the number of slots pushed. - * It might be negative. Scale it (multiply) by the - * VM's notion of how an address changes with a push, - * to get the raw SP change for stackMove. - * Then shift and mask it into the correct field. - */ - private static long insertStackMove(int stackMove) { - // following variable must be long to avoid sign extension after '<<' - long spChange = stackMove * MethodHandleNatives.JVM_STACK_MOVE_UNIT; - return (spChange & CONV_STACK_MOVE_MASK) << CONV_STACK_MOVE_SHIFT; - } - - /** Construct an adapter conversion descriptor for a single-argument conversion. */ - private static long makeConv(int convOp, int argnum, int src, int dest) { - assert(src == (src & 0xF)); - assert(dest == (dest & 0xF)); - assert(convOp >= OP_CHECK_CAST && convOp <= OP_PRIM_TO_REF); - int stackMove = type2size(dest) - type2size(src); - return ((long) argnum << 32 | - (long) convOp << CONV_OP_SHIFT | - (int) src << CONV_SRC_TYPE_SHIFT | - (int) dest << CONV_DEST_TYPE_SHIFT | - insertStackMove(stackMove) - ); - } - private static long makeConv(int convOp, int argnum, int stackMove) { - assert(convOp >= OP_DUP_ARGS && convOp <= OP_SPREAD_ARGS); - byte src = 0, dest = 0; - if (convOp >= OP_COLLECT_ARGS && convOp <= OP_SPREAD_ARGS) - src = dest = T_OBJECT; - return ((long) argnum << 32 | - (long) convOp << CONV_OP_SHIFT | - (int) src << CONV_SRC_TYPE_SHIFT | - (int) dest << CONV_DEST_TYPE_SHIFT | - insertStackMove(stackMove) - ); - } - private static long makeSwapConv(int convOp, int srcArg, byte type, int destSlot) { - assert(convOp >= OP_SWAP_ARGS && convOp <= OP_ROT_ARGS); - return ((long) srcArg << 32 | - (long) convOp << CONV_OP_SHIFT | - (int) type << CONV_SRC_TYPE_SHIFT | - (int) type << CONV_DEST_TYPE_SHIFT | - (int) destSlot << CONV_VMINFO_SHIFT - ); - } - private static long makeConv(int convOp) { - assert(convOp == OP_RETYPE_ONLY || convOp == OP_RETYPE_RAW); - return ((long)-1 << 32) | (convOp << CONV_OP_SHIFT); // stackMove, src, dst all zero - } - private static int convCode(long conv) { - return (int)conv; - } - private static int convArgPos(long conv) { - return (int)(conv >>> 32); - } - private static boolean convOpSupported(int convOp) { - assert(convOp >= 0 && convOp <= CONV_OP_LIMIT); - return ((1<<convOp) & MethodHandleNatives.CONV_OP_IMPLEMENTED_MASK) != 0; - } - - /** One of OP_RETYPE_ONLY, etc. */ - int conversionOp() { return (conversion & CONV_OP_MASK) >> CONV_OP_SHIFT; } - - /* Return one plus the position of the first non-trivial difference - * between the given types. This is not a symmetric operation; - * we are considering adapting the targetType to adapterType. - * Trivial differences are those which could be ignored by the JVM - * without subverting the verifier. Otherwise, adaptable differences - * are ones for which we could create an adapter to make the type change. - * Return zero if there are no differences (other than trivial ones). - * Return 1+N if N is the only adaptable argument difference. - * Return the -2-N where N is the first of several adaptable - * argument differences. - * Return -1 if there there are differences which are not adaptable. - */ - private static int diffTypes(MethodType adapterType, - MethodType targetType, - boolean raw) { - int diff; - diff = diffReturnTypes(adapterType, targetType, raw); - if (diff != 0) return diff; - int nargs = adapterType.parameterCount(); - if (nargs != targetType.parameterCount()) - return -1; - diff = diffParamTypes(adapterType, 0, targetType, 0, nargs, raw); - //System.out.println("diff "+adapterType); - //System.out.println(" "+diff+" "+targetType); - return diff; - } - private static int diffReturnTypes(MethodType adapterType, - MethodType targetType, - boolean raw) { - Class<?> src = targetType.returnType(); - Class<?> dst = adapterType.returnType(); - if ((!raw - ? VerifyType.canPassUnchecked(src, dst) - : VerifyType.canPassRaw(src, dst) - ) > 0) - return 0; // no significant difference - if (raw && !src.isPrimitive() && !dst.isPrimitive()) - return 0; // can force a reference return (very carefully!) - //if (false) return 1; // never adaptable! - return -1; // some significant difference - } - private static int diffParamTypes(MethodType adapterType, int astart, - MethodType targetType, int tstart, - int nargs, boolean raw) { - assert(nargs >= 0); - int res = 0; - for (int i = 0; i < nargs; i++) { - Class<?> src = adapterType.parameterType(astart+i); - Class<?> dest = targetType.parameterType(tstart+i); - if ((!raw - ? VerifyType.canPassUnchecked(src, dest) - : VerifyType.canPassRaw(src, dest) - ) <= 0) { - // found a difference; is it the only one so far? - if (res != 0) - return -1-res; // return -2-i for prev. i - res = 1+i; - } - } - return res; - } - - /** Can a retyping adapter (alone) validly convert the target to newType? */ - static boolean canRetypeOnly(MethodType newType, MethodType targetType) { - return canRetype(newType, targetType, false); - } - /** Can a retyping adapter (alone) convert the target to newType? - * It is allowed to widen subword types and void to int, to make bitwise - * conversions between float/int and double/long, and to perform unchecked - * reference conversions on return. This last feature requires that the - * caller be trusted, and perform explicit cast conversions on return values. - */ - static boolean canRetypeRaw(MethodType newType, MethodType targetType) { - return canRetype(newType, targetType, true); - } - static boolean canRetype(MethodType newType, MethodType targetType, boolean raw) { - if (!convOpSupported(raw ? OP_RETYPE_RAW : OP_RETYPE_ONLY)) return false; - int diff = diffTypes(newType, targetType, raw); - // %%% This assert is too strong. Factor diff into VerifyType and reconcile. - assert(raw || (diff == 0) == VerifyType.isNullConversion(newType, targetType)); - return diff == 0; - } - - /** Factory method: Performs no conversions; simply retypes the adapter. - * Allows unchecked argument conversions pairwise, if they are safe. - * Returns null if not possible. - */ - static MethodHandle makeRetypeOnly(MethodType newType, MethodHandle target) { - return makeRetype(newType, target, false); - } - static MethodHandle makeRetypeRaw(MethodType newType, MethodHandle target) { - return makeRetype(newType, target, true); - } - static MethodHandle makeRetype(MethodType newType, MethodHandle target, boolean raw) { - MethodType oldType = target.type(); - if (oldType == newType) return target; - if (!canRetype(newType, oldType, raw)) - return null; - // TO DO: clone the target guy, whatever he is, with new type. - return new AdapterMethodHandle(target, newType, makeConv(raw ? OP_RETYPE_RAW : OP_RETYPE_ONLY)); - } - - static MethodHandle makeVarargsCollector(MethodHandle target, Class<?> arrayType) { - return new AsVarargsCollector(target, arrayType); - } - - static class AsVarargsCollector extends AdapterMethodHandle { - final MethodHandle target; - final Class<?> arrayType; - MethodHandle cache; - - AsVarargsCollector(MethodHandle target, Class<?> arrayType) { - super(target, target.type(), makeConv(OP_RETYPE_ONLY)); - this.target = target; - this.arrayType = arrayType; - this.cache = target.asCollector(arrayType, 0); - } - - @Override - public boolean isVarargsCollector() { - return true; - } - - @Override - public MethodHandle asType(MethodType newType) { - MethodType type = this.type(); - int collectArg = type.parameterCount() - 1; - int newArity = newType.parameterCount(); - if (newArity == collectArg+1 && - type.parameterType(collectArg).isAssignableFrom(newType.parameterType(collectArg))) { - // if arity and trailing parameter are compatible, do normal thing - return super.asType(newType); - } - // check cache - if (cache.type().parameterCount() == newArity) - return cache.asType(newType); - // build and cache a collector - int arrayLength = newArity - collectArg; - MethodHandle collector; - try { - collector = target.asCollector(arrayType, arrayLength); - } catch (IllegalArgumentException ex) { - throw new WrongMethodTypeException("cannot build collector"); - } - cache = collector; - return collector.asType(newType); - } - - @Override - public MethodHandle asVarargsCollector(Class<?> arrayType) { - MethodType type = this.type(); - if (type.parameterType(type.parameterCount()-1) == arrayType) - return this; - return super.asVarargsCollector(arrayType); - } - } - - /** Can a checkcast adapter validly convert the target to newType? - * The JVM supports all kind of reference casts, even silly ones. - */ - static boolean canCheckCast(MethodType newType, MethodType targetType, - int arg, Class<?> castType) { - if (!convOpSupported(OP_CHECK_CAST)) return false; - Class<?> src = newType.parameterType(arg); - Class<?> dst = targetType.parameterType(arg); - if (!canCheckCast(src, castType) - || !VerifyType.isNullConversion(castType, dst)) - return false; - int diff = diffTypes(newType, targetType, false); - return (diff == arg+1); // arg is sole non-trivial diff - } - /** Can an primitive conversion adapter validly convert src to dst? */ - static boolean canCheckCast(Class<?> src, Class<?> dst) { - return (!src.isPrimitive() && !dst.isPrimitive()); - } - - /** Factory method: Forces a cast at the given argument. - * The castType is the target of the cast, and can be any type - * with a null conversion to the corresponding target parameter. - * Return null if this cannot be done. - */ - static MethodHandle makeCheckCast(MethodType newType, MethodHandle target, - int arg, Class<?> castType) { - if (!canCheckCast(newType, target.type(), arg, castType)) - return null; - long conv = makeConv(OP_CHECK_CAST, arg, T_OBJECT, T_OBJECT); - return new AdapterMethodHandle(target, newType, conv, castType); - } - - /** Can an primitive conversion adapter validly convert the target to newType? - * The JVM currently supports all conversions except those between - * floating and integral types. - */ - static boolean canPrimCast(MethodType newType, MethodType targetType, - int arg, Class<?> convType) { - if (!convOpSupported(OP_PRIM_TO_PRIM)) return false; - Class<?> src = newType.parameterType(arg); - Class<?> dst = targetType.parameterType(arg); - if (!canPrimCast(src, convType) - || !VerifyType.isNullConversion(convType, dst)) - return false; - int diff = diffTypes(newType, targetType, false); - return (diff == arg+1); // arg is sole non-trivial diff - } - /** Can an primitive conversion adapter validly convert src to dst? */ - static boolean canPrimCast(Class<?> src, Class<?> dst) { - if (src == dst || !src.isPrimitive() || !dst.isPrimitive()) { - return false; - } else if (Wrapper.forPrimitiveType(dst).isFloating()) { - // both must be floating types - return Wrapper.forPrimitiveType(src).isFloating(); - } else { - // both are integral, and all combinations work fine - assert(Wrapper.forPrimitiveType(src).isIntegral() && - Wrapper.forPrimitiveType(dst).isIntegral()); - return true; - } - } - - /** Factory method: Truncate the given argument with zero or sign extension, - * and/or convert between single and doubleword versions of integer or float. - * The convType is the target of the conversion, and can be any type - * with a null conversion to the corresponding target parameter. - * Return null if this cannot be done. - */ - static MethodHandle makePrimCast(MethodType newType, MethodHandle target, - int arg, Class<?> convType) { - MethodType oldType = target.type(); - if (!canPrimCast(newType, oldType, arg, convType)) - return null; - Class<?> src = newType.parameterType(arg); - long conv = makeConv(OP_PRIM_TO_PRIM, arg, basicType(src), basicType(convType)); - return new AdapterMethodHandle(target, newType, conv); - } - - /** Can an unboxing conversion validly convert src to dst? - * The JVM currently supports all kinds of casting and unboxing. - * The convType is the unboxed type; it can be either a primitive or wrapper. - */ - static boolean canUnboxArgument(MethodType newType, MethodType targetType, - int arg, Class<?> convType) { - if (!convOpSupported(OP_REF_TO_PRIM)) return false; - Class<?> src = newType.parameterType(arg); - Class<?> dst = targetType.parameterType(arg); - Class<?> boxType = Wrapper.asWrapperType(convType); - convType = Wrapper.asPrimitiveType(convType); - if (!canCheckCast(src, boxType) - || boxType == convType - || !VerifyType.isNullConversion(convType, dst)) - return false; - int diff = diffTypes(newType, targetType, false); - return (diff == arg+1); // arg is sole non-trivial diff - } - /** Can an primitive unboxing adapter validly convert src to dst? */ - static boolean canUnboxArgument(Class<?> src, Class<?> dst) { - return (!src.isPrimitive() && Wrapper.asPrimitiveType(dst).isPrimitive()); - } - - /** Factory method: Unbox the given argument. - * Return null if this cannot be done. - */ - static MethodHandle makeUnboxArgument(MethodType newType, MethodHandle target, - int arg, Class<?> convType) { - MethodType oldType = target.type(); - Class<?> src = newType.parameterType(arg); - Class<?> dst = oldType.parameterType(arg); - Class<?> boxType = Wrapper.asWrapperType(convType); - Class<?> primType = Wrapper.asPrimitiveType(convType); - if (!canUnboxArgument(newType, oldType, arg, convType)) - return null; - MethodType castDone = newType; - if (!VerifyType.isNullConversion(src, boxType)) - castDone = newType.changeParameterType(arg, boxType); - long conv = makeConv(OP_REF_TO_PRIM, arg, T_OBJECT, basicType(primType)); - MethodHandle adapter = new AdapterMethodHandle(target, castDone, conv, boxType); - if (castDone == newType) - return adapter; - return makeCheckCast(newType, adapter, arg, boxType); - } - - /** Can an primitive boxing adapter validly convert src to dst? */ - static boolean canBoxArgument(Class<?> src, Class<?> dst) { - if (!convOpSupported(OP_PRIM_TO_REF)) return false; - throw new UnsupportedOperationException("NYI"); - } - - /** Factory method: Unbox the given argument. - * Return null if this cannot be done. - */ - static MethodHandle makeBoxArgument(MethodType newType, MethodHandle target, - int arg, Class<?> convType) { - // this is difficult to do in the JVM because it must GC - return null; - } - - /** Can an adapter simply drop arguments to convert the target to newType? */ - static boolean canDropArguments(MethodType newType, MethodType targetType, - int dropArgPos, int dropArgCount) { - if (dropArgCount == 0) - return canRetypeOnly(newType, targetType); - if (!convOpSupported(OP_DROP_ARGS)) return false; - if (diffReturnTypes(newType, targetType, false) != 0) - return false; - int nptypes = newType.parameterCount(); - // parameter types must be the same up to the drop point - if (dropArgPos != 0 && diffParamTypes(newType, 0, targetType, 0, dropArgPos, false) != 0) - return false; - int afterPos = dropArgPos + dropArgCount; - int afterCount = nptypes - afterPos; - if (dropArgPos < 0 || dropArgPos >= nptypes || - dropArgCount < 1 || afterPos > nptypes || - targetType.parameterCount() != nptypes - dropArgCount) - return false; - // parameter types after the drop point must also be the same - if (afterCount != 0 && diffParamTypes(newType, afterPos, targetType, dropArgPos, afterCount, false) != 0) - return false; - return true; - } - - /** Factory method: Drop selected arguments. - * Allow unchecked retyping of remaining arguments, pairwise. - * Return null if this is not possible. - */ - static MethodHandle makeDropArguments(MethodType newType, MethodHandle target, - int dropArgPos, int dropArgCount) { - if (dropArgCount == 0) - return makeRetypeOnly(newType, target); - if (!canDropArguments(newType, target.type(), dropArgPos, dropArgCount)) - return null; - // in arglist: [0: ...keep1 | dpos: drop... | dpos+dcount: keep2... ] - // out arglist: [0: ...keep1 | dpos: keep2... ] - int keep2InPos = dropArgPos + dropArgCount; - int dropSlot = newType.parameterSlotDepth(keep2InPos); - int keep1InSlot = newType.parameterSlotDepth(dropArgPos); - int slotCount = keep1InSlot - dropSlot; - assert(slotCount >= dropArgCount); - assert(target.type().parameterSlotCount() + slotCount == newType.parameterSlotCount()); - long conv = makeConv(OP_DROP_ARGS, dropArgPos + dropArgCount - 1, -slotCount); - return new AdapterMethodHandle(target, newType, conv); - } - - /** Can an adapter duplicate an argument to convert the target to newType? */ - static boolean canDupArguments(MethodType newType, MethodType targetType, - int dupArgPos, int dupArgCount) { - if (!convOpSupported(OP_DUP_ARGS)) return false; - if (diffReturnTypes(newType, targetType, false) != 0) - return false; - int nptypes = newType.parameterCount(); - if (dupArgCount < 0 || dupArgPos + dupArgCount > nptypes) - return false; - if (targetType.parameterCount() != nptypes + dupArgCount) - return false; - // parameter types must be the same up to the duplicated arguments - if (diffParamTypes(newType, 0, targetType, 0, nptypes, false) != 0) - return false; - // duplicated types must be, well, duplicates - if (diffParamTypes(newType, dupArgPos, targetType, nptypes, dupArgCount, false) != 0) - return false; - return true; - } - - /** Factory method: Duplicate the selected argument. - * Return null if this is not possible. - */ - static MethodHandle makeDupArguments(MethodType newType, MethodHandle target, - int dupArgPos, int dupArgCount) { - if (!canDupArguments(newType, target.type(), dupArgPos, dupArgCount)) - return null; - if (dupArgCount == 0) - return target; - // in arglist: [0: ...keep1 | dpos: dup... | dpos+dcount: keep2... ] - // out arglist: [0: ...keep1 | dpos: dup... | dpos+dcount: keep2... | dup... ] - int keep2InPos = dupArgPos + dupArgCount; - int dupSlot = newType.parameterSlotDepth(keep2InPos); - int keep1InSlot = newType.parameterSlotDepth(dupArgPos); - int slotCount = keep1InSlot - dupSlot; - assert(target.type().parameterSlotCount() - slotCount == newType.parameterSlotCount()); - long conv = makeConv(OP_DUP_ARGS, dupArgPos + dupArgCount - 1, slotCount); - return new AdapterMethodHandle(target, newType, conv); - } - - /** Can an adapter swap two arguments to convert the target to newType? */ - static boolean canSwapArguments(MethodType newType, MethodType targetType, - int swapArg1, int swapArg2) { - if (!convOpSupported(OP_SWAP_ARGS)) return false; - if (diffReturnTypes(newType, targetType, false) != 0) - return false; - if (swapArg1 >= swapArg2) return false; // caller resp - int nptypes = newType.parameterCount(); - if (targetType.parameterCount() != nptypes) - return false; - if (swapArg1 < 0 || swapArg2 >= nptypes) - return false; - if (diffParamTypes(newType, 0, targetType, 0, swapArg1, false) != 0) - return false; - if (diffParamTypes(newType, swapArg1, targetType, swapArg2, 1, false) != 0) - return false; - if (diffParamTypes(newType, swapArg1+1, targetType, swapArg1+1, swapArg2-swapArg1-1, false) != 0) - return false; - if (diffParamTypes(newType, swapArg2, targetType, swapArg1, 1, false) != 0) - return false; - if (diffParamTypes(newType, swapArg2+1, targetType, swapArg2+1, nptypes-swapArg2-1, false) != 0) - return false; - return true; - } - - /** Factory method: Swap the selected arguments. - * Return null if this is not possible. - */ - static MethodHandle makeSwapArguments(MethodType newType, MethodHandle target, - int swapArg1, int swapArg2) { - if (swapArg1 == swapArg2) - return target; - if (swapArg1 > swapArg2) { int t = swapArg1; swapArg1 = swapArg2; swapArg2 = t; } - if (!canSwapArguments(newType, target.type(), swapArg1, swapArg2)) - return null; - Class<?> swapType = newType.parameterType(swapArg1); - // in arglist: [0: ...keep1 | pos1: a1 | pos1+1: keep2... | pos2: a2 | pos2+1: keep3... ] - // out arglist: [0: ...keep1 | pos1: a2 | pos1+1: keep2... | pos2: a1 | pos2+1: keep3... ] - int swapSlot2 = newType.parameterSlotDepth(swapArg2 + 1); - long conv = makeSwapConv(OP_SWAP_ARGS, swapArg1, basicType(swapType), swapSlot2); - return new AdapterMethodHandle(target, newType, conv); - } - - static int positiveRotation(int argCount, int rotateBy) { - assert(argCount > 0); - if (rotateBy >= 0) { - if (rotateBy < argCount) - return rotateBy; - return rotateBy % argCount; - } else if (rotateBy >= -argCount) { - return rotateBy + argCount; - } else { - return (-1-((-1-rotateBy) % argCount)) + argCount; - } - } - - final static int MAX_ARG_ROTATION = 1; - - /** Can an adapter rotate arguments to convert the target to newType? */ - static boolean canRotateArguments(MethodType newType, MethodType targetType, - int firstArg, int argCount, int rotateBy) { - if (!convOpSupported(OP_ROT_ARGS)) return false; - if (argCount <= 2) return false; // must be a swap, not a rotate - rotateBy = positiveRotation(argCount, rotateBy); - if (rotateBy == 0) return false; // no rotation - if (rotateBy > MAX_ARG_ROTATION && rotateBy < argCount - MAX_ARG_ROTATION) - return false; // too many argument positions - // Rotate incoming args right N to the out args, N in 1..(argCouunt-1). - if (diffReturnTypes(newType, targetType, false) != 0) - return false; - int nptypes = newType.parameterCount(); - if (targetType.parameterCount() != nptypes) - return false; - if (firstArg < 0 || firstArg >= nptypes) return false; - int argLimit = firstArg + argCount; - if (argLimit > nptypes) return false; - if (diffParamTypes(newType, 0, targetType, 0, firstArg, false) != 0) - return false; - int newChunk1 = argCount - rotateBy, newChunk2 = rotateBy; - // swap new chunk1 with target chunk2 - if (diffParamTypes(newType, firstArg, targetType, argLimit-newChunk1, newChunk1, false) != 0) - return false; - // swap new chunk2 with target chunk1 - if (diffParamTypes(newType, firstArg+newChunk1, targetType, firstArg, newChunk2, false) != 0) - return false; - return true; - } - - /** Factory method: Rotate the selected argument range. - * Return null if this is not possible. - */ - static MethodHandle makeRotateArguments(MethodType newType, MethodHandle target, - int firstArg, int argCount, int rotateBy) { - rotateBy = positiveRotation(argCount, rotateBy); - if (!canRotateArguments(newType, target.type(), firstArg, argCount, rotateBy)) - return null; - // Decide whether it should be done as a right or left rotation, - // on the JVM stack. Return the number of stack slots to rotate by, - // positive if right, negative if left. - int limit = firstArg + argCount; - int depth0 = newType.parameterSlotDepth(firstArg); - int depth1 = newType.parameterSlotDepth(limit-rotateBy); - int depth2 = newType.parameterSlotDepth(limit); - int chunk1Slots = depth0 - depth1; assert(chunk1Slots > 0); - int chunk2Slots = depth1 - depth2; assert(chunk2Slots > 0); - // From here on out, it assumes a single-argument shift. - assert(MAX_ARG_ROTATION == 1); - int srcArg, dstArg; - byte basicType; - if (chunk2Slots <= chunk1Slots) { - // Rotate right/down N (rotateBy = +N, N small, c2 small): - // in arglist: [0: ...keep1 | arg1: c1... | limit-N: c2 | limit: keep2... ] - // out arglist: [0: ...keep1 | arg1: c2 | arg1+N: c1... | limit: keep2... ] - srcArg = limit-1; - dstArg = firstArg; - basicType = basicType(newType.parameterType(srcArg)); - assert(chunk2Slots == type2size(basicType)); - } else { - // Rotate left/up N (rotateBy = -N, N small, c1 small): - // in arglist: [0: ...keep1 | arg1: c1 | arg1+N: c2... | limit: keep2... ] - // out arglist: [0: ...keep1 | arg1: c2 ... | limit-N: c1 | limit: keep2... ] - srcArg = firstArg; - dstArg = limit-1; - basicType = basicType(newType.parameterType(srcArg)); - assert(chunk1Slots == type2size(basicType)); - } - int dstSlot = newType.parameterSlotDepth(dstArg + 1); - long conv = makeSwapConv(OP_ROT_ARGS, srcArg, basicType, dstSlot); - return new AdapterMethodHandle(target, newType, conv); - } - - /** Can an adapter spread an argument to convert the target to newType? */ - static boolean canSpreadArguments(MethodType newType, MethodType targetType, - Class<?> spreadArgType, int spreadArgPos, int spreadArgCount) { - if (!convOpSupported(OP_SPREAD_ARGS)) return false; - if (diffReturnTypes(newType, targetType, false) != 0) - return false; - int nptypes = newType.parameterCount(); - // parameter types must be the same up to the spread point - if (spreadArgPos != 0 && diffParamTypes(newType, 0, targetType, 0, spreadArgPos, false) != 0) - return false; - int afterPos = spreadArgPos + spreadArgCount; - int afterCount = nptypes - (spreadArgPos + 1); - if (spreadArgPos < 0 || spreadArgPos >= nptypes || - spreadArgCount < 0 || - targetType.parameterCount() != afterPos + afterCount) - return false; - // parameter types after the spread point must also be the same - if (afterCount != 0 && diffParamTypes(newType, spreadArgPos+1, targetType, afterPos, afterCount, false) != 0) - return false; - // match the array element type to the spread arg types - Class<?> rawSpreadArgType = newType.parameterType(spreadArgPos); - if (rawSpreadArgType != spreadArgType && !canCheckCast(rawSpreadArgType, spreadArgType)) - return false; - for (int i = 0; i < spreadArgCount; i++) { - Class<?> src = VerifyType.spreadArgElementType(spreadArgType, i); - Class<?> dst = targetType.parameterType(spreadArgPos + i); - if (src == null || !VerifyType.isNullConversion(src, dst)) - return false; - } - return true; - } - - - /** Factory method: Spread selected argument. */ - static MethodHandle makeSpreadArguments(MethodType newType, MethodHandle target, - Class<?> spreadArgType, int spreadArgPos, int spreadArgCount) { - MethodType targetType = target.type(); - if (!canSpreadArguments(newType, targetType, spreadArgType, spreadArgPos, spreadArgCount)) - return null; - // in arglist: [0: ...keep1 | spos: spreadArg | spos+1: keep2... ] - // out arglist: [0: ...keep1 | spos: spread... | spos+scount: keep2... ] - int keep2OutPos = spreadArgPos + spreadArgCount; - int spreadSlot = targetType.parameterSlotDepth(keep2OutPos); - int keep1OutSlot = targetType.parameterSlotDepth(spreadArgPos); - int slotCount = keep1OutSlot - spreadSlot; - assert(spreadSlot == newType.parameterSlotDepth(spreadArgPos+1)); - assert(slotCount >= spreadArgCount); - long conv = makeConv(OP_SPREAD_ARGS, spreadArgPos, slotCount-1); - MethodHandle res = new AdapterMethodHandle(target, newType, conv, spreadArgType); - assert(res.type().parameterType(spreadArgPos) == spreadArgType); - return res; - } - - // TO DO: makeCollectArguments, makeFlyby, makeRicochet - - @Override - public String toString() { - return getNameString(nonAdapter((MethodHandle)vmtarget), this); - } - - private static MethodHandle nonAdapter(MethodHandle mh) { - while (mh instanceof AdapterMethodHandle) { - mh = (MethodHandle) mh.vmtarget; - } - return mh; - } -}
--- a/src/share/classes/java/dyn/BoundMethodHandle.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,188 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import sun.dyn.util.VerifyType; -import sun.dyn.util.Wrapper; -import static java.dyn.MethodHandleStatics.*; - -/** - * The flavor of method handle which emulates an invoke instruction - * on a predetermined argument. The JVM dispatches to the correct method - * when the handle is created, not when it is invoked. - * @author jrose - */ -class BoundMethodHandle extends MethodHandle { - //MethodHandle vmtarget; // next BMH or final DMH or methodOop - private final Object argument; // argument to insert - private final int vmargslot; // position at which it is inserted - - // Constructors in this class *must* be package scoped or private. - - /** Bind a direct MH to its receiver (or first ref. argument). - * The JVM will pre-dispatch the MH if it is not already static. - */ - /*non-public*/ BoundMethodHandle(DirectMethodHandle mh, Object argument) { - super(mh.type().dropParameterTypes(0, 1)); - // check the type now, once for all: - this.argument = checkReferenceArgument(argument, mh, 0); - this.vmargslot = this.type().parameterSlotCount(); - initTarget(mh, 0); - } - - /** Insert an argument into an arbitrary method handle. - * If argnum is zero, inserts the first argument, etc. - * The argument type must be a reference. - */ - /*non-public*/ BoundMethodHandle(MethodHandle mh, Object argument, int argnum) { - this(mh.type().dropParameterTypes(argnum, argnum+1), - mh, argument, argnum); - } - - /** Insert an argument into an arbitrary method handle. - * If argnum is zero, inserts the first argument, etc. - */ - /*non-public*/ BoundMethodHandle(MethodType type, MethodHandle mh, Object argument, int argnum) { - super(type); - if (mh.type().parameterType(argnum).isPrimitive()) - this.argument = bindPrimitiveArgument(argument, mh, argnum); - else { - this.argument = checkReferenceArgument(argument, mh, argnum); - } - this.vmargslot = type.parameterSlotDepth(argnum); - initTarget(mh, argnum); - } - - private void initTarget(MethodHandle mh, int argnum) { - //this.vmtarget = mh; // maybe updated by JVM - MethodHandleNatives.init(this, mh, argnum); - } - - /** For the AdapterMethodHandle subclass. - */ - /*non-public*/ BoundMethodHandle(MethodType type, Object argument, int vmargslot) { - super(type); - this.argument = argument; - this.vmargslot = vmargslot; - assert(this instanceof AdapterMethodHandle); - } - - /** Initialize the current object as a self-bound method handle, binding it - * as the first argument of the method handle {@code entryPoint}. - * The invocation type of the resulting method handle will be the - * same as {@code entryPoint}, except that the first argument - * type will be dropped. - */ - /*non-public*/ BoundMethodHandle(MethodHandle entryPoint) { - super(entryPoint.type().dropParameterTypes(0, 1)); - this.argument = this; // kludge; get rid of - this.vmargslot = this.type().parameterSlotDepth(0); - initTarget(entryPoint, 0); - } - - /** Make sure the given {@code argument} can be used as {@code argnum}-th - * parameter of the given method handle {@code mh}, which must be a reference. - * <p> - * If this fails, throw a suitable {@code WrongMethodTypeException}, - * which will prevent the creation of an illegally typed bound - * method handle. - */ - final static Object checkReferenceArgument(Object argument, MethodHandle mh, int argnum) { - Class<?> ptype = mh.type().parameterType(argnum); - if (ptype.isPrimitive()) { - // fail - } else if (argument == null) { - return null; - } else if (VerifyType.isNullReferenceConversion(argument.getClass(), ptype)) { - return argument; - } - throw badBoundArgumentException(argument, mh, argnum); - } - - /** Make sure the given {@code argument} can be used as {@code argnum}-th - * parameter of the given method handle {@code mh}, which must be a primitive. - * <p> - * If this fails, throw a suitable {@code WrongMethodTypeException}, - * which will prevent the creation of an illegally typed bound - * method handle. - */ - final static Object bindPrimitiveArgument(Object argument, MethodHandle mh, int argnum) { - Class<?> ptype = mh.type().parameterType(argnum); - Wrapper wrap = Wrapper.forPrimitiveType(ptype); - Object zero = wrap.zero(); - if (zero == null) { - // fail - } else if (argument == null) { - if (ptype != int.class && wrap.isSubwordOrInt()) - return Integer.valueOf(0); - else - return zero; - } else if (VerifyType.isNullReferenceConversion(argument.getClass(), zero.getClass())) { - if (ptype != int.class && wrap.isSubwordOrInt()) - return Wrapper.INT.wrap(argument); - else - return argument; - } - throw badBoundArgumentException(argument, mh, argnum); - } - - final static RuntimeException badBoundArgumentException(Object argument, MethodHandle mh, int argnum) { - String atype = (argument == null) ? "null" : argument.getClass().toString(); - return new WrongMethodTypeException("cannot bind "+atype+" argument to parameter #"+argnum+" of "+mh.type()); - } - - @Override - public String toString() { - return addTypeString(baseName(), this); - } - - /** Component of toString() before the type string. */ - protected String baseName() { - MethodHandle mh = this; - while (mh instanceof BoundMethodHandle) { - Object info = MethodHandleNatives.getTargetInfo(mh); - if (info instanceof MethodHandle) { - mh = (MethodHandle) info; - } else { - String name = null; - if (info instanceof MemberName) - name = ((MemberName)info).getName(); - if (name != null) - return name; - else - return noParens(super.toString()); // "invoke", probably - } - assert(mh != this); - } - return noParens(mh.toString()); - } - - private static String noParens(String str) { - int paren = str.indexOf('('); - if (paren >= 0) str = str.substring(0, paren); - return str; - } -}
--- a/src/share/classes/java/dyn/CallSite.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import sun.dyn.empty.Empty; -import sun.misc.Unsafe; -import static java.dyn.MethodHandleStatics.*; -import static java.dyn.MethodHandles.Lookup.IMPL_LOOKUP; - -/** - * A {@code CallSite} is a holder for a variable {@link MethodHandle}, - * which is called its {@code target}. - * An {@code invokedynamic} instruction linked to a {@code CallSite} delegates - * all calls to the site's current target. - * A {@code CallSite} may be associated with several {@code invokedynamic} - * instructions, or it may be "free floating", associated with none. - * In any case, it may be invoked through an associated method handle - * called its {@linkplain #dynamicInvoker dynamic invoker}. - * <p> - * {@code CallSite} is an abstract class which does not allow - * direct subclassing by users. It has three immediate, - * concrete subclasses that may be either instantiated or subclassed. - * <ul> - * <li>If a mutable target is not required, an {@code invokedynamic} instruction - * may be permanently bound by means of a {@linkplain ConstantCallSite constant call site}. - * <li>If a mutable target is required which has volatile variable semantics, - * because updates to the target must be immediately and reliably witnessed by other threads, - * a {@linkplain VolatileCallSite volatile call site} may be used. - * <li>Otherwise, if a mutable target is required, - * a {@linkplain MutableCallSite mutable call site} may be used. - * </ul> - * <p> - * A non-constant call site may be <em>relinked</em> by changing its target. - * The new target must have the same {@linkplain MethodHandle#type() type} - * as the previous target. - * Thus, though a call site can be relinked to a series of - * successive targets, it cannot change its type. - * <p> - * Here is a sample use of call sites and bootstrap methods which links every - * dynamic call site to print its arguments: -<blockquote><pre><!-- see indy-demo/src/PrintArgsDemo.java --> -static void test() throws Throwable { - // THE FOLLOWING LINE IS PSEUDOCODE FOR A JVM INSTRUCTION - InvokeDynamic[#bootstrapDynamic].baz("baz arg", 2, 3.14); -} -private static void printArgs(Object... args) { - System.out.println(java.util.Arrays.deepToString(args)); -} -private static final MethodHandle printArgs; -static { - MethodHandles.Lookup lookup = MethodHandles.lookup(); - Class thisClass = lookup.lookupClass(); // (who am I?) - printArgs = lookup.findStatic(thisClass, - "printArgs", MethodType.methodType(void.class, Object[].class)); -} -private static CallSite bootstrapDynamic(MethodHandles.Lookup caller, String name, MethodType type) { - // ignore caller and name, but match the type: - return new ConstantCallSite(printArgs.asType(type)); -} -</pre></blockquote> - * @author John Rose, JSR 292 EG - */ -abstract -public class CallSite { - static { MethodHandleImpl.initStatics(); } - - // Fields used only by the JVM. Do not use or change. - private MemberName vmmethod; // supplied by the JVM (ref. to calling method) - private int vmindex; // supplied by the JVM (BCI within calling method) - - // The actual payload of this call site: - /*package-private*/ - MethodHandle target; - - // Remove this field for PFD and delete deprecated methods: - private MemberName calleeNameRemoveForPFD; - - /** - * Make a blank call site object with the given method type. - * An initial target method is supplied which will throw - * an {@link IllegalStateException} if called. - * <p> - * Before this {@code CallSite} object is returned from a bootstrap method, - * it is usually provided with a more useful target method, - * via a call to {@link CallSite#setTarget(MethodHandle) setTarget}. - * @throws NullPointerException if the proposed type is null - */ - /*package-private*/ - CallSite(MethodType type) { - target = type.invokers().uninitializedCallSite(); - } - - /** - * Make a blank call site object, possibly equipped with an initial target method handle. - * @param target the method handle which will be the initial target of the call site - * @throws NullPointerException if the proposed target is null - */ - /*package-private*/ - CallSite(MethodHandle target) { - target.type(); // null check - this.target = target; - } - - /** - * Returns the type of this call site's target. - * Although targets may change, any call site's type is permanent, and can never change to an unequal type. - * The {@code setTarget} method enforces this invariant by refusing any new target that does - * not have the previous target's type. - * @return the type of the current target, which is also the type of any future target - */ - public MethodType type() { - return target.type(); - } - - /** Called from JVM (or low-level Java code) after the BSM returns the newly created CallSite. - * The parameters are JVM-specific. - */ - void initializeFromJVM(String name, - MethodType type, - MemberName callerMethod, - int callerBCI) { - if (this.vmmethod != null) { - // FIXME - throw new InvokeDynamicBootstrapError("call site has already been linked to an invokedynamic instruction"); - } - if (!this.type().equals(type)) { - throw wrongTargetType(target, type); - } - this.vmindex = callerBCI; - this.vmmethod = callerMethod; - } - - /** - * Returns the target method of the call site, according to the - * behavior defined by this call site's specific class. - * The immediate subclasses of {@code CallSite} document the - * class-specific behaviors of this method. - * - * @return the current linkage state of the call site, its target method handle - * @see ConstantCallSite - * @see VolatileCallSite - * @see #setTarget - * @see ConstantCallSite#getTarget - * @see MutableCallSite#getTarget - * @see VolatileCallSite#getTarget - */ - public abstract MethodHandle getTarget(); - - /** - * Updates the target method of this call site, according to the - * behavior defined by this call site's specific class. - * The immediate subclasses of {@code CallSite} document the - * class-specific behaviors of this method. - * <p> - * The type of the new target must be {@linkplain MethodType#equals equal to} - * the type of the old target. - * - * @param newTarget the new target - * @throws NullPointerException if the proposed new target is null - * @throws WrongMethodTypeException if the proposed new target - * has a method type that differs from the previous target - * @see CallSite#getTarget - * @see ConstantCallSite#setTarget - * @see MutableCallSite#setTarget - * @see VolatileCallSite#setTarget - */ - public abstract void setTarget(MethodHandle newTarget); - - void checkTargetChange(MethodHandle oldTarget, MethodHandle newTarget) { - MethodType oldType = oldTarget.type(); - MethodType newType = newTarget.type(); // null check! - if (!newType.equals(oldType)) - throw wrongTargetType(newTarget, oldType); - } - - private static WrongMethodTypeException wrongTargetType(MethodHandle target, MethodType type) { - return new WrongMethodTypeException(String.valueOf(target)+" should be of type "+type); - } - - /** - * Produce a method handle equivalent to an invokedynamic instruction - * which has been linked to this call site. - * <p> - * This method is equivalent to the following code: - * <blockquote><pre> - * MethodHandle getTarget, invoker, result; - * getTarget = MethodHandles.publicLookup().bind(this, "getTarget", MethodType.methodType(MethodHandle.class)); - * invoker = MethodHandles.exactInvoker(this.type()); - * result = MethodHandles.foldArguments(invoker, getTarget) - * </pre></blockquote> - * - * @return a method handle which always invokes this call site's current target - */ - public abstract MethodHandle dynamicInvoker(); - - /*non-public*/ MethodHandle makeDynamicInvoker() { - MethodHandle getTarget = MethodHandleImpl.bindReceiver(GET_TARGET, this); - MethodHandle invoker = MethodHandles.exactInvoker(this.type()); - return MethodHandles.foldArguments(invoker, getTarget); - } - - private static final MethodHandle GET_TARGET; - static { - try { - GET_TARGET = IMPL_LOOKUP. - findVirtual(CallSite.class, "getTarget", MethodType.methodType(MethodHandle.class)); - } catch (ReflectiveOperationException ignore) { - throw new InternalError(); - } - } - - /** This guy is rolled into the default target if a MethodType is supplied to the constructor. */ - /*package-private*/ - static Empty uninitializedCallSite() { - throw new IllegalStateException("uninitialized call site"); - } - - // unsafe stuff: - private static final Unsafe unsafe = Unsafe.getUnsafe(); - private static final long TARGET_OFFSET; - - static { - try { - TARGET_OFFSET = unsafe.objectFieldOffset(CallSite.class.getDeclaredField("target")); - } catch (Exception ex) { throw new Error(ex); } - } - - /*package-private*/ - void setTargetNormal(MethodHandle newTarget) { - target = newTarget; - } - /*package-private*/ - MethodHandle getTargetVolatile() { - return (MethodHandle) unsafe.getObjectVolatile(this, TARGET_OFFSET); - } - /*package-private*/ - void setTargetVolatile(MethodHandle newTarget) { - unsafe.putObjectVolatile(this, TARGET_OFFSET, newTarget); - } - - // this implements the upcall from the JVM, MethodHandleNatives.makeDynamicCallSite: - static CallSite makeSite(MethodHandle bootstrapMethod, - // Callee information: - String name, MethodType type, - // Extra arguments for BSM, if any: - Object info, - // Caller information: - MemberName callerMethod, int callerBCI) { - Class<?> callerClass = callerMethod.getDeclaringClass(); - Object caller; - if (bootstrapMethod.type().parameterType(0) == Class.class && TRANSITIONAL_BEFORE_PFD) - caller = callerClass; // remove for PFD - else - caller = IMPL_LOOKUP.in(callerClass); - if (bootstrapMethod == null && TRANSITIONAL_BEFORE_PFD) { - // If there is no bootstrap method, throw IncompatibleClassChangeError. - // This is a valid generic error type for resolution (JLS 12.3.3). - throw new IncompatibleClassChangeError - ("Class "+callerClass.getName()+" has not declared a bootstrap method for invokedynamic"); - } - CallSite site; - try { - Object binding; - info = maybeReBox(info); - if (info == null) { - binding = bootstrapMethod.invokeGeneric(caller, name, type); - } else if (!info.getClass().isArray()) { - binding = bootstrapMethod.invokeGeneric(caller, name, type, info); - } else { - Object[] argv = (Object[]) info; - maybeReBoxElements(argv); - if (3 + argv.length > 255) - throw new InvokeDynamicBootstrapError("too many bootstrap method arguments"); - MethodType bsmType = bootstrapMethod.type(); - if (bsmType.parameterCount() == 4 && bsmType.parameterType(3) == Object[].class) - binding = bootstrapMethod.invokeGeneric(caller, name, type, argv); - else - binding = MethodHandles.spreadInvoker(bsmType, 3) - .invokeGeneric(bootstrapMethod, caller, name, type, argv); - } - //System.out.println("BSM for "+name+type+" => "+binding); - if (binding instanceof CallSite) { - site = (CallSite) binding; - } else if (binding instanceof MethodHandle && TRANSITIONAL_BEFORE_PFD) { - // Transitional! - MethodHandle target = (MethodHandle) binding; - site = new ConstantCallSite(target); - } else { - throw new ClassCastException("bootstrap method failed to produce a CallSite"); - } - if (TRANSITIONAL_BEFORE_PFD) - PRIVATE_INITIALIZE_CALL_SITE.invokeExact(site, name, type, - callerMethod, callerBCI); - assert(site.getTarget() != null); - assert(site.getTarget().type().equals(type)); - } catch (Throwable ex) { - InvokeDynamicBootstrapError bex; - if (ex instanceof InvokeDynamicBootstrapError) - bex = (InvokeDynamicBootstrapError) ex; - else - bex = new InvokeDynamicBootstrapError("call site initialization exception", ex); - throw bex; - } - return site; - } - - private static final boolean TRANSITIONAL_BEFORE_PFD = true; // FIXME: remove for PFD - // booby trap to force removal after package rename: - static { if (TRANSITIONAL_BEFORE_PFD) assert(CallSite.class.getName().startsWith("java.dyn.")); } - - private static Object maybeReBox(Object x) { - if (x instanceof Integer) { - int xi = (int) x; - if (xi == (byte) xi) - x = xi; // must rebox; see JLS 5.1.7 - } - return x; - } - private static void maybeReBoxElements(Object[] xa) { - for (int i = 0; i < xa.length; i++) { - xa[i] = maybeReBox(xa[i]); - } - } - - // This method is private in CallSite because it touches private fields in CallSite. - // These private fields (vmmethod, vmindex) are specific to the JVM. - private static final MethodHandle PRIVATE_INITIALIZE_CALL_SITE; - static { - try { - PRIVATE_INITIALIZE_CALL_SITE = - !TRANSITIONAL_BEFORE_PFD ? null : - IMPL_LOOKUP.findVirtual(CallSite.class, "initializeFromJVM", - MethodType.methodType(void.class, - String.class, MethodType.class, - MemberName.class, int.class)); - } catch (ReflectiveOperationException ex) { - throw uncaughtException(ex); - } - } -}
--- a/src/share/classes/java/dyn/ClassValue.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* - * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import java.util.WeakHashMap; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Lazily associate a computed value with (potentially) every type. - * For example, if a dynamic language needs to construct a message dispatch - * table for each class encountered at a message send call site, - * it can use a {@code ClassValue} to cache information needed to - * perform the message send quickly, for each class encountered. - * @author John Rose, JSR 292 EG - */ -public abstract class ClassValue<T> { - /** - * Compute the given class's derived value for this {@code ClassValue}. - * <p> - * This method will be invoked within the first thread that accesses - * the value with the {@link #get get} method. - * <p> - * Normally, this method is invoked at most once per class, - * but it may be invoked again if there has been a call to - * {@link #remove remove}. - * <p> - * If this method throws an exception, the corresponding call to {@code get} - * will terminate abnormally with that exception, and no class value will be recorded. - * - * @param type the type whose class value must be computed - * @return the newly computed value associated with this {@code ClassValue}, for the given class or interface - * @see #get - * @see #remove - */ - protected abstract T computeValue(Class<?> type); - - /** - * Returns the value for the given class. - * If no value has yet been computed, it is obtained by - * an invocation of the {@link #computeValue computeValue} method. - * <p> - * The actual installation of the value on the class - * is performed atomically. - * At that point, if several racing threads have - * computed values, one is chosen, and returned to - * all the racing threads. - * <p> - * The {@code type} parameter is typically a class, but it may be any type, - * such as an interface, a primitive type (like {@code int.class}), or {@code void.class}. - * <p> - * In the absence of {@code remove} calls, a class value has a simple - * state diagram: uninitialized and initialized. - * When {@code remove} calls are made, - * the rules for value observation are more complex. - * See the documentation for {@link #remove remove} for more information. - * - * @param type the type whose class value must be computed or retrieved - * @return the current value associated with this {@code ClassValue}, for the given class or interface - * @throws NullPointerException if the argument is null - * @see #remove - * @see #computeValue - */ - public T get(Class<?> type) { - ClassValueMap map = getMap(type); - if (map != null) { - Object x = map.get(this); - if (x != null) { - return (T) map.unmaskNull(x); - } - } - return setComputedValue(type); - } - - /** - * Removes the associated value for the given class. - * If this value is subsequently {@linkplain #get read} for the same class, - * its value will be reinitialized by invoking its {@link #computeValue computeValue} method. - * This may result in an additional invocation of the - * {@code computeValue computeValue} method for the given class. - * <p> - * In order to explain the interaction between {@code get} and {@code remove} calls, - * we must model the state transitions of a class value to take into account - * the alternation between uninitialized and initialized states. - * To do this, number these states sequentially from zero, and note that - * uninitialized (or removed) states are numbered with even numbers, - * while initialized (or re-initialized) states have odd numbers. - * <p> - * When a thread {@code T} removes a class value in state {@code 2N}, - * nothing happens, since the class value is already uninitialized. - * Otherwise, the state is advanced atomically to {@code 2N+1}. - * <p> - * When a thread {@code T} queries a class value in state {@code 2N}, - * the thread first attempts to initialize the class value to state {@code 2N+1} - * by invoking {@code computeValue} and installing the resulting value. - * <p> - * When {@code T} attempts to install the newly computed value, - * if the state is still at {@code 2N}, the class value will be initialized - * with the computed value, advancing it to state {@code 2N+1}. - * <p> - * Otherwise, whether the new state is even or odd, - * {@code T} will discard the newly computed value - * and retry the {@code get} operation. - * <p> - * Discarding and retrying is an important proviso, - * since otherwise {@code T} could potentially install - * a disastrously stale value. For example: - * <ul> - * <li>{@code T} calls {@code CV.get(C)} and sees state {@code 2N} - * <li>{@code T} quickly computes a time-dependent value {@code V0} and gets ready to install it - * <li>{@code T} is hit by an unlucky paging or scheduling event, and goes to sleep for a long time - * <li>...meanwhile, {@code T2} also calls {@code CV.get(C)} and sees state {@code 2N} - * <li>{@code T2} quickly computes a similar time-dependent value {@code V1} and installs it on {@code CV.get(C)} - * <li>{@code T2} (or a third thread) then calls {@code CV.remove(C)}, undoing {@code T2}'s work - * <li> the previous actions of {@code T2} are repeated several times - * <li> also, the relevant computed values change over time: {@code V1}, {@code V2}, ... - * <li>...meanwhile, {@code T} wakes up and attempts to install {@code V0}; <em>this must fail</em> - * </ul> - * We can assume in the above scenario that {@code CV.computeValue} uses locks to properly - * observe the time-dependent states as it computes {@code V1}, etc. - * This does not remove the threat of a stale value, since there is a window of time - * between the return of {@code computeValue} in {@code T} and the installation - * of the the new value. No user synchronization is possible during this time. - * - * @param type the type whose class value must be removed - * @throws NullPointerException if the argument is null - */ - public void remove(Class<?> type) { - ClassValueMap map = getMap(type); - if (map != null) { - synchronized (map) { - map.remove(this); - } - } - } - - /// Implementation... - - // The hash code for this type is based on the identity of the object, - // and is well-dispersed for power-of-two tables. - /** @deprecated This override, which is implementation-specific, will be removed for PFD. */ - public final int hashCode() { return hashCode; } - private final int hashCode = HASH_CODES.getAndAdd(0x61c88647); - private static final AtomicInteger HASH_CODES = new AtomicInteger(); - - private static final AtomicInteger STORE_BARRIER = new AtomicInteger(); - - /** Slow path for {@link #get}. */ - private T setComputedValue(Class<?> type) { - ClassValueMap map = getMap(type); - if (map == null) { - map = initializeMap(type); - } - T value = computeValue(type); - STORE_BARRIER.lazySet(0); - // All stores pending from computeValue are completed. - synchronized (map) { - // Warm up the table with a null entry. - map.preInitializeEntry(this); - } - STORE_BARRIER.lazySet(0); - // All stores pending from table expansion are completed. - synchronized (map) { - value = (T) map.initializeEntry(this, value); - // One might fear a possible race condition here - // if the code for map.put has flushed the write - // to map.table[*] before the writes to the Map.Entry - // are done. This is not possible, since we have - // warmed up the table with an empty entry. - } - return value; - } - - // Replace this map by a per-class slot. - private static final WeakHashMap<Class<?>, ClassValueMap> ROOT - = new WeakHashMap<Class<?>, ClassValueMap>(); - - private static ClassValueMap getMap(Class<?> type) { - return ROOT.get(type); - } - - private static ClassValueMap initializeMap(Class<?> type) { - synchronized (ClassValue.class) { - ClassValueMap map = ROOT.get(type); - if (map == null) - ROOT.put(type, map = new ClassValueMap()); - return map; - } - } - - static class ClassValueMap extends WeakHashMap<ClassValue, Object> { - /** Make sure this table contains an Entry for the given key, even if it is empty. */ - void preInitializeEntry(ClassValue key) { - if (!this.containsKey(key)) - this.put(key, null); - } - /** Make sure this table contains a non-empty Entry for the given key. */ - Object initializeEntry(ClassValue key, Object value) { - Object prior = this.get(key); - if (prior != null) { - return unmaskNull(prior); - } - this.put(key, maskNull(value)); - return value; - } - - Object maskNull(Object x) { - return x == null ? this : x; - } - Object unmaskNull(Object x) { - return x == this ? null : x; - } - } -}
--- a/src/share/classes/java/dyn/ConstantCallSite.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -/** - * A {@code ConstantCallSite} is a {@link CallSite} whose target is permanent, and can never be changed. - * An {@code invokedynamic} instruction linked to a {@code ConstantCallSite} is permanently - * bound to the call site's target. - * @author John Rose, JSR 292 EG - */ -public class ConstantCallSite extends CallSite { - /** - * Creates a call site with a permanent target. - * @param target the target to be permanently associated with this call site - * @throws NullPointerException if the proposed target is null - */ - public ConstantCallSite(MethodHandle target) { - super(target); - } - - /** - * Returns the target method of the call site, which behaves - * like a {@code final} field of the {@code ConstantCallSite}. - * That is, the the target is always the original value passed - * to the constructor call which created this instance. - * - * @return the immutable linkage state of this call site, a constant method handle - * @throws UnsupportedOperationException because this kind of call site cannot change its target - */ - @Override public final MethodHandle getTarget() { - return target; - } - - /** - * Always throws an {@link UnsupportedOperationException}. - * This kind of call site cannot change its target. - * @param ignore a new target proposed for the call site, which is ignored - * @throws UnsupportedOperationException because this kind of call site cannot change its target - */ - @Override public final void setTarget(MethodHandle ignore) { - throw new UnsupportedOperationException("ConstantCallSite"); - } - - /** - * Returns this call site's permanent target. - * Since that target will never change, this is a correct implementation - * of {@link CallSite#dynamicInvoker CallSite.dynamicInvoker}. - * @return the immutable linkage state of this call site, a constant method handle - */ - @Override - public final MethodHandle dynamicInvoker() { - return getTarget(); - } -}
--- a/src/share/classes/java/dyn/DirectMethodHandle.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import static java.dyn.MethodHandleNatives.Constants.*; - -/** - * The flavor of method handle which emulates invokespecial or invokestatic. - * @author jrose - */ -class DirectMethodHandle extends MethodHandle { - //inherited oop vmtarget; // methodOop or virtual class/interface oop - private final int vmindex; // method index within class or interface - { vmindex = VM_INDEX_UNINITIALIZED; } // JVM may change this - - // Constructors in this class *must* be package scoped or private. - DirectMethodHandle(MethodType mtype, MemberName m, boolean doDispatch, Class<?> lookupClass) { - super(mtype); - - assert(m.isMethod() || !doDispatch && m.isConstructor()); - if (!m.isResolved()) - throw new InternalError(); - - MethodHandleNatives.init(this, (Object) m, doDispatch, lookupClass); - } - - boolean isValid() { - return (vmindex != VM_INDEX_UNINITIALIZED); - } -}
--- a/src/share/classes/java/dyn/FilterGeneric.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4496 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import java.lang.reflect.*; -import static java.dyn.MethodHandleStatics.*; -import static java.dyn.MethodHandles.Lookup.IMPL_LOOKUP; - -/** - * These adapters apply arbitrary conversions to arguments - * on the way to a ultimate target. - * For simplicity, these are all generically typed. - * @author jrose - */ -class FilterGeneric { - // type for the incoming call (will be generic) - private final MethodType entryType; - // prototype adapters (clone and customize for each new target & conversion!) - private final Adapter[] adapters; - - /** Compute and cache information common to all filtering adapters - * with the given generic type - */ - FilterGeneric(MethodType entryType) { - this.entryType = entryType; - int tableSize = Kind.LIMIT.invokerIndex(1 + entryType.parameterCount()); - this.adapters = new Adapter[tableSize]; - } - - Adapter getAdapter(Kind kind, int pos) { - int index = kind.invokerIndex(pos); - Adapter ad = adapters[index]; - if (ad != null) return ad; - ad = findAdapter(entryType, kind, pos); - if (ad == null) - ad = buildAdapterFromBytecodes(entryType, kind, pos); - adapters[index] = ad; - return ad; - } - - Adapter makeInstance(Kind kind, int pos, MethodHandle filter, MethodHandle target) { - Adapter ad = getAdapter(kind, pos); - return ad.makeInstance(ad.prototypeEntryPoint(), filter, target); - } - - /** Build an adapter of the given generic type, which invokes filter - * on the selected incoming argument before passing it to the target. - * @param pos the argument to filter - * @param filter the function to call on the argument - * @param target the target to call with the modified argument list - * @return an adapter method handle - */ - public static MethodHandle makeArgumentFilter(int pos, MethodHandle filter, MethodHandle target) { - return make(Kind.value, pos, filter, target); - } - - /** Build an adapter of the given generic type, which invokes a combiner - * on a selected group of leading arguments. - * The result of the combiner is prepended before all those arguments. - * @param combiner the function to call on the selected leading arguments - * @param target the target to call with the modified argument list - * @return an adapter method handle - */ - public static MethodHandle makeArgumentFolder(MethodHandle combiner, MethodHandle target) { - int num = combiner.type().parameterCount(); - return make(Kind.fold, num, combiner, target); - } - - /** Build an adapter of the given generic type, which invokes a filter - * on the incoming arguments, reified as a group. - * The argument may be modified (by side effects in the filter). - * The arguments, possibly modified, are passed on to the target. - * @param filter the function to call on the arguments - * @param target the target to call with the possibly-modified argument list - * @return an adapter method handle - */ - public static MethodHandle makeFlyby(MethodHandle filter, MethodHandle target) { - return make(Kind.flyby, 0, filter, target); - } - - /** Build an adapter of the given generic type, which invokes a collector - * on the selected incoming argument and all following arguments. - * The result of the collector replaces all those arguments. - * @param collector the function to call on the selected trailing arguments - * @param target the target to call with the modified argument list - * @return an adapter method handle - */ - public static MethodHandle makeArgumentCollector(MethodHandle collector, MethodHandle target) { - int pos = target.type().parameterCount() - 1; - return make(Kind.collect, pos, collector, target); - } - - static MethodHandle make(Kind kind, int pos, MethodHandle filter, MethodHandle target) { - FilterGeneric fgen = of(kind, pos, filter.type(), target.type()); - return fgen.makeInstance(kind, pos, filter, target); - } - - /** Return the adapter information for this target and filter type. */ - static FilterGeneric of(Kind kind, int pos, MethodType filterType, MethodType targetType) { - MethodType entryType = entryType(kind, pos, filterType, targetType); - if (entryType.generic() != entryType) - throw newIllegalArgumentException("must be generic: "+entryType); - MethodTypeForm form = entryType.form(); - FilterGeneric filterGen = form.filterGeneric; - if (filterGen == null) - form.filterGeneric = filterGen = new FilterGeneric(entryType); - return filterGen; - } - - public String toString() { - return "FilterGeneric/"+entryType; - } - - static MethodType targetType(MethodType entryType, Kind kind, int pos, MethodType filterType) { - MethodType type = entryType; - switch (kind) { - case value: - case flyby: - break; // no change - case fold: - type = type.insertParameterTypes(0, filterType.returnType()); - break; - case collect: - type = type.dropParameterTypes(pos, type.parameterCount()); - type = type.insertParameterTypes(pos, filterType.returnType()); - break; - default: - throw new InternalError(); - } - return type; - } - - static MethodType entryType(Kind kind, int pos, MethodType filterType, MethodType targetType) { - MethodType type = targetType; - switch (kind) { - case value: - case flyby: - break; // no change - case fold: - type = type.dropParameterTypes(0, 1); - break; - case collect: - type = type.dropParameterTypes(pos, pos+1); - type = type.insertParameterTypes(pos, filterType.parameterList()); - break; - default: - throw new InternalError(); - } - return type; - } - - /* Create an adapter that handles spreading calls for the given type. */ - static Adapter findAdapter(MethodType entryType, Kind kind, int pos) { - int argc = entryType.parameterCount(); - String cname0 = "F"+argc; - String cname1 = "F"+argc+kind.key; - String[] cnames = { cname0, cname1 }; - String iname = kind.invokerName(pos); - // e.g., F5; invoke_C3 - for (String cname : cnames) { - Class<? extends Adapter> acls = Adapter.findSubClass(cname); - if (acls == null) continue; - // see if it has the required invoke method - MethodHandle entryPoint = null; - try { - entryPoint = IMPL_LOOKUP.findSpecial(acls, iname, entryType, acls); - } catch (ReflectiveOperationException ex) { - } - if (entryPoint == null) continue; - Constructor<? extends Adapter> ctor = null; - try { - ctor = acls.getDeclaredConstructor(MethodHandle.class); - } catch (NoSuchMethodException ex) { - } catch (SecurityException ex) { - } - if (ctor == null) continue; - try { - // Produce an instance configured as a prototype. - return ctor.newInstance(entryPoint); - } catch (IllegalArgumentException ex) { - } catch (InvocationTargetException wex) { - Throwable ex = wex.getTargetException(); - if (ex instanceof Error) throw (Error)ex; - if (ex instanceof RuntimeException) throw (RuntimeException)ex; - } catch (InstantiationException ex) { - } catch (IllegalAccessException ex) { - } - } - return null; - } - - static Adapter buildAdapterFromBytecodes(MethodType entryType, Kind kind, int pos) { - throw new UnsupportedOperationException("NYI"); - } - - /** - * This adapter takes some untyped arguments, and returns an untyped result. - * Internally, it applies the invoker to the target, which causes the - * objects to be unboxed; the result is a raw type in L/I/J/F/D. - * This result is passed to convert, which is responsible for - * converting the raw result into a boxed object. - * The invoker is kept separate from the target because it can be - * generated once per type erasure family, and reused across adapters. - */ - static abstract class Adapter extends BoundMethodHandle { - protected final MethodHandle filter; // transforms one or more arguments - protected final MethodHandle target; // ultimate target - - @Override - public String toString() { - return addTypeString(target, this); - } - - protected boolean isPrototype() { return target == null; } - protected Adapter(MethodHandle entryPoint) { - this(entryPoint, entryPoint, null); - assert(isPrototype()); - } - protected MethodHandle prototypeEntryPoint() { - if (!isPrototype()) throw new InternalError(); - return filter; - } - - protected Adapter(MethodHandle entryPoint, - MethodHandle filter, MethodHandle target) { - super(entryPoint); - this.filter = filter; - this.target = target; - } - - /** Make a copy of self, with new fields. */ - protected abstract Adapter makeInstance(MethodHandle entryPoint, - MethodHandle filter, MethodHandle target); - // { return new ThisType(entryPoint, filter, target); } - - static private final String CLASS_PREFIX; // "java.dyn.FilterGeneric$" - static { - String aname = Adapter.class.getName(); - String sname = Adapter.class.getSimpleName(); - if (!aname.endsWith(sname)) throw new InternalError(); - CLASS_PREFIX = aname.substring(0, aname.length() - sname.length()); - } - /** Find a sibing class of Adapter. */ - static Class<? extends Adapter> findSubClass(String name) { - String cname = Adapter.CLASS_PREFIX + name; - try { - return Class.forName(cname).asSubclass(Adapter.class); - } catch (ClassNotFoundException ex) { - return null; - } catch (ClassCastException ex) { - return null; - } - } - } - - static enum Kind { - value('V'), // filter and replace Nth argument value - fold('F'), // fold first N arguments, prepend result - collect('C'), // collect last N arguments, replace with result - flyby('Y'), // reify entire argument list, filter, pass to target - LIMIT('?'); - static final int COUNT = LIMIT.ordinal(); - - final char key; - Kind(char key) { this.key = key; } - String invokerName(int pos) { return "invoke_"+key+""+pos; } - int invokerIndex(int pos) { return pos * COUNT + ordinal(); } - } - - /* generated classes follow this pattern: - static class F1X extends Adapter { - protected F1X(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F1X(MethodHandle e, MethodHandle f, MethodHandle t) - { super(e, f, t); } - protected F1X makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) - { return new F1X(e, f, t); } - protected Object invoke_V0(Object a0) { return target.invokeExact(filter.invokeExact(a0)); } - protected Object invoke_F0(Object a0) { return target.invokeExact(filter.invokeExact(), a0); } - protected Object invoke_F1(Object a0) { return target.invokeExact(filter.invokeExact(a0), a0); } - protected Object invoke_C0(Object a0) { return target.invokeExact(filter.invokeExact(a0)); } - protected Object invoke_C1(Object a0) { return target.invokeExact(a0, filter.invokeExact()); } - protected Object invoke_Y0(Object a0) { Object[] av = { a0 }; - filter.invokeExact(av); return target.invokeExact(av[0]); } - } - static class F2X extends Adapter { - protected F2X(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F2X(MethodHandle e, MethodHandle f, MethodHandle t) - { super(e, f, t); } - protected F2X makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) - { return new F2X(e, f, t); } - protected Object invoke_V0(Object a0, Object a1) { return target.invokeExact(filter.invokeExact(a0), a1); } - protected Object invoke_V1(Object a0, Object a1) { return target.invokeExact(a0, filter.invokeExact(a1)); } - protected Object invoke_F0(Object a0, Object a1) { return target.invokeExact(filter.invokeExact(), a0, a1); } - protected Object invoke_F1(Object a0, Object a1) { return target.invokeExact(filter.invokeExact(a0), a0, a1); } - protected Object invoke_F2(Object a0, Object a1) { return target.invokeExact(filter.invokeExact(a0, a1), a0, a1); } - protected Object invoke_C0(Object a0, Object a1) { return target.invokeExact(filter.invokeExact(a0, a1)); } - protected Object invoke_C1(Object a0, Object a1) { return target.invokeExact(a0, filter.invokeExact(a1)); } - protected Object invoke_C2(Object a0, Object a1) { return target.invokeExact(a0, a1, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1) { Object[] av = { a0, a1 }; - filter.invokeExact(av); return target.invokeExact(av[0], av[1]); } - } - // */ - - // This one is written by hand: - static class F0 extends Adapter { - protected F0(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F0(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F0 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F0(e, f, t); } - protected Object invoke_F0() throws Throwable { - return target.invokeExact(filter.invokeExact()); } - protected Object invoke_C0() throws Throwable { - return target.invokeExact(filter.invokeExact()); } - static final Object[] NO_ARGS = { }; - protected Object invoke_Y0() throws Throwable { - filter.invokeExact(NO_ARGS); // make the flyby - return target.invokeExact(); } - } - -/* - : SHELL; n=FilterGeneric; cp -p $n.java $n.java-; sed < $n.java- > $n.java+ -e '/{{*{{/,/}}*}}/w /tmp/genclasses.java' -e '/}}*}}/q'; (cd /tmp; javac -d . genclasses.java; java -ea -cp . genclasses | sed 's| *[/]/ *$||') >> $n.java+; echo '}' >> $n.java+; mv $n.java+ $n.java; mv $n.java- $n.java~ -//{{{ -import java.util.*; -class genclasses { - static String[][] TEMPLATES = { { - "@for@ N=1..20", - " //@each-cat@", - " static class @cat@ extends Adapter {", - " protected @cat@(MethodHandle entryPoint) { super(entryPoint); } // to build prototype", - " protected @cat@(MethodHandle e, MethodHandle f, MethodHandle t) {", - " super(e, f, t); }", - " protected @cat@ makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) {", - " return new @cat@(e, f, t); }", - " //@each-P@", - " protected Object invoke_V@P@(@Tvav@) throws Throwable {", - " return target.invokeExact(@a0_@@Psp@filter.invokeExact(a@P@)@_aN@); }", - " //@end-P@", - " //@each-P@", - " protected Object invoke_F@P@(@Tvav@) throws Throwable {", - " return target.invokeExact(filter.invokeExact(@a0@),", - " @av@); }", - " //@end-P@", - " protected Object invoke_F@N@(@Tvav@) throws Throwable {", - " return target.invokeExact(filter.invokeExact(@av@),", - " @av@); }", - " //@each-P@", - " protected Object invoke_C@P@(@Tvav@) throws Throwable {", - " return target.invokeExact(@a0_@filter.invokeExact(a@P@@_aN@)); }", - " //@end-P@", - " protected Object invoke_C@N@(@Tvav@) throws Throwable {", - " return target.invokeExact(@av@, filter.invokeExact()); }", - " protected Object invoke_Y0(@Tvav@) throws Throwable {", - " Object[] av = { @av@ };", - " filter.invokeExact(av); // make the flyby", - " return target.invokeExact(@av[i]@); }", - " }", - } }; - static final String NEWLINE_INDENT = " //\n "; - enum VAR { - cat, N, P, Tvav, av, a0, a0_, _aN, Psp, av_i_; - public final String pattern = "@"+toString().replace('_','.')+"@"; - public String binding = toString(); - static void makeBindings(boolean topLevel, int inargs, int pos) { - assert(-1 <= pos && pos < inargs); - VAR.cat.binding = "F"+inargs; - VAR.N.binding = String.valueOf(inargs); // incoming arg count - VAR.P.binding = String.valueOf(pos); // selected arg position - String[] av = new String[inargs]; - String[] Tvav = new String[inargs]; - String[] av_i_ = new String[inargs]; - for (int i = 0; i < inargs; i++) { - av[i] = arg(i); - av_i_[i] = "av["+i+"]"; - String spc = ""; - if (i > 0 && i % 4 == 0) spc = NEWLINE_INDENT+(pos>9?" ":"")+" "; - Tvav[i] = spc+param("Object", av[i]); - } - VAR.av.binding = comma(av); - VAR.av_i_.binding = comma(av_i_); - VAR.Tvav.binding = comma(Tvav); - if (pos >= 0) { - VAR.Psp.binding = (pos > 0 && pos % 10 == 0) ? NEWLINE_INDENT : ""; - String[] a0 = new String[pos]; - String[] aN = new String[inargs - (pos+1)]; - for (int i = 0; i < pos; i++) { - String spc = ""; - if (i > 0 && i % 10 == 0) spc = NEWLINE_INDENT; - a0[i] = spc+av[i]; - } - VAR.a0.binding = comma(a0); - VAR.a0_.binding = comma(a0, ", "); - for (int i = pos+1; i < inargs; i++) { - String spc = ""; - if (i > 0 && i % 10 == 0) spc = NEWLINE_INDENT; - aN[i - (pos+1)] = spc+av[i]; - } - VAR._aN.binding = comma(", ", aN); - } - } - static String arg(int i) { return "a"+i; } - static String param(String t, String a) { return t+" "+a; } - static String comma(String[] v) { return comma(v, ""); } - static String comma(String[] v, String sep) { return comma("", v, sep); } - static String comma(String sep, String[] v) { return comma(sep, v, ""); } - static String comma(String sep1, String[] v, String sep2) { - if (v.length == 0) return ""; - String res = v[0]; - for (int i = 1; i < v.length; i++) res += ", "+v[i]; - return sep1 + res + sep2; - } - static String transform(String string) { - for (VAR var : values()) - string = string.replaceAll(var.pattern, var.binding); - return string; - } - } - static String[] stringsIn(String[] strings, int beg, int end) { - return Arrays.copyOfRange(strings, beg, Math.min(end, strings.length)); - } - static String[] stringsBefore(String[] strings, int pos) { - return stringsIn(strings, 0, pos); - } - static String[] stringsAfter(String[] strings, int pos) { - return stringsIn(strings, pos, strings.length); - } - static int indexAfter(String[] strings, int pos, String tag) { - return Math.min(indexBefore(strings, pos, tag) + 1, strings.length); - } - static int indexBefore(String[] strings, int pos, String tag) { - for (int i = pos, end = strings.length; ; i++) { - if (i == end || strings[i].endsWith(tag)) return i; - } - } - static int MIN_ARITY, MAX_ARITY; - public static void main(String... av) { - for (String[] template : TEMPLATES) { - int forLinesLimit = indexBefore(template, 0, "@each-cat@"); - String[] forLines = stringsBefore(template, forLinesLimit); - template = stringsAfter(template, forLinesLimit); - for (String forLine : forLines) - expandTemplate(forLine, template); - } - } - static void expandTemplate(String forLine, String[] template) { - String[] params = forLine.split("[^0-9]+"); - if (params[0].length() == 0) params = stringsAfter(params, 1); - System.out.println("//params="+Arrays.asList(params)); - int pcur = 0; - MIN_ARITY = Integer.valueOf(params[pcur++]); - MAX_ARITY = Integer.valueOf(params[pcur++]); - if (pcur != params.length) throw new RuntimeException("bad extra param: "+forLine); - for (int inargs = MIN_ARITY; inargs <= MAX_ARITY; inargs++) { - expandTemplate(template, true, inargs, -1); - } - } - static void expandTemplate(String[] template, boolean topLevel, int inargs, int pos) { - VAR.makeBindings(topLevel, inargs, pos); - for (int i = 0; i < template.length; i++) { - String line = template[i]; - if (line.endsWith("@each-cat@")) { - // ignore - } else if (line.endsWith("@each-P@")) { - int blockEnd = indexAfter(template, i, "@end-P@"); - String[] block = stringsIn(template, i+1, blockEnd-1); - for (int pos1 = Math.max(0,pos); pos1 < inargs; pos1++) - expandTemplate(block, false, inargs, pos1); - VAR.makeBindings(topLevel, inargs, pos); - i = blockEnd-1; continue; - } else { - System.out.println(VAR.transform(line)); - } - } - } -} -//}}} */ -//params=[1, 20] - static class F1 extends Adapter { - protected F1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F1(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F1 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F1(e, f, t); } - protected Object invoke_V0(Object a0) throws Throwable { - return target.invokeExact(filter.invokeExact(a0)); } - protected Object invoke_F0(Object a0) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0); } - protected Object invoke_F1(Object a0) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0); } - protected Object invoke_C0(Object a0) throws Throwable { - return target.invokeExact(filter.invokeExact(a0)); } - protected Object invoke_C1(Object a0) throws Throwable { - return target.invokeExact(a0, filter.invokeExact()); } - protected Object invoke_Y0(Object a0) throws Throwable { - Object[] av = { a0 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0]); } - } - static class F2 extends Adapter { - protected F2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F2(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F2 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F2(e, f, t); } - protected Object invoke_V0(Object a0, Object a1) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1); } - protected Object invoke_V1(Object a0, Object a1) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1)); } - protected Object invoke_F0(Object a0, Object a1) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1); } - protected Object invoke_F1(Object a0, Object a1) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1); } - protected Object invoke_F2(Object a0, Object a1) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1); } - protected Object invoke_C0(Object a0, Object a1) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1)); } - protected Object invoke_C1(Object a0, Object a1) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1)); } - protected Object invoke_C2(Object a0, Object a1) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1) throws Throwable { - Object[] av = { a0, a1 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1]); } - } - static class F3 extends Adapter { - protected F3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F3(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F3 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F3(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2); } - protected Object invoke_V1(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2); } - protected Object invoke_V2(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2)); } - protected Object invoke_F0(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2); } - protected Object invoke_F1(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2); } - protected Object invoke_F2(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2); } - protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2); } - protected Object invoke_C0(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2)); } - protected Object invoke_C1(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2)); } - protected Object invoke_C2(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2)); } - protected Object invoke_C3(Object a0, Object a1, Object a2) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2) throws Throwable { - Object[] av = { a0, a1, a2 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2]); } - } - static class F4 extends Adapter { - protected F4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F4(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F4 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F4(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3) throws Throwable { - Object[] av = { a0, a1, a2, a3 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3]); } - } - static class F5 extends Adapter { - protected F5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F5(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F5 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F5(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4]); } - } - static class F6 extends Adapter { - protected F6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F6(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F6 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F6(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5]); } - } - static class F7 extends Adapter { - protected F7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F7(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F7 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F7(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6]); } - } - static class F8 extends Adapter { - protected F8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F8(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F8 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F8(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7]); } - } - static class F9 extends Adapter { - protected F9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F9(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F9 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F9(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8]); } - } - static class F10 extends Adapter { - protected F10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F10(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F10 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F10(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9]); } - } - static class F11 extends Adapter { - protected F11(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F11(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F11 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F11(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10]); } - } - static class F12 extends Adapter { - protected F12(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F12(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F12 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F12(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11]); } - } - static class F13 extends Adapter { - protected F13(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F13(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F13 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F13(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12]); } - } - static class F14 extends Adapter { - protected F14(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F14(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F14 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F14(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13]); } - } - static class F15 extends Adapter { - protected F15(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F15(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F15 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F15(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13, a14); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13, a14); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13, a14); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13, a14); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13, a14); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13), a14); } - protected Object invoke_V14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_F15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13, a14)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13, a14)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13, a14)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13, a14)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13, a14)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14)); } - protected Object invoke_C15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14]); } - } - static class F16 extends Adapter { - protected F16(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F16(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F16 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F16(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13, a14, a15); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13, a14, a15); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13, a14, a15); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13, a14, a15); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13), a14, a15); } - protected Object invoke_V14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14), a15); } - protected Object invoke_V15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_F16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13, a14, a15)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13, a14, a15)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13, a14, a15)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13, a14, a15)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14, a15)); } - protected Object invoke_C15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15)); } - protected Object invoke_C16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15]); } - } - static class F17 extends Adapter { - protected F17(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F17(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F17 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F17(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13, a14, a15, a16); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13, a14, a15, a16); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13, a14, a15, a16); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13), a14, a15, a16); } - protected Object invoke_V14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14), a15, a16); } - protected Object invoke_V15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15), a16); } - protected Object invoke_V16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_F17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13, a14, a15, a16)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13, a14, a15, a16)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13, a14, a15, a16)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14, a15, a16)); } - protected Object invoke_C15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15, a16)); } - protected Object invoke_C16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16)); } - protected Object invoke_C17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16]); } - } - static class F18 extends Adapter { - protected F18(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F18(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F18 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F18(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13, a14, a15, a16, a17); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13, a14, a15, a16, a17); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13), a14, a15, a16, a17); } - protected Object invoke_V14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14), a15, a16, a17); } - protected Object invoke_V15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15), a16, a17); } - protected Object invoke_V16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16), a17); } - protected Object invoke_V17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, filter.invokeExact(a17)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_F18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13, a14, a15, a16, a17)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13, a14, a15, a16, a17)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14, a15, a16, a17)); } - protected Object invoke_C15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15, a16, a17)); } - protected Object invoke_C16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16, a17)); } - protected Object invoke_C17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, filter.invokeExact(a17)); } - protected Object invoke_C18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16], av[17]); } - } - static class F19 extends Adapter { - protected F19(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F19(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F19 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F19(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13, a14, a15, a16, a17, a18); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13), a14, a15, a16, a17, a18); } - protected Object invoke_V14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14), a15, a16, a17, a18); } - protected Object invoke_V15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15), a16, a17, a18); } - protected Object invoke_V16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16), a17, a18); } - protected Object invoke_V17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, filter.invokeExact(a17), a18); } - protected Object invoke_V18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, filter.invokeExact(a18)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_F19(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13, a14, a15, a16, a17, a18)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14, a15, a16, a17, a18)); } - protected Object invoke_C15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15, a16, a17, a18)); } - protected Object invoke_C16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16, a17, a18)); } - protected Object invoke_C17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, filter.invokeExact(a17, a18)); } - protected Object invoke_C18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, filter.invokeExact(a18)); } - protected Object invoke_C19(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16], av[17], av[18]); } - } - static class F20 extends Adapter { - protected F20(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected F20(MethodHandle e, MethodHandle f, MethodHandle t) { - super(e, f, t); } - protected F20 makeInstance(MethodHandle e, MethodHandle f, MethodHandle t) { - return new F20(e, f, t); } - protected Object invoke_V0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1), a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2), a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3), a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4), a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5), a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6), a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7), a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8), a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9), - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - filter.invokeExact(a10), a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11), a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12), a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_V13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13), a14, a15, a16, a17, a18, a19); } - protected Object invoke_V14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14), a15, a16, a17, a18, a19); } - protected Object invoke_V15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15), a16, a17, a18, a19); } - protected Object invoke_V16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16), a17, a18, a19); } - protected Object invoke_V17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, filter.invokeExact(a17), a18, a19); } - protected Object invoke_V18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, filter.invokeExact(a18), a19); } - protected Object invoke_V19(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, filter.invokeExact(a19)); } - protected Object invoke_F0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F19(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_F20(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19), - a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19); } - protected Object invoke_C0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(filter.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C1(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, filter.invokeExact(a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C2(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, filter.invokeExact(a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C3(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, filter.invokeExact(a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C4(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, filter.invokeExact(a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C5(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, filter.invokeExact(a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C6(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, filter.invokeExact(a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C7(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, filter.invokeExact(a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C8(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, filter.invokeExact(a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C9(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, filter.invokeExact(a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C10(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, filter.invokeExact(a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C11(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, filter.invokeExact(a11, a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C12(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, filter.invokeExact(a12, a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C13(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, filter.invokeExact(a13, a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C14(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, filter.invokeExact(a14, a15, a16, a17, a18, a19)); } - protected Object invoke_C15(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, filter.invokeExact(a15, a16, a17, a18, a19)); } - protected Object invoke_C16(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, filter.invokeExact(a16, a17, a18, a19)); } - protected Object invoke_C17(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, filter.invokeExact(a17, a18, a19)); } - protected Object invoke_C18(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, filter.invokeExact(a18, a19)); } - protected Object invoke_C19(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, - a10, a11, a12, a13, a14, a15, a16, a17, a18, filter.invokeExact(a19)); } - protected Object invoke_C20(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, filter.invokeExact()); } - protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, - Object a4, Object a5, Object a6, Object a7, - Object a8, Object a9, Object a10, Object a11, - Object a12, Object a13, Object a14, Object a15, - Object a16, Object a17, Object a18, Object a19) throws Throwable { - Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 }; - filter.invokeExact(av); // make the flyby - return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16], av[17], av[18], av[19]); } - } -}
--- a/src/share/classes/java/dyn/FilterOneArgument.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import static java.dyn.MethodHandleStatics.*; -import static java.dyn.MethodHandles.Lookup.IMPL_LOOKUP; - -/** - * Unary function composition, useful for many small plumbing jobs. - * The invoke method takes a single reference argument, and returns a reference - * Internally, it first calls the {@code filter} method on the argument, - * Making up the difference between the raw method type and the - * final method type is the responsibility of a JVM-level adapter. - * @author jrose - */ -class FilterOneArgument extends BoundMethodHandle { - protected final MethodHandle filter; // Object -> Object - protected final MethodHandle target; // Object -> Object - - @Override - public String toString() { - return target.toString(); - } - - protected Object invoke(Object argument) throws Throwable { - Object filteredArgument = filter.invokeExact(argument); - return target.invokeExact(filteredArgument); - } - - private static final MethodHandle INVOKE; - static { - try { - INVOKE = - IMPL_LOOKUP.findVirtual(FilterOneArgument.class, "invoke", - MethodType.genericMethodType(1)); - } catch (ReflectiveOperationException ex) { - throw uncaughtException(ex); - } - } - - protected FilterOneArgument(MethodHandle filter, MethodHandle target) { - super(INVOKE); - this.filter = filter; - this.target = target; - } - - public static MethodHandle make(MethodHandle filter, MethodHandle target) { - if (filter == null) return target; - if (target == null) return filter; - return new FilterOneArgument(filter, target); - } - -// MethodHandle make(MethodHandle filter1, MethodHandle filter2, MethodHandle target) { -// MethodHandle filter = make(filter1, filter2); -// return make(filter, target); -// } -}
--- a/src/share/classes/java/dyn/FromGeneric.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,630 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import sun.dyn.util.ValueConversions; -import sun.dyn.util.Wrapper; -import java.lang.reflect.*; -import static java.dyn.MethodHandleStatics.*; -import static java.dyn.MethodHandles.Lookup.IMPL_LOOKUP; - -/** - * Adapters which mediate between incoming calls which are generic - * and outgoing calls which are not. Any call can be represented generically - * boxing up its arguments, and (on return) unboxing the return value. - * <p> - * A call is "generic" (in MethodHandle terms) if its MethodType features - * only Object arguments. A non-generic call therefore features - * primitives and/or reference types other than Object. - * An adapter has types for its incoming and outgoing calls. - * The incoming call type is simply determined by the adapter's type - * (the MethodType it presents to callers). The outgoing call type - * is determined by the adapter's target (a MethodHandle that the adapter - * either binds internally or else takes as a leading argument). - * (To stretch the term, adapter-like method handles may have multiple - * targets or be polymorphic across multiple call types.) - * @author jrose - */ -class FromGeneric { - // type for the outgoing call (may have primitives, etc.) - private final MethodType targetType; - // type of the outgoing call internal to the adapter - private final MethodType internalType; - // prototype adapter (clone and customize for each new target!) - private final Adapter adapter; - // entry point for adapter (Adapter mh, a...) => ... - private final MethodHandle entryPoint; - // unboxing invoker of type (MH, Object**N) => raw return value - // it makes up the difference of internalType => targetType - private final MethodHandle unboxingInvoker; - // conversion which boxes a the target's raw return value - private final MethodHandle returnConversion; - - /** Compute and cache information common to all unboxing adapters - * that can call out to targets of the erasure-family of the given erased type. - */ - private FromGeneric(MethodType targetType) { - this.targetType = targetType; - MethodType internalType0; - // the target invoker will generally need casts on reference arguments - Adapter ad = findAdapter(internalType0 = targetType.erase()); - if (ad != null) { - // Immediate hit to exactly the adapter we want, - // with no monkeying around with primitive types. - this.internalType = internalType0; - this.adapter = ad; - this.entryPoint = ad.prototypeEntryPoint(); - this.returnConversion = computeReturnConversion(targetType, internalType0); - this.unboxingInvoker = computeUnboxingInvoker(targetType, internalType0); - return; - } - - // outgoing primitive arguments will be wrapped; unwrap them - MethodType primsAsObj = targetType.form().primArgsAsBoxes(); - MethodType objArgsRawRet = primsAsObj.form().primsAsInts(); - if (objArgsRawRet != targetType) - ad = findAdapter(internalType0 = objArgsRawRet); - if (ad == null) { - ad = buildAdapterFromBytecodes(internalType0 = targetType); - } - this.internalType = internalType0; - this.adapter = ad; - MethodType tepType = targetType.insertParameterTypes(0, adapter.getClass()); - this.entryPoint = ad.prototypeEntryPoint(); - this.returnConversion = computeReturnConversion(targetType, internalType0); - this.unboxingInvoker = computeUnboxingInvoker(targetType, internalType0); - } - - /** - * The typed target will be called according to targetType. - * The adapter code will in fact see the raw result from internalType, - * and must box it into an object. Produce a converter for this. - */ - private static MethodHandle computeReturnConversion( - MethodType targetType, MethodType internalType) { - Class<?> tret = targetType.returnType(); - Class<?> iret = internalType.returnType(); - Wrapper wrap = Wrapper.forBasicType(tret); - if (!iret.isPrimitive()) { - assert(iret == Object.class); - return ValueConversions.identity(); - } else if (wrap.primitiveType() == iret) { - return ValueConversions.box(wrap, false); - } else { - assert(tret == double.class ? iret == long.class : iret == int.class); - return ValueConversions.boxRaw(wrap, false); - } - } - - /** - * The typed target will need an exact invocation point; provide it here. - * The adapter will possibly need to make a slightly different call, - * so adapt the invoker. This way, the logic for making up the - * difference between what the adapter can call and what the target - * needs can be cached once per type. - */ - private static MethodHandle computeUnboxingInvoker( - MethodType targetType, MethodType internalType) { - // All the adapters we have here have reference-untyped internal calls. - assert(internalType == internalType.erase()); - MethodHandle invoker = targetType.invokers().exactInvoker(); - // cast all narrow reference types, unbox all primitive arguments: - MethodType fixArgsType = internalType.changeReturnType(targetType.returnType()); - MethodHandle fixArgs = MethodHandleImpl.convertArguments( - invoker, Invokers.invokerType(fixArgsType), - invoker.type(), null); - if (fixArgs == null) - throw new InternalError("bad fixArgs"); - // reinterpret the calling sequence as raw: - MethodHandle retyper = AdapterMethodHandle.makeRetypeRaw( - Invokers.invokerType(internalType), fixArgs); - if (retyper == null) - throw new InternalError("bad retyper"); - return retyper; - } - - Adapter makeInstance(MethodHandle typedTarget) { - MethodType type = typedTarget.type(); - if (type == targetType) { - return adapter.makeInstance(entryPoint, unboxingInvoker, returnConversion, typedTarget); - } - // my erased-type is not exactly the same as the desired type - assert(type.erase() == targetType); // else we are busted - MethodHandle invoker = computeUnboxingInvoker(type, internalType); - return adapter.makeInstance(entryPoint, invoker, returnConversion, typedTarget); - } - - /** Build an adapter of the given generic type, which invokes typedTarget - * on the incoming arguments, after unboxing as necessary. - * The return value is boxed if necessary. - * @param genericType the required type of the result - * @param typedTarget the target - * @return an adapter method handle - */ - public static MethodHandle make(MethodHandle typedTarget) { - MethodType type = typedTarget.type(); - if (type == type.generic()) return typedTarget; - return FromGeneric.of(type).makeInstance(typedTarget); - } - - /** Return the adapter information for this type's erasure. */ - static FromGeneric of(MethodType type) { - MethodTypeForm form = type.form(); - FromGeneric fromGen = form.fromGeneric; - if (fromGen == null) - form.fromGeneric = fromGen = new FromGeneric(form.erasedType()); - return fromGen; - } - - public String toString() { - return "FromGeneric"+targetType; - } - - /* Create an adapter that handles spreading calls for the given type. */ - static Adapter findAdapter(MethodType internalType) { - MethodType entryType = internalType.generic(); - MethodTypeForm form = internalType.form(); - Class<?> rtype = internalType.returnType(); - int argc = form.parameterCount(); - int lac = form.longPrimitiveParameterCount(); - int iac = form.primitiveParameterCount() - lac; - String intsAndLongs = (iac > 0 ? "I"+iac : "")+(lac > 0 ? "J"+lac : ""); - String rawReturn = String.valueOf(Wrapper.forPrimitiveType(rtype).basicTypeChar()); - String cname0 = rawReturn + argc; - String cname1 = "A" + argc; - String[] cnames = { cname0+intsAndLongs, cname0, cname1+intsAndLongs, cname1 }; - String iname = "invoke_"+cname0+intsAndLongs; - // e.g., D5I2, D5, L5I2, L5; invoke_D5 - for (String cname : cnames) { - Class<? extends Adapter> acls = Adapter.findSubClass(cname); - if (acls == null) continue; - // see if it has the required invoke method - MethodHandle entryPoint = null; - try { - entryPoint = IMPL_LOOKUP.findSpecial(acls, iname, entryType, acls); - } catch (ReflectiveOperationException ex) { - } - if (entryPoint == null) continue; - Constructor<? extends Adapter> ctor = null; - try { - ctor = acls.getDeclaredConstructor(MethodHandle.class); - } catch (NoSuchMethodException ex) { - } catch (SecurityException ex) { - } - if (ctor == null) continue; - try { - // Produce an instance configured as a prototype. - return ctor.newInstance(entryPoint); - } catch (IllegalArgumentException ex) { - } catch (InvocationTargetException wex) { - Throwable ex = wex.getTargetException(); - if (ex instanceof Error) throw (Error)ex; - if (ex instanceof RuntimeException) throw (RuntimeException)ex; - } catch (InstantiationException ex) { - } catch (IllegalAccessException ex) { - } - } - return null; - } - - static Adapter buildAdapterFromBytecodes(MethodType internalType) { - throw new UnsupportedOperationException("NYI"); - } - - /** - * This adapter takes some untyped arguments, and returns an untyped result. - * Internally, it applies the invoker to the target, which causes the - * objects to be unboxed; the result is a raw type in L/I/J/F/D. - * This result is passed to convert, which is responsible for - * converting the raw result into a boxed object. - * The invoker is kept separate from the target because it can be - * generated once per type erasure family, and reused across adapters. - */ - static abstract class Adapter extends BoundMethodHandle { - /* - * class X<<R,int N>> extends Adapter { - * (MH, Object**N)=>raw(R) invoker; - * (any**N)=>R target; - * raw(R)=>Object convert; - * Object invoke(Object**N a) = convert(invoker(target, a...)) - * } - */ - protected final MethodHandle invoker; // (MH, Object**N) => raw(R) - protected final MethodHandle convert; // raw(R) => Object - protected final MethodHandle target; // (any**N) => R - - @Override - public String toString() { - return addTypeString(target, this); - } - - protected boolean isPrototype() { return target == null; } - protected Adapter(MethodHandle entryPoint) { - this(entryPoint, null, entryPoint, null); - assert(isPrototype()); - } - protected MethodHandle prototypeEntryPoint() { - if (!isPrototype()) throw new InternalError(); - return convert; - } - - protected Adapter(MethodHandle entryPoint, - MethodHandle invoker, MethodHandle convert, MethodHandle target) { - super(entryPoint); - this.invoker = invoker; - this.convert = convert; - this.target = target; - } - - /** Make a copy of self, with new fields. */ - protected abstract Adapter makeInstance(MethodHandle entryPoint, - MethodHandle invoker, MethodHandle convert, MethodHandle target); - // { return new ThisType(entryPoint, convert, target); } - - /// Conversions on the value returned from the target. - protected Object convert_L(Object result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_I(int result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_J(long result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_F(float result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_D(double result) throws Throwable { return convert.invokeExact(result); } - - static private final String CLASS_PREFIX; // "java.dyn.FromGeneric$" - static { - String aname = Adapter.class.getName(); - String sname = Adapter.class.getSimpleName(); - if (!aname.endsWith(sname)) throw new InternalError(); - CLASS_PREFIX = aname.substring(0, aname.length() - sname.length()); - } - /** Find a sibing class of Adapter. */ - static Class<? extends Adapter> findSubClass(String name) { - String cname = Adapter.CLASS_PREFIX + name; - try { - return Class.forName(cname).asSubclass(Adapter.class); - } catch (ClassNotFoundException ex) { - return null; - } catch (ClassCastException ex) { - return null; - } - } - } - - /* generated classes follow this pattern: - static class xA2 extends Adapter { - protected xA2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected xA2(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected xA2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new xA2(e, i, c, t); } - protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } - protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1)); } - protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1)); } - protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1)); } - protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1)); } - } - // */ - -/* -: SHELL; n=FromGeneric; cp -p $n.java $n.java-; sed < $n.java- > $n.java+ -e '/{{*{{/,/}}*}}/w /tmp/genclasses.java' -e '/}}*}}/q'; (cd /tmp; javac -d . genclasses.java; java -cp . genclasses) >> $n.java+; echo '}' >> $n.java+; mv $n.java+ $n.java; mv $n.java- $n.java~ -//{{{ -import java.util.*; -class genclasses { - static String[] TYPES = { "Object", "int ", "long ", "float ", "double" }; - static String[] WRAPS = { " ", "(Integer)", "(Long) ", "(Float) ", "(Double) " }; - static String[] TCHARS = { "L", "I", "J", "F", "D", "A" }; - static String[][] TEMPLATES = { { - "@for@ arity=0..10 rcat<=4 nrefs<=99 nints=0 nlongs=0", - " //@each-cat@", - " static class @cat@ extends Adapter {", - " protected @cat@(MethodHandle entryPoint) { super(entryPoint); } // to build prototype", - " protected @cat@(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)", - " { super(e, i, c, t); }", - " protected @cat@ makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)", - " { return new @cat@(e, i, c, t); }", - " //@each-R@", - " protected Object invoke_@catN@(@Tvav@) throws Throwable { return convert_@Rc@((@R@)@W@invoker.invokeExact(target@av@)); }", - " //@end-R@", - " }", - } }; - static final String NEWLINE_INDENT = "\n "; - enum VAR { - cat, catN, R, Rc, W, av, Tvav, Ovav; - public final String pattern = "@"+toString().replace('_','.')+"@"; - public String binding; - static void makeBindings(boolean topLevel, int rcat, int nrefs, int nints, int nlongs) { - int nargs = nrefs + nints + nlongs; - if (topLevel) - VAR.cat.binding = catstr(ALL_RETURN_TYPES ? TYPES.length : rcat, nrefs, nints, nlongs); - VAR.catN.binding = catstr(rcat, nrefs, nints, nlongs); - VAR.R.binding = TYPES[rcat]; - VAR.Rc.binding = TCHARS[rcat]; - VAR.W.binding = WRAPS[rcat]; - String[] Tv = new String[nargs]; - String[] av = new String[nargs]; - String[] Tvav = new String[nargs]; - String[] Ovav = new String[nargs]; - for (int i = 0; i < nargs; i++) { - int tcat = (i < nrefs) ? 0 : (i < nrefs + nints) ? 1 : 2; - Tv[i] = TYPES[tcat]; - av[i] = arg(i); - Tvav[i] = param(Tv[i], av[i]); - Ovav[i] = param("Object", av[i]); - } - VAR.av.binding = comma(", ", av); - VAR.Tvav.binding = comma(Tvav); - VAR.Ovav.binding = comma(Ovav); - } - static String arg(int i) { return "a"+i; } - static String param(String t, String a) { return t+" "+a; } - static String comma(String[] v) { return comma("", v); } - static String comma(String sep, String[] v) { - if (v.length == 0) return ""; - String res = sep+v[0]; - for (int i = 1; i < v.length; i++) res += ", "+v[i]; - return res; - } - static String transform(String string) { - for (VAR var : values()) - string = string.replaceAll(var.pattern, var.binding); - return string; - } - } - static String[] stringsIn(String[] strings, int beg, int end) { - return Arrays.copyOfRange(strings, beg, Math.min(end, strings.length)); - } - static String[] stringsBefore(String[] strings, int pos) { - return stringsIn(strings, 0, pos); - } - static String[] stringsAfter(String[] strings, int pos) { - return stringsIn(strings, pos, strings.length); - } - static int indexAfter(String[] strings, int pos, String tag) { - return Math.min(indexBefore(strings, pos, tag) + 1, strings.length); - } - static int indexBefore(String[] strings, int pos, String tag) { - for (int i = pos, end = strings.length; ; i++) { - if (i == end || strings[i].endsWith(tag)) return i; - } - } - static int MIN_ARITY, MAX_ARITY, MAX_RCAT, MAX_REFS, MAX_INTS, MAX_LONGS; - static boolean ALL_ARG_TYPES, ALL_RETURN_TYPES; - static HashSet<String> done = new HashSet<String>(); - public static void main(String... av) { - for (String[] template : TEMPLATES) { - int forLinesLimit = indexBefore(template, 0, "@each-cat@"); - String[] forLines = stringsBefore(template, forLinesLimit); - template = stringsAfter(template, forLinesLimit); - for (String forLine : forLines) - expandTemplate(forLine, template); - } - } - static void expandTemplate(String forLine, String[] template) { - String[] params = forLine.split("[^0-9]+"); - if (params[0].length() == 0) params = stringsAfter(params, 1); - System.out.println("//params="+Arrays.asList(params)); - int pcur = 0; - MIN_ARITY = Integer.valueOf(params[pcur++]); - MAX_ARITY = Integer.valueOf(params[pcur++]); - MAX_RCAT = Integer.valueOf(params[pcur++]); - MAX_REFS = Integer.valueOf(params[pcur++]); - MAX_INTS = Integer.valueOf(params[pcur++]); - MAX_LONGS = Integer.valueOf(params[pcur++]); - if (pcur != params.length) throw new RuntimeException("bad extra param: "+forLine); - if (MAX_RCAT >= TYPES.length) MAX_RCAT = TYPES.length - 1; - ALL_ARG_TYPES = (indexBefore(template, 0, "@each-Tv@") < template.length); - ALL_RETURN_TYPES = (indexBefore(template, 0, "@each-R@") < template.length); - for (int nargs = MIN_ARITY; nargs <= MAX_ARITY; nargs++) { - for (int rcat = 0; rcat <= MAX_RCAT; rcat++) { - expandTemplate(template, true, rcat, nargs, 0, 0); - if (ALL_ARG_TYPES) break; - expandTemplateForPrims(template, true, rcat, nargs, 1, 1); - if (ALL_RETURN_TYPES) break; - } - } - } - static String catstr(int rcat, int nrefs, int nints, int nlongs) { - int nargs = nrefs + nints + nlongs; - String cat = TCHARS[rcat] + nargs; - if (!ALL_ARG_TYPES) cat += (nints==0?"":"I"+nints)+(nlongs==0?"":"J"+nlongs); - return cat; - } - static void expandTemplateForPrims(String[] template, boolean topLevel, int rcat, int nargs, int minints, int minlongs) { - for (int isLong = 0; isLong <= 1; isLong++) { - for (int nprims = 1; nprims <= nargs; nprims++) { - int nrefs = nargs - nprims; - int nints = ((1-isLong) * nprims); - int nlongs = (isLong * nprims); - expandTemplate(template, topLevel, rcat, nrefs, nints, nlongs); - } - } - } - static void expandTemplate(String[] template, boolean topLevel, - int rcat, int nrefs, int nints, int nlongs) { - int nargs = nrefs + nints + nlongs; - if (nrefs > MAX_REFS || nints > MAX_INTS || nlongs > MAX_LONGS) return; - VAR.makeBindings(topLevel, rcat, nrefs, nints, nlongs); - if (topLevel && !done.add(VAR.cat.binding)) { - System.out.println(" //repeat "+VAR.cat.binding); - return; - } - for (int i = 0; i < template.length; i++) { - String line = template[i]; - if (line.endsWith("@each-cat@")) { - // ignore - } else if (line.endsWith("@each-R@")) { - int blockEnd = indexAfter(template, i, "@end-R@"); - String[] block = stringsIn(template, i+1, blockEnd-1); - for (int rcat1 = rcat; rcat1 <= MAX_RCAT; rcat1++) - expandTemplate(block, false, rcat1, nrefs, nints, nlongs); - VAR.makeBindings(topLevel, rcat, nrefs, nints, nlongs); - i = blockEnd-1; continue; - } else if (line.endsWith("@each-Tv@")) { - int blockEnd = indexAfter(template, i, "@end-Tv@"); - String[] block = stringsIn(template, i+1, blockEnd-1); - expandTemplate(block, false, rcat, nrefs, nints, nlongs); - expandTemplateForPrims(block, false, rcat, nargs, nints+1, nlongs+1); - VAR.makeBindings(topLevel, rcat, nrefs, nints, nlongs); - i = blockEnd-1; continue; - } else { - System.out.println(VAR.transform(line)); - } - } - } -} -//}}} */ -//params=[0, 10, 4, 99, 0, 0] - static class A0 extends Adapter { - protected A0(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A0(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A0(e, i, c, t); } - protected Object invoke_L0() throws Throwable { return convert_L((Object)invoker.invokeExact(target)); } - protected Object invoke_I0() throws Throwable { return convert_I((int) invoker.invokeExact(target)); } - protected Object invoke_J0() throws Throwable { return convert_J((long) invoker.invokeExact(target)); } - protected Object invoke_F0() throws Throwable { return convert_F((float) invoker.invokeExact(target)); } - protected Object invoke_D0() throws Throwable { return convert_D((double)invoker.invokeExact(target)); } - } - static class A1 extends Adapter { - protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A1(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A1(e, i, c, t); } - protected Object invoke_L1(Object a0) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0)); } - protected Object invoke_I1(Object a0) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0)); } - protected Object invoke_J1(Object a0) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0)); } - protected Object invoke_F1(Object a0) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0)); } - protected Object invoke_D1(Object a0) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0)); } - } - static class A2 extends Adapter { - protected A2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A2(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A2(e, i, c, t); } - protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } - protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1)); } - protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1)); } - protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1)); } - protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1)); } - } - static class A3 extends Adapter { - protected A3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A3(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A3(e, i, c, t); } - protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2)); } - } - static class A4 extends Adapter { - protected A4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A4(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A4(e, i, c, t); } - protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3)); } - } - static class A5 extends Adapter { - protected A5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A5(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A5(e, i, c, t); } - protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - } - static class A6 extends Adapter { - protected A6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A6(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A6(e, i, c, t); } - protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - } - static class A7 extends Adapter { - protected A7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A7(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A7(e, i, c, t); } - protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - } - static class A8 extends Adapter { - protected A8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A8(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A8(e, i, c, t); } - protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - } - static class A9 extends Adapter { - protected A9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A9(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A9(e, i, c, t); } - protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - } - static class A10 extends Adapter { - protected A10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype - protected A10(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { super(e, i, c, t); } - protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) - { return new A10(e, i, c, t); } - protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - } -}
--- a/src/share/classes/java/dyn/InvokeDynamic.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -/** - * This is a place-holder class. Some HotSpot implementations need to see it. - */ -final class InvokeDynamic { - private InvokeDynamic() { throw new InternalError(); } // do not instantiate -}
--- a/src/share/classes/java/dyn/InvokeDynamicBootstrapError.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -/** - * Thrown to indicate that an {@code invokedynamic} instruction has - * failed to find its - * {@linkplain BootstrapMethod bootstrap method}, - * or the bootstrap method has - * failed to provide a - * {@linkplain CallSite call site} with a {@linkplain CallSite#getTarget target} - * of the correct {@linkplain MethodHandle#type method type}. - * - * @author John Rose, JSR 292 EG - * @since 1.7 - */ -public class InvokeDynamicBootstrapError extends LinkageError { - private static final long serialVersionUID = 292L; - - /** - * Constructs an {@code InvokeDynamicBootstrapError} with no detail message. - */ - public InvokeDynamicBootstrapError() { - super(); - } - - /** - * Constructs an {@code InvokeDynamicBootstrapError} with the specified - * detail message. - * - * @param s the detail message. - */ - public InvokeDynamicBootstrapError(String s) { - super(s); - } - - /** - * Constructs a {@code InvokeDynamicBootstrapError} with the specified - * detail message and cause. - * - * @param s the detail message. - * @param cause the cause, may be {@code null}. - */ - public InvokeDynamicBootstrapError(String s, Throwable cause) { - super(s, cause); - } - - /** - * Constructs a {@code InvokeDynamicBootstrapError} with the specified - * cause. - * - * @param cause the cause, may be {@code null}. - */ - public InvokeDynamicBootstrapError(Throwable cause) { - // cf. Throwable(Throwable cause) constructor. - super(cause == null ? null : cause.toString()); - initCause(cause); - } -}
--- a/src/share/classes/java/dyn/InvokeGeneric.java Fri Mar 18 00:03:24 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Softwar