## Class ClassFile

    java.lang.Object
      |
      +--ClassFile

public class ClassFile
extends java.lang.Object

Field Summary
`private short` `access_flags`
`private de.dhbwstuttgart.typeinference.Menge` `attributes`
`private de.dhbwstuttgart.typeinference.Menge` `class_block`
`private java.lang.String` `class_name`
`private de.dhbwstuttgart.typeinference.Menge` `constant_pool`
`private boolean` `constructor_founded`
`private de.dhbwstuttgart.typeinference.Menge` `fields`
`boolean` `hamaDebug`
`private de.dhbwstuttgart.typeinference.Menge` `interfaces`
`private de.dhbwstuttgart.typeinference.Menge` `key_Menge`
`private static int` `magic`
`private static short` `major_version`
`private de.dhbwstuttgart.typeinference.Menge` `methods`
`private static short` `minor_version`
`private short` `super_class`
`private java.lang.String` `super_class_name`
`private boolean` `system_out`
`private boolean` `system_out2`
`private short` `this_class`

Constructor Summary
`ClassFile(boolean b)`

Method Summary
`void` `add_class(java.lang.String name, java.lang.String super_name, short acc_flag)`
`void` `add_classblock_Element(Assign a)`
`int` `add_CONSTANT_Class_info(java.lang.String name)`
`int` `add_CONSTANT_Integer_info(int i)`
`int` `add_CONSTANT_NameAndType_info(java.lang.String name, java.lang.String param_type)`
`int` `add_CONSTANT_String_info(java.lang.String s)`
`int` `add_CONSTANT_Utf8_info(java.lang.String name)`
`int` `add_field_ref(java.lang.String name, java.lang.String cl_name, java.lang.String type)`
`void` `add_field(java.lang.String name, java.lang.String type, short acc_flag)`
`int` `add_method_ref(java.lang.String cl_name, java.lang.String name, java.lang.String param_type)`
`void` `add_method(java.lang.String name, java.lang.String param_type, ParameterList param, Type type, Block block, short acc_flag, de.dhbwstuttgart.typeinference.Menge paralist)`
`void` `codegen()`
`short` `get_access_flags()`
`de.dhbwstuttgart.typeinference.Menge` `get_attributes()`
`de.dhbwstuttgart.typeinference.Menge` `get_class_block()`
`short` `get_constant_pool_element(byte b, java.lang.String id)`
`de.dhbwstuttgart.typeinference.Menge` `get_constant_pool()`
`boolean` `get_constructor_founded()`
`de.dhbwstuttgart.typeinference.Menge` `get_fields()`
`de.dhbwstuttgart.typeinference.Menge` `get_key_Menge()`
`de.dhbwstuttgart.typeinference.Menge` `get_methods()`
`short` `get_super_class()`
`boolean` `get_system_out()`
`short` `get_this_class()`
`void` `set_access_flags(short t)`
`void` `set_attributes(de.dhbwstuttgart.typeinference.Menge t)`
`void` `set_constant_pool(de.dhbwstuttgart.typeinference.Menge t)`
`void` `set_constructor_founded(boolean t)`
`void` `set_fields(de.dhbwstuttgart.typeinference.Menge t)`
`void` `set_methods(de.dhbwstuttgart.typeinference.Menge t)`
`void` `set_super_class(short t)`
`void` `set_system_out(boolean t)`
`void` `set_this_class(short t)`
`void` `writeByte(java.io.FileOutputStream f, byte i)`
`void` `writeByteArray(java.io.FileOutputStream f, byte[] b)`
`void` `writeInt(java.io.FileOutputStream f, int i)`
`void` `writeShort(java.io.FileOutputStream f, short i)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### hamaDebug

    public boolean hamaDebug

### magic

    private static int magic

### minor_version

    private static short minor_version

### major_version

    private static short major_version

### constant_pool

    private de.dhbwstuttgart.typeinference.Menge constant_pool

### access_flags

    private short access_flags

### this_class

    private short this_class

### super_class

    private short super_class

### fields

    private de.dhbwstuttgart.typeinference.Menge fields

### methods

    private de.dhbwstuttgart.typeinference.Menge methods

### attributes

    private de.dhbwstuttgart.typeinference.Menge attributes

### interfaces

    private de.dhbwstuttgart.typeinference.Menge interfaces

### key_Menge

    private de.dhbwstuttgart.typeinference.Menge key_Menge

### class_block

    private de.dhbwstuttgart.typeinference.Menge class_block

### class_name

    private java.lang.String class_name

### super_class_name

    private java.lang.String super_class_name

### constructor_founded

    private boolean constructor_founded

### system_out

    private boolean system_out

### system_out2

    private boolean system_out2

Constructor Detail

### ClassFile

    public ClassFile(boolean b)

Method Detail

### add_CONSTANT_Utf8_info

    public int add_CONSTANT_Utf8_info(java.lang.String name)

### add_CONSTANT_Class_info

    public int add_CONSTANT_Class_info(java.lang.String name)

### add_CONSTANT_NameAndType_info

    public int add_CONSTANT_NameAndType_info(java.lang.String name,
                                             java.lang.String param_type)

### add_CONSTANT_Integer_info

    public int add_CONSTANT_Integer_info(int i)

### add_CONSTANT_String_info

    public int add_CONSTANT_String_info(java.lang.String s)

### add_class

    public void add_class(java.lang.String name,
                          java.lang.String super_name,
                          short acc_flag)

### add_method

    public void add_method(java.lang.String name,
                           java.lang.String param_type,
                           ParameterList param,
                           Type type,
                           Block block,
                           short acc_flag,
                           de.dhbwstuttgart.typeinference.Menge paralist)
                    throws JVMCodeException

    `JVMCodeException`

### add_method_ref

    public int add_method_ref(java.lang.String cl_name,
                              java.lang.String name,
                              java.lang.String param_type)

### add_field

    public void add_field(java.lang.String name,
                          java.lang.String type,
                          short acc_flag)

### add_field_ref

    public int add_field_ref(java.lang.String name,
                             java.lang.String cl_name,
                             java.lang.String type)
                      throws JVMCodeException

    `JVMCodeException`

### set_constant_pool

    public void set_constant_pool(de.dhbwstuttgart.typeinference.Menge t)

### set_access_flags

    public void set_access_flags(short t)

### set_this_class

    public void set_this_class(short t)

### set_super_class

    public void set_super_class(short t)

### set_fields

    public void set_fields(de.dhbwstuttgart.typeinference.Menge t)

### set_methods

    public void set_methods(de.dhbwstuttgart.typeinference.Menge t)

### set_attributes

    public void set_attributes(de.dhbwstuttgart.typeinference.Menge t)

### set_constructor_founded

    public void set_constructor_founded(boolean t)

### set_system_out

    public void set_system_out(boolean t)

### add_classblock_Element

    public void add_classblock_Element(Assign a)

### get_constant_pool

    public de.dhbwstuttgart.typeinference.Menge get_constant_pool()

### get_access_flags

    public short get_access_flags()

### get_this_class

    public short get_this_class()

### get_super_class

    public short get_super_class()

### get_fields

    public de.dhbwstuttgart.typeinference.Menge get_fields()

### get_methods

    public de.dhbwstuttgart.typeinference.Menge get_methods()

### get_attributes

    public de.dhbwstuttgart.typeinference.Menge get_attributes()

### get_key_Menge

    public de.dhbwstuttgart.typeinference.Menge get_key_Menge()

### get_constructor_founded

    public boolean get_constructor_founded()

### get_system_out

    public boolean get_system_out()

### get_constant_pool_element

    public short get_constant_pool_element(byte b,
                                           java.lang.String id)

### get_class_block

    public de.dhbwstuttgart.typeinference.Menge get_class_block()

### codegen

    public void codegen()
                 throws JVMCodeException

    `JVMCodeException`

### writeInt

    public void writeInt(java.io.FileOutputStream f,
                         int i)

### writeShort

    public void writeShort(java.io.FileOutputStream f,
                           short i)

### writeByte

    public void writeByte(java.io.FileOutputStream f,
                          byte i)

### writeByteArray

    public void writeByteArray(java.io.FileOutputStream f,
                               byte[] b)