Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.bcel.classfile
Class ClassParser  view ClassParser download ClassParser.java

java.lang.Object
  extended byorg.apache.bcel.classfile.ClassParser

public final class ClassParser
extends java.lang.Object

Wrapper class that parses a given Java .class file. The method parse returns a JavaClass object on success. When an I/O error or an inconsistency occurs an appropiate exception is propagated back to the caller. The structure and the names comply, except for a few conveniences, exactly with the JVM specification 1.0. See this paper for further details about the structure of a bytecode file.

Version:
$Id: ClassParser.java 386056 2006-03-15 11:31:56Z tcurdt $

Field Summary
private  int access_flags
           
private  Attribute[] attributes
           
private static int BUFSIZE
           
private  int class_name_index
           
private  ConstantPool constant_pool
           
private  Field[] fields
           
private  java.io.DataInputStream file
           
private  java.lang.String file_name
           
private  boolean fileOwned
           
private  int[] interfaces
           
private  boolean is_zip
           
private  int major
           
private  Method[] methods
           
private  int minor
           
private  int superclass_name_index
           
private  java.lang.String zip_file
           
 
Constructor Summary
ClassParser(java.io.InputStream file, java.lang.String file_name)
          Parse class from the given stream.
ClassParser(java.lang.String file_name)
          Parse class from given .class file.
ClassParser(java.lang.String zip_file, java.lang.String file_name)
          Parse class from given .class file in a ZIP-archive
 
Method Summary
 JavaClass parse()
          Parse the given Java class file and return an object that represents the contained data, i.e., constants, methods, fields and commands.
private  void readAttributes()
          Read information about the attributes of the class.
private  void readClassInfo()
          Read information about the class and its super class.
private  void readConstantPool()
          Read constant pool entries.
private  void readFields()
          Read information about the fields of the class, i.e., its variables.
private  void readID()
          Check whether the header of the file is ok.
private  void readInterfaces()
          Read information about the interfaces implemented by this class.
private  void readMethods()
          Read information about the methods of the class.
private  void readVersion()
          Read major and minor version of compiler which created the file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

file

private java.io.DataInputStream file

fileOwned

private boolean fileOwned

file_name

private java.lang.String file_name

zip_file

private java.lang.String zip_file

class_name_index

private int class_name_index

superclass_name_index

private int superclass_name_index

major

private int major

minor

private int minor

access_flags

private int access_flags

interfaces

private int[] interfaces

constant_pool

private ConstantPool constant_pool

fields

private Field[] fields

methods

private Method[] methods

attributes

private Attribute[] attributes

is_zip

private boolean is_zip

BUFSIZE

private static final int BUFSIZE
See Also:
Constant Field Values
Constructor Detail

ClassParser

public ClassParser(java.io.InputStream file,
                   java.lang.String file_name)
Parse class from the given stream.


ClassParser

public ClassParser(java.lang.String file_name)
            throws java.io.IOException
Parse class from given .class file.


ClassParser

public ClassParser(java.lang.String zip_file,
                   java.lang.String file_name)
Parse class from given .class file in a ZIP-archive

Method Detail

parse

public JavaClass parse()
                throws java.io.IOException,
                       ClassFormatException
Parse the given Java class file and return an object that represents the contained data, i.e., constants, methods, fields and commands. A ClassFormatException is raised, if the file is not a valid .class file. (This does not include verification of the byte code as it is performed by the java interpreter).


readAttributes

private final void readAttributes()
                           throws java.io.IOException,
                                  ClassFormatException
Read information about the attributes of the class.


readClassInfo

private final void readClassInfo()
                          throws java.io.IOException,
                                 ClassFormatException
Read information about the class and its super class.


readConstantPool

private final void readConstantPool()
                             throws java.io.IOException,
                                    ClassFormatException
Read constant pool entries.


readFields

private final void readFields()
                       throws java.io.IOException,
                              ClassFormatException
Read information about the fields of the class, i.e., its variables.


readID

private final void readID()
                   throws java.io.IOException,
                          ClassFormatException
Check whether the header of the file is ok. Of course, this has to be the first action on successive file reads.


readInterfaces

private final void readInterfaces()
                           throws java.io.IOException,
                                  ClassFormatException
Read information about the interfaces implemented by this class.


readMethods

private final void readMethods()
                        throws java.io.IOException,
                               ClassFormatException
Read information about the methods of the class.


readVersion

private final void readVersion()
                        throws java.io.IOException,
                               ClassFormatException
Read major and minor version of compiler which created the file.