<!-- ##### SECTION Title ##### -->
Class

<!-- ##### SECTION Short_Description ##### -->
Main class structure.

<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### STRUCT JavaClass ##### -->
<para>
Holds information about a class.
Everything is stored in native order with the exception of the of attributes.
They are stored big-endian inside their AttributeContainer.
</para>

@minor_version: Minor version of the class file specification.
@major_version: Major version of the class file specification.
@constant_pool: The constant pool.
@access_flags: A 16-bit access flag.
@interfaces_count: The number of interfaces implemented by the class.
@interfaces: An array with the constant pool indices of the ClassEntry entries 
    for the interfaces implemented by the class.
@fields_count: The number of fields in the class.
@fields: An array with the fields in this class.
@methods_count: The number of methods in this class.
@methods: An array with the method in this class.
@attributes_count: The number of attributes for this class.
@attributes: An array with the attributes for this class.

<!-- ##### MACRO JAVA_CLASS_MAGIC ##### -->
<para>
The first 4 bytes of every java class file.
</para>



<!-- ##### MACRO ACC_PUBLIC ##### -->
<para>
Mask for public visibility.
</para>



<!-- ##### MACRO ACC_PRIVATE ##### -->
<para>
Mask for private visibility.
</para>



<!-- ##### MACRO ACC_PROTECTED ##### -->
<para>
Mask for protected visibility.
</para>



<!-- ##### MACRO ACC_STATIC ##### -->
<para>
Mask for static.
</para>



<!-- ##### MACRO ACC_FINAL ##### -->
<para>
Mask for final.
</para>



<!-- ##### MACRO ACC_SYNCHRONIZED ##### -->
<para>
Mask for synchronized.
<note>
The flag is always set for classes but it has a different meaning.
It was used to indicate that the class has a super class which is
of course always the case except for java.lang.Object.
It is there for compatibility with 1.1 or older VMs. 
So you should ignore it in the context of classes.
</note>
</para>



<!-- ##### MACRO ACC_VOLATILE ##### -->
<para>
Mask for volatile.
</para>



<!-- ##### MACRO ACC_TRANSIENT ##### -->
<para>
Mask for transient.
</para>



<!-- ##### MACRO ACC_NATIVE ##### -->
<para>
Mask for native.
</para>



<!-- ##### MACRO ACC_INTERFACE ##### -->
<para>
Mask for interface.
</para>



<!-- ##### MACRO ACC_ABSTRACT ##### -->
<para>
Mask for abstract.
</para>



<!-- ##### MACRO ACC_STRICTFP ##### -->
<para>
Mask to indicate that strict IEEE-754 floating point behavior is required.
</para>



<!-- ##### FUNCTION jclass_class_new ##### -->
<para>
</para>

@filename: 
@classpath: 
@Returns: 
<!-- # Unused Parameters # -->
@bootclasspath: 


<!-- ##### FUNCTION jclass_class_new_from_buffer ##### -->
<para>
</para>

@data: 
@Returns: 


<!-- ##### FUNCTION jclass_class_new_from_file ##### -->
<para>
</para>

@classfile: 
@Returns: 


<!-- ##### FUNCTION jclass_class_free ##### -->
<para>
</para>

@javaclass: 


<!-- ##### FUNCTION jclass_class_get_vm_spec ##### -->
<para>
</para>

@javaclass: 
@Returns: 


<!-- ##### FUNCTION jclass_class_get_class_name ##### -->
<para>
</para>

@javaclass: 
@Returns: 


<!-- ##### FUNCTION jclass_class_get_super_class_name ##### -->
<para>
</para>

@javaclass: 
@Returns: 


<!-- ##### FUNCTION jclass_class_get_package_name ##### -->
<para>

</para>

@javaclass: 
@Returns: 


<!-- ##### FUNCTION jclass_class_get_interfaces ##### -->
<para>

</para>

@class_struct: 
@Returns: 


<!-- ##### FUNCTION jclass_class_get_sourcefile_name ##### -->
<para>
</para>

@javaclass: 
@Returns: 


