def do_classdesc(self, parent=None, ident=<NUM_LIT:0>):
<EOL>clazz = JavaClass()<EOL>log_debug("<STR_LIT>", ident)<EOL>ba = self._readString()<EOL>clazz.name = ba<EOL>log_debug("<STR_LIT>" % ba, ident)<EOL>(serialVersionUID, newHandle, classDescFlags) = self._readStruct("<STR_LIT>")<EOL>clazz.serialVersionUID = serialVersionUID<EOL>clazz.flags = classDescFlags<EOL>self._add_reference(clazz)<EOL>log_debug("<STR_LIT>" % (serialVersionUID, newHandle, classDescFlags), ident)<EOL>(length, ) = self._readStruct("<STR_LIT>")<EOL>log_debug("<STR_LIT>" % length, ident)<EOL>clazz.fields_names = []<EOL>clazz.fields_types = []<EOL>for _ in range(length):<EOL><INDENT>(typecode, ) = self._readStruct("<STR_LIT>")<EOL>field_name = self._readString()<EOL>field_type = None<EOL>field_type = self._convert_char_to_type(typecode)<EOL>if field_type == self.TYPE_ARRAY:<EOL><INDENT>_, field_type = self._read_and_exec_opcode(<EOL>ident=ident+<NUM_LIT:1>, expect=[self.TC_STRING, self.TC_REFERENCE])<EOL>assert isinstance(field_type, str)<EOL>
do_classdesc