Class MethodInfo

java.lang.Object
de.inetsoftware.classparser.MethodInfo
All Implemented Interfaces:
Member

public class MethodInfo extends Object implements Member
  • Field Details

  • Constructor Details

    • MethodInfo

      MethodInfo(DataInputStream input, ConstantPool constantPool, ClassFile classFile) throws IOException
      Read the method_info structure http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.6 http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#1513
      Parameters:
      input - the stream of the class file
      constantPool - the ConstantPool of the class
      classFile - the declaring class file
      Throws:
      IOException - if an I/O error occurs
  • Method Details

    • getDeclaringClassFile

      public ClassFile getDeclaringClassFile()
      Get the declaring class file of the method
      Returns:
      the ClassFile
    • getAccessFlags

      public int getAccessFlags()
      Get the access flags of the method. http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.6-200-A http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#1522
      Returns:
      the flags
    • isStatic

      public boolean isStatic()
      If the method is a static method. http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.6-200-A http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#1522
      Returns:
      true, if static
      See Also:
    • isNative

      public boolean isNative()
      If the method is native
      Returns:
      true, if abstract
    • isAbstract

      public boolean isAbstract()
      If the method is abstract
      Returns:
      true, if abstract
    • isSynthetic

      public boolean isSynthetic()
      If the method is synthetic
      Returns:
      true, if synthetic
    • isLambda

      public boolean isLambda()
      If the method is a synthetic lambda method
      Returns:
      true, if lambda method
    • getName

      public String getName()
      Description copied from interface: Member
      The simple name without package
      Specified by:
      getName in interface Member
      Returns:
      the name
    • getClassName

      public String getClassName()
      The class name of the declaring class like "java/lang/Object".
      Specified by:
      getClassName in interface Member
      Returns:
      the class name
    • getAttributes

      public Attributes getAttributes()
      Returns:
      the attributes
    • getCode

      public Code getCode() throws IOException
      Throws:
      IOException
    • getType

      public String getType()
      Get the signature of the method without generic types.
      Specified by:
      getType in interface Member
      Returns:
      the type
    • getSignature

      public String getSignature() throws IOException
      Get the signature of the method with generic types.
      Returns:
      the signature
      Throws:
      IOException - if an I/O error occurs
    • getExceptions

      public Exceptions getExceptions() throws IOException
      Throws:
      IOException
    • getAnnotation

      @Nullable public Map<String,Object> getAnnotation(String annotation) throws IOException
      Get a single annotation or null
      Parameters:
      annotation - the class name of the annotation
      Returns:
      the value or null if not exists
      Throws:
      IOException - if any I/O error occur
    • getConstantPool

      public ConstantPool getConstantPool()
      Get the constant pool of the the current class.
      Returns:
      the constant pool
    • setDeclaringClassFile

      void setDeclaringClassFile(@Nonnull String origClassName, @Nonnull ClassFile classFile)
      Replace the reference to the ClassFile
      Parameters:
      origClassName - the class name that should be replaced.
      classFile - the new value