<s> from laikaboss . si_module import SI_MODULE <EOL> from laikaboss . objectmodel import ScanError <EOL> from javatools import unpack_class , Unimplemented , ClassUnpackException <EOL> class META_JAVA_CLASS ( SI_MODULE ) : <EOL> def __init__ ( self , ) : <EOL> self . module_name = "<STR_LIT>" <EOL> def _run ( self , scanObject , result , depth , args ) : <EOL> moduleResult = [ ] <EOL> try : <EOL> class_obj = unpack_class ( scanObject . buffer ) <EOL> class_requires = class_obj . get_requires ( ) <EOL> scanObject . addMetadata ( self . module_name , '<STR_LIT>' , class_requires ) <EOL> class_provides = class_obj . get_provides ( ) <EOL> scanObject . addMetadata ( self . module_name , '<STR_LIT>' , class_provides ) <EOL> class_constants = tuple ( class_obj . cpool . pretty_constants ( ) ) <EOL> constantsDict = dict ( ( i , v ) for i , t , v in class_constants ) <EOL> scanObject . addMetadata ( self . module_name , '<STR_LIT>' , constantsDict ) <EOL> except ScanError : <EOL> raise <EOL> except Unimplemented : <EOL> scanObject . addFlag ( '<STR_LIT>' ) <EOL> except ClassUnpackException : <EOL> scanObject . addFlag ( '<STR_LIT>' ) <EOL> return moduleResult </s>
