src/java.base/share/classes/java/lang/invoke/BootstrapCallInfo.java

9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.lang.invoke;
27
28 import java.lang.invoke.MethodHandles.Lookup;
29
30 /**
31 * An interface providing full static information about a particular
32 * call to a
33 * <a href="package-summary.html#bsm">bootstrap method</a> of an
34 * dynamic call site or dynamic constant.
35 * This information includes the method itself, the associated
36 * name and type, and any associated static arguments.
37 * <p>
38 * If a bootstrap method declares exactly two arguments, and is
39 * not of variable arity, then it is fed only two arguments by
40 * the JVM, the {@linkplain Lookup lookup object} and an instance
41 * of {@code BootstrapCallInfo} which supplies the rest of the
42 * information about the call.
43 * <p>
44 * The API for accessing the static arguments allows the bootstrap
45 * method to reorder the resolution (in the constant pool) of the
46 * static arguments, and to catch errors resulting from the resolution.
47 * This mode of evaluation <em>pulls</em> bootstrap parameters from
48 * the JVM under control of the bootstrap method, as opposed to

9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.lang.invoke;
27
28 import java.lang.invoke.MethodHandles.Lookup;
29 import java.util.Arrays; 30 import java.util.List;
31
32 /**
33 * An interface providing full static information about a particular
34 * call to a
35 * <a href="package-summary.html#bsm">bootstrap method</a> of an
36 * dynamic call site or dynamic constant.
37 * This information includes the method itself, the associated
38 * name and type, and any associated static arguments.
39 * <p>
40 * If a bootstrap method declares exactly two arguments, and is
41 * not of variable arity, then it is fed only two arguments by
42 * the JVM, the {@linkplain Lookup lookup object} and an instance
43 * of {@code BootstrapCallInfo} which supplies the rest of the
44 * information about the call.
45 * <p>
46 * The API for accessing the static arguments allows the bootstrap
47 * method to reorder the resolution (in the constant pool) of the
48 * static arguments, and to catch errors resulting from the resolution.
49 * This mode of evaluation <em>pulls</em> bootstrap parameters from
50 * the JVM under control of the bootstrap method, as opposed to