# Package org.apache.bcel.classfile

package org.apache.bcel.classfile
Classes that describe the structure of a Java class file and a class file parser.

- Related Packages
  Package
  Description
  org.apache.bcel
  Basic classes for the Apache Byte Code Engineering Library (BCEL) and constants defined by the JVM specification.
  org.apache.bcel.generic
  Generic part of the Apache Byte Code Engineering Library (BCEL), classes to dynamically modify class objects and byte code instructions.
  org.apache.bcel.util
  Utility classes for the Apache Byte Code Engineering Library (BCEL), namely: Collection classes for JavaClass objects A converter for class files to HTML A tool to find instructions patterns via regular expressions A class to find classes as defined in the CLASSPATH A class loader that allows to create classes at run time
  org.apache.bcel.verifier
  BCEL's verifier JustIce is there to help you dump correct Java class files created or modified with BCEL.
- Class
  Description
  AccessFlags
  Super class for all objects that have modifiers like private, final, ...
  AnnotationDefault
  Represents the default value of a annotation for a method info.
  AnnotationElementValue
  AnnotationEntry
  Represents one annotation in the annotation table
  Annotations
  base class for annotations
  ArrayElementValue
  Attribute
  Abstract super class for Attribute objects.
  AttributeReader
  Deprecated.
  Use UnknownAttributeReader instead
  BootstrapMethod
  This class represents a bootstrap method attribute, i.e., the bootstrap method ref, the number of bootstrap arguments and an array of the bootstrap arguments.
  BootstrapMethods
  This class represents a BootstrapMethods attribute.
  ClassElementValue
  ClassFormatException
  Thrown when the BCEL attempts to read a class file and determines that a class is malformed or otherwise cannot be interpreted as a class file.
  ClassParser
  Wrapper class that parses a given Java .class file.
  Code
  This class represents a chunk of Java byte code contained in a method.
  CodeException
  This class represents an entry in the exception table of the Code attribute and is used only there.
  Constant
  Abstract superclass for classes to represent the different constant types in the constant pool of a class file.
  ConstantClass
  This class is derived from the abstract `Constant` and represents a reference to a (external) class.
  ConstantCP
  Abstract super class for Fieldref, Methodref, InterfaceMethodref and InvokeDynamic constants.
  ConstantDouble
  This class is derived from the abstract `Constant` and represents a reference to a Double object.
  ConstantDynamic
  This class is derived from the abstract `Constant` and represents a reference to a dynamically computed constant.
  ConstantFieldref
  This class represents a constant pool reference to a field.
  ConstantFloat
  This class is derived from the abstract `Constant` and represents a reference to a float object.
  ConstantInteger
  This class is derived from the abstract `Constant` and represents a reference to an int object.
  ConstantInterfaceMethodref
  This class represents a constant pool reference to an interface method.
  ConstantInvokeDynamic
  This class is derived from the abstract `Constant` and represents a reference to a invoke dynamic.
  ConstantLong
  This class is derived from the abstract `Constant` and represents a reference to a long object.
  ConstantMethodHandle
  This class is derived from the abstract `Constant` and represents a reference to a method handle.
  ConstantMethodref
  This class represents a constant pool reference to a method.
  ConstantMethodType
  This class is derived from the abstract `Constant` and represents a reference to a method type.
  ConstantModule
  This class is derived from the abstract `Constant` and represents a reference to a module.
  ConstantNameAndType
  This class is derived from the abstract `Constant` and represents a reference to the name and signature of a field or method.
  ConstantObject
  This interface denotes those constants that have a "natural" value, such as ConstantLong, ConstantString, and so on.
  ConstantPackage
  This class is derived from the abstract `Constant` and represents a reference to a package.
  ConstantPool
  This class represents the constant pool, i.e., a table of constants, of a parsed classfile.
  ConstantString
  This class is derived from the abstract `Constant` and represents a reference to a String object.
  ConstantUtf8
  Extends the abstract `Constant` to represent a reference to a UTF-8 encoded string.
  ConstantValue
  This class is derived from Attribute and represents a constant value, i.e., a default value for initializing a class field.
  Deprecated
  This class is derived from Attribute and denotes that this is a deprecated method.
  DescendingVisitor
  Traverses a JavaClass with another Visitor object 'piggy-backed' that is applied to all components of a JavaClass object.
  ElementValue
  The element_value structure is documented at https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.7.16.1
  ElementValuePair
  An annotation's element value pair.
  EmptyVisitor
  Visitor with empty method bodies, can be extended and used in conjunction with the DescendingVisitor class, for example.
  EnclosingMethod
  This attribute exists for local or anonymous classes and ... there can be only one.
  EnumElementValue
  ExceptionTable
  This class represents the table of exceptions that are thrown by a method.
  Field
  This class represents the field info structure, i.e., the representation for a variable in the class.
  FieldOrMethod
  Abstract super class for fields and methods.
  InnerClass
  This class represents a inner class attribute, i.e., the class indices of the inner and outer classes, the name and the attributes of the inner class.
  InnerClasses
  This class is derived from Attribute and denotes that this class is an Inner class of another. to the source file of this class.
  InvalidMethodSignatureException
  Thrown when the BCEL attempts to read a class file and determines that a class is malformed or otherwise cannot be interpreted as a class file.
  JavaClass
  Represents a Java class, i.e., the data structures, constant pool, fields, methods and commands contained in a Java .class file.
  LineNumber
  This class represents a (PC offset, line number) pair, i.e., a line number in the source that corresponds to a relative address in the byte code.
  LineNumberTable
  This class represents a table of line numbers for debugging purposes.
  LocalVariable
  This class represents a local variable within a method.
  LocalVariableTable
  This class represents colection of local variables in a method.
  LocalVariableTypeTable
  Method
  This class represents the method info structure, i.e., the representation for a method in the class.
  MethodParameter
  Entry of the parameters table.
  MethodParameters
  This class represents a MethodParameters attribute.
  Module
  This class is derived from Attribute and represents the list of modules required, exported, opened or provided by a module.
  ModuleExports
  This class represents an entry in the exports table of the Module attribute.
  ModuleMainClass
  This class is derived from Attribute and indicates the main class of a module.
  ModuleOpens
  This class represents an entry in the opens table of the Module attribute.
  ModulePackages
  This class is derived from Attribute and represents the list of packages that are exported or opened by the Module attribute.
  ModuleProvides
  This class represents an entry in the provides table of the Module attribute.
  ModuleRequires
  This class represents an entry in the requires table of the Module attribute.
  NestHost
  This class is derived from Attribute and records the nest host of the nest to which the current class or interface claims to belong.
  NestMembers
  This class is derived from Attribute and records the classes and interfaces that are authorized to claim membership in the nest hosted by the current class or interface.
  Node
  Denote class to have an accept method();
  ParameterAnnotationEntry
  represents one parameter annotation in the parameter annotation table
  ParameterAnnotations
  base class for parameter annotations
  PMGClass
  This class is derived from Attribute and represents a reference to a PMG attribute.
  Record
  Extends `Attribute` and records the classes and interfaces that are authorized to claim membership in the nest hosted by the current class or interface.
  RecordComponentInfo
  Record component info from a record.
  RuntimeInvisibleAnnotations
  An annotation that is represented in the class file but is not provided to the JVM.
  RuntimeInvisibleParameterAnnotations
  Represents a parameter annotation that is represented in the class file but is not provided to the JVM.
  RuntimeVisibleAnnotations
  An annotation that is represented in the class file and is provided to the JVM.
  RuntimeVisibleParameterAnnotations
  Represents a parameter annotation that is represented in the class file and is provided to the JVM.
  Signature
  This class is derived from Attribute and represents a reference to a GJ attribute.
  SimpleElementValue
  SourceFile
  This class is derived from Attribute and represents a reference to the source file of this class.
  StackMap
  This class represents a stack map attribute used for preverification of Java classes for the Java 2 Micro Edition (J2ME).
  StackMapEntry
  This class represents a stack map entry recording the types of local variables and the of stack items at a given byte code offset.
  StackMapType
  This class represents the type of a local variable or item on stack used in the StackMap entries.
  Synthetic
  This class is derived from Attribute and declares this class as 'synthetic', i.e., it needs special handling.
  Unknown
  This class represents a reference to an unknown (i.e., application-specific) attribute of a class.
  UnknownAttributeReader
  Unknown (non-standard) attributes may be read via user-defined factory objects that can be registered with the Attribute.addAttributeReader method.
  Utility
  Utility functions that do not really belong to any class in particular.
  Visitor
  Interface to make use of the Visitor pattern programming style.