Class ClassMethod

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int access
      Access flags for the method (public, protected etc).
      protected java.lang.String[] argNames
      Names of the arguments.
      protected java.lang.Object[] argTypes
      Types of the arguments.
      protected ClassEnhancer enhancer
      The parent enhancer.
      protected java.lang.String[] exceptions
      Exceptions that can be thrown.
      protected java.lang.String methodName
      Name of the method.
      protected java.lang.Object returnType
      Return type for the method
      protected MethodVisitor visitor
      Visitor for use in updating the method of the class (set in initialise).
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassMethod​(ClassEnhancer enhancer, java.lang.String name, int access, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames)
      Constructor.
      ClassMethod​(ClassEnhancer enhancer, java.lang.String name, int access, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames, java.lang.String[] exceptions)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Method to close the definition of the class method.
      boolean equals​(java.lang.Object o)
      Indicates whether some other object is "equal to" this one.
      abstract void execute()
      Method to add the contents of the class method.
      int getAccess()
      Accessor for the access
      protected ClassEnhancer getClassEnhancer()
      Convenience accessor for the ClassEnhancer
      java.lang.String getDescriptor()
      Accessor for the descriptor of the method.
      static java.lang.String getMethodAdditionMessage​(java.lang.String methodName, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames)
      Convenience method to generate a message that a method has been added.
      java.lang.String getName()
      Accessor for the method name
      EnhancementNamer getNamer()  
      int hashCode()
      Return hash code of this instance.
      void initialise()
      Default implementation of initialise, specifying the method based on the ClassMethod info.
      void initialise​(ClassVisitor classVisitor)
      Method to initialise the class method.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • enhancer

        protected ClassEnhancer enhancer
        The parent enhancer.
      • methodName

        protected java.lang.String methodName
        Name of the method.
      • access

        protected int access
        Access flags for the method (public, protected etc).
      • returnType

        protected java.lang.Object returnType
        Return type for the method
      • argTypes

        protected java.lang.Object[] argTypes
        Types of the arguments.
      • argNames

        protected java.lang.String[] argNames
        Names of the arguments.
      • exceptions

        protected java.lang.String[] exceptions
        Exceptions that can be thrown.
      • visitor

        protected MethodVisitor visitor
        Visitor for use in updating the method of the class (set in initialise).
    • Constructor Detail

      • ClassMethod

        public ClassMethod​(ClassEnhancer enhancer,
                           java.lang.String name,
                           int access,
                           java.lang.Object returnType,
                           java.lang.Object[] argTypes,
                           java.lang.String[] argNames)
        Constructor.
        Parameters:
        enhancer - ClassEnhancer
        name - Name of the method
        access - Access for the method (PUBLIC, PROTECTED etc)
        returnType - Return type
        argTypes - Argument type(s)
        argNames - Argument name(s)
      • ClassMethod

        public ClassMethod​(ClassEnhancer enhancer,
                           java.lang.String name,
                           int access,
                           java.lang.Object returnType,
                           java.lang.Object[] argTypes,
                           java.lang.String[] argNames,
                           java.lang.String[] exceptions)
        Constructor.
        Parameters:
        enhancer - ClassEnhancer
        name - Name of the method
        access - Access for the method (PUBLIC, PROTECTED etc)
        returnType - Return type
        argTypes - Argument type(s)
        argNames - Argument name(s)
        exceptions - Exceptions that can be thrown
    • Method Detail

      • initialise

        public void initialise()
        Default implementation of initialise, specifying the method based on the ClassMethod info.
      • initialise

        public void initialise​(ClassVisitor classVisitor)
        Method to initialise the class method.
        Parameters:
        classVisitor - Visitor for the class
      • getClassEnhancer

        protected ClassEnhancer getClassEnhancer()
        Convenience accessor for the ClassEnhancer
        Returns:
        ClassEnhancer
      • getDescriptor

        public java.lang.String getDescriptor()
        Accessor for the descriptor of the method.
        Returns:
        The descriptor
      • getName

        public java.lang.String getName()
        Accessor for the method name
        Returns:
        Name of the method
      • getAccess

        public int getAccess()
        Accessor for the access
        Returns:
        Access for the method
      • execute

        public abstract void execute()
        Method to add the contents of the class method.
      • close

        public void close()
        Method to close the definition of the class method. This implementation simply logs a debug message to category ENHANCER.
      • hashCode

        public int hashCode()
        Return hash code of this instance.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hash code of this instance
      • equals

        public boolean equals​(java.lang.Object o)
        Indicates whether some other object is "equal to" this one.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - the reference object with which to compare.
        Returns:
        true if this object is the same as the obj argument; false otherwise.
      • getMethodAdditionMessage

        public static java.lang.String getMethodAdditionMessage​(java.lang.String methodName,
                                                                java.lang.Object returnType,
                                                                java.lang.Object[] argTypes,
                                                                java.lang.String[] argNames)
        Convenience method to generate a message that a method has been added.
        Parameters:
        methodName - Name of the method
        returnType - Return type of the method
        argTypes - arg types for the method
        argNames - arg names for the method
        Returns:
        The message