< prev index next >

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

Print this page
rev 58428 : [mq]: XXXXXXX-typos


 519      *   representable in constant pool. If necessary, the factory would call
 520      *   {@code toString} to perform a one-time String conversion.</li>
 521      *
 522      *   <li><em>Any other char value:</em> a single character constant.</li>
 523      * </ul>
 524      *
 525      * <p>Assume the linkage arguments are as follows:
 526      *
 527      * <ul>
 528      *   <li>{@code concatType}, describing the {@code CallSite} signature</li>
 529      *   <li>{@code recipe}, describing the String recipe</li>
 530      *   <li>{@code constants}, the vararg array of constants</li>
 531      * </ul>
 532      *
 533      * <p>Then the following linkage invariants must hold:
 534      *
 535      * <ul>
 536      *   <li>The number of parameter slots in {@code concatType} is less than
 537      *       or equal to 200</li>
 538      *
 539      *   <li>The parameter count in {@code concatType} equals to number of \1 tags
 540      *   in {@code recipe}</li>
 541      *
 542      *   <li>The return type in {@code concatType} is assignable
 543      *   from {@link java.lang.String}, and matches the return type of the
 544      *   returned {@link MethodHandle}</li>
 545      *
 546      *   <li>The number of elements in {@code constants} equals to number of \2
 547      *   tags in {@code recipe}</li>
 548      * </ul>
 549      *
 550      * @param lookup    Represents a lookup context with the accessibility
 551      *                  privileges of the caller. Specifically, the lookup
 552      *                  context must have
 553      *                  {@linkplain MethodHandles.Lookup#hasFullPrivilegeAccess()
 554      *                  full privilege access}.
 555      *                  When used with {@code invokedynamic}, this is stacked
 556      *                  automatically by the VM.
 557      * @param name      The name of the method to implement. This name is
 558      *                  arbitrary, and has no meaning for this linkage method.
 559      *                  When used with {@code invokedynamic}, this is provided
 560      *                  by the {@code NameAndType} of the {@code InvokeDynamic}
 561      *                  structure and is stacked automatically by the VM.
 562      * @param concatType The expected signature of the {@code CallSite}.  The
 563      *                  parameter types represent the types of dynamic concatenation
 564      *                  arguments; the return type is always assignable from {@link
 565      *                  java.lang.String}.  When used with {@code
 566      *                  invokedynamic}, this is provided by the {@code




 519      *   representable in constant pool. If necessary, the factory would call
 520      *   {@code toString} to perform a one-time String conversion.</li>
 521      *
 522      *   <li><em>Any other char value:</em> a single character constant.</li>
 523      * </ul>
 524      *
 525      * <p>Assume the linkage arguments are as follows:
 526      *
 527      * <ul>
 528      *   <li>{@code concatType}, describing the {@code CallSite} signature</li>
 529      *   <li>{@code recipe}, describing the String recipe</li>
 530      *   <li>{@code constants}, the vararg array of constants</li>
 531      * </ul>
 532      *
 533      * <p>Then the following linkage invariants must hold:
 534      *
 535      * <ul>
 536      *   <li>The number of parameter slots in {@code concatType} is less than
 537      *       or equal to 200</li>
 538      *
 539      *   <li>The parameter count in {@code concatType} is equal to number of \1 tags
 540      *   in {@code recipe}</li>
 541      *
 542      *   <li>The return type in {@code concatType} is assignable
 543      *   from {@link java.lang.String}, and matches the return type of the
 544      *   returned {@link MethodHandle}</li>
 545      *
 546      *   <li>The number of elements in {@code constants} is equal to number of \2
 547      *   tags in {@code recipe}</li>
 548      * </ul>
 549      *
 550      * @param lookup    Represents a lookup context with the accessibility
 551      *                  privileges of the caller. Specifically, the lookup
 552      *                  context must have
 553      *                  {@linkplain MethodHandles.Lookup#hasFullPrivilegeAccess()
 554      *                  full privilege access}.
 555      *                  When used with {@code invokedynamic}, this is stacked
 556      *                  automatically by the VM.
 557      * @param name      The name of the method to implement. This name is
 558      *                  arbitrary, and has no meaning for this linkage method.
 559      *                  When used with {@code invokedynamic}, this is provided
 560      *                  by the {@code NameAndType} of the {@code InvokeDynamic}
 561      *                  structure and is stacked automatically by the VM.
 562      * @param concatType The expected signature of the {@code CallSite}.  The
 563      *                  parameter types represent the types of dynamic concatenation
 564      *                  arguments; the return type is always assignable from {@link
 565      *                  java.lang.String}.  When used with {@code
 566      *                  invokedynamic}, this is provided by the {@code


< prev index next >