Class InjectionPointData


  • public class InjectionPointData
    extends java.lang.Object
    Data read from an At annotation and passed into an InjectionPoint ctor
    • Constructor Summary

      Constructors 
      Constructor Description
      InjectionPointData​(IInjectionPointContext context, java.lang.String at, java.util.List<java.lang.String> args, java.lang.String target, java.lang.String slice, int ordinal, int opcode, java.lang.String id, int flags)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ITargetSelector get​(java.lang.String key)
      Get the supplied value from the named args as a target selector, throws an exception if the argument cannot be parsed as a target selector
      boolean get​(java.lang.String key, boolean defaultValue)
      Get the supplied value from the named args, return defaultValue if the arg is not set
      int get​(java.lang.String key, int defaultValue)
      Get the supplied value from the named args, return defaultValue if the arg is not set
      java.lang.String get​(java.lang.String key, java.lang.String defaultValue)
      Get the supplied value from the named args, return defaultValue if the arg is not set
      <T extends java.lang.Enum<T>>
      T
      get​(java.lang.String key, T defaultValue)
      Get the supplied value from the named args, return defaultValue if the arg is not set
      java.lang.String getAt()
      Get the at value on the injector
      IInjectionPointContext getContext()
      Get the injection point context
      java.lang.String getDescription()
      Get a description of this injector for use in error messages
      java.lang.String getId()
      Get the id specified on the injection point (or null if not specified)
      LocalVariableDiscriminator getLocalVariableDiscriminator()  
      IMessageSink getMessageSink()
      Get the message sink for this injection point
      org.objectweb.asm.tree.MethodNode getMethod()
      Get the annotated method
      org.objectweb.asm.Type getMethodReturnType()
      Get the return type of the annotated method
      IMixinContext getMixin()
      Get the mixin context
      int getOpcode()
      Get the opcode specified on the injection point
      int getOpcode​(int defaultOpcode)
      Get the opcode specified on the injection point or return the default if no opcode was specified
      int getOpcode​(int defaultOpcode, int... validOpcodes)
      Get the opcode specified on the injection point or return the default if no opcode was specified or if the specified opcode does not appear in the supplied list of valid opcodes
      int[] getOpcodeList​(java.lang.String key, int[] defaultValue)
      Get a list of opcodes specified in the injection point arguments.
      int getOrdinal()
      Get the ordinal specified on the injection point
      org.objectweb.asm.tree.AnnotationNode getParent()
      Get the root annotation (eg.
      java.lang.String getSlice()
      Get the slice id specified on the injector
      InjectionPoint.Specifier getSpecifier()
      Get the specifier value parsed from the injector
      ITargetSelector getTarget()
      Get the target value specified on the injector
      InjectionPoint.RestrictTargetLevel getTargetRestriction()
      Get the target restriction specified in the annotation
      java.lang.String getType()
      Get the parsed constructor type for this injector
      boolean isUnsafe()
      Get whether the unsafe option is set on the injection point
      static java.lang.String parseType​(java.lang.String at)
      Parse a constructor type from the supplied at string
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • InjectionPointData

        public InjectionPointData​(IInjectionPointContext context,
                                  java.lang.String at,
                                  java.util.List<java.lang.String> args,
                                  java.lang.String target,
                                  java.lang.String slice,
                                  int ordinal,
                                  int opcode,
                                  java.lang.String id,
                                  int flags)
    • Method Detail

      • getMessageSink

        public IMessageSink getMessageSink()
        Get the message sink for this injection point
      • getAt

        public java.lang.String getAt()
        Get the at value on the injector
      • getType

        public java.lang.String getType()
        Get the parsed constructor type for this injector
      • getMixin

        public IMixinContext getMixin()
        Get the mixin context
      • getMethod

        public org.objectweb.asm.tree.MethodNode getMethod()
        Get the annotated method
      • getMethodReturnType

        public org.objectweb.asm.Type getMethodReturnType()
        Get the return type of the annotated method
      • getParent

        public org.objectweb.asm.tree.AnnotationNode getParent()
        Get the root annotation (eg. Inject)
      • getSlice

        public java.lang.String getSlice()
        Get the slice id specified on the injector
      • get

        public java.lang.String get​(java.lang.String key,
                                    java.lang.String defaultValue)
        Get the supplied value from the named args, return defaultValue if the arg is not set
        Parameters:
        key - argument name
        defaultValue - value to return if the arg is not set
        Returns:
        argument value or default if not set
      • get

        public int get​(java.lang.String key,
                       int defaultValue)
        Get the supplied value from the named args, return defaultValue if the arg is not set
        Parameters:
        key - argument name
        defaultValue - value to return if the arg is not set
        Returns:
        argument value or default if not set
      • get

        public boolean get​(java.lang.String key,
                           boolean defaultValue)
        Get the supplied value from the named args, return defaultValue if the arg is not set
        Parameters:
        key - argument name
        defaultValue - value to return if the arg is not set
        Returns:
        argument value or default if not set
      • get

        public <T extends java.lang.Enum<T>> T get​(java.lang.String key,
                                                   T defaultValue)
        Get the supplied value from the named args, return defaultValue if the arg is not set
        Type Parameters:
        T - enum type
        Parameters:
        key - argument name
        defaultValue - value to return if the arg is not set
        Returns:
        argument value or default if not set
      • get

        public ITargetSelector get​(java.lang.String key)
        Get the supplied value from the named args as a target selector, throws an exception if the argument cannot be parsed as a target selector
        Parameters:
        key - argument name
        Returns:
        argument value as a target selector
      • getTarget

        public ITargetSelector getTarget()
        Get the target value specified on the injector
      • getDescription

        public java.lang.String getDescription()
        Get a description of this injector for use in error messages
      • getOrdinal

        public int getOrdinal()
        Get the ordinal specified on the injection point
      • getOpcode

        public int getOpcode()
        Get the opcode specified on the injection point
      • getOpcode

        public int getOpcode​(int defaultOpcode)
        Get the opcode specified on the injection point or return the default if no opcode was specified
        Parameters:
        defaultOpcode - opcode to return if none specified
        Returns:
        opcode or default
      • getOpcode

        public int getOpcode​(int defaultOpcode,
                             int... validOpcodes)
        Get the opcode specified on the injection point or return the default if no opcode was specified or if the specified opcode does not appear in the supplied list of valid opcodes
        Parameters:
        defaultOpcode - opcode to return if none specified
        validOpcodes - valid opcodes
        Returns:
        opcode or default
      • getOpcodeList

        public int[] getOpcodeList​(java.lang.String key,
                                   int[] defaultValue)
        Get a list of opcodes specified in the injection point arguments. The opcodes can be specified as raw integer values or as their corresponding constant name from the Opcodes interface. All the values should be separated by spaces or commas. The returned array is sorted in order to make it suitable for use with the Arrays#binarySearch method.
        Parameters:
        key - argument name
        defaultValue - value to return if the key is not specified
        Returns:
        parsed opcodes as array or default value if the key is not specified in the args
      • getId

        public java.lang.String getId()
        Get the id specified on the injection point (or null if not specified)
      • isUnsafe

        public boolean isUnsafe()
        Get whether the unsafe option is set on the injection point
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • parseType

        public static java.lang.String parseType​(java.lang.String at)
        Parse a constructor type from the supplied at string
        Parameters:
        at - at to parse
        Returns:
        parsed constructor type