Class Subject.DynamicSubject

  • All Implemented Interfaces:
    Subject
    Enclosing interface:
    Subject

    public static final class Subject.DynamicSubject
    extends Object
    implements Subject
    A dynamic site: an invokedynamic call site (site == "indy"), a CONSTANT_Dynamic load, or a nested condy bootstrap argument.
    • Constructor Detail

      • DynamicSubject

        public DynamicSubject​(Bootstraps.BootstrapRef bootstrap,
                              String name,
                              String descriptor,
                              String site,
                              Instruction instruction,
                              EvalContext context)
        Binds the cursor to an invokedynamic or dynamic-constant site.
        Parameters:
        bootstrap - the resolved bootstrap method
        name - the call site name
        descriptor - the call site descriptor
        site - "indy" or "condy"
        instruction - the originating instruction, or null for a nested condy argument
        context - the shared evaluation context
    • Method Detail

      • name

        public String name()
        Returns:
        the call site name
      • descriptor

        public String descriptor()
        Returns:
        the call site descriptor
      • site

        public String site()
        Returns:
        "indy" or "condy", identifying which kind of site this is
      • instruction

        public Instruction instruction()
        Returns:
        the originating instruction, or null for a nested condy argument
      • kind

        public SubjectKind kind()
        Specified by:
        kind in interface Subject
        Returns:
        which variant this subject is, selecting the attributes that apply to it
      • context

        public EvalContext context()
        Specified by:
        context in interface Subject
        Returns:
        the evaluation context shared across every subject in a run