def javaClassToHtml(javaClass, level=0): """return html class representation.""" if type(javaClass) is StringType or type(javaClass) is UnicodeType: class_ = Class.forName(javaClass) className = javaClass else: class_ = javaClass className = javaClass.__name__ if Class.isInterface(class_): typeStr = 'interface' elif Modifier.isAbstract(Class.getModifiers(class_)): typeStr = 'abstract class' else: typeStr = 'class' #indent = (' '*level+1)*4) indent = ' ' * (level + 1) * 4 header = '%s<p>%s %s' % (indent, typeStr, className) super_ = Class.getSuperclass(class_) if super_ is not None: header += ' extends ' + Class.getName(super_) interfaces = Class.getInterfaces(class_) if len(interfaces) > 0: interfacesNames = join(map(Class.getName, interfaces), ', ') header += ' implements %s' % (interfacesNames) body = membersToHtml(lambda: Class.getDeclaredFields(class_), level) body += membersToHtml(lambda: Class.getDeclaredConstructors(class_), level) body += membersToHtml(lambda: Class.getDeclaredMethods(class_), level) body = '%s{</p>\n%s<ul class="ind%i">\n%s' % (header, indent, level, body) body = boldJavaKeywords(classLink(className, body)) li = '%s<li>\n%s\n%s</li>\n' ind2 = (' ' * (level + 2) * 4) for cl in Class.getDeclaredClasses(class_): body += li % (ind2, javaClassToHtml(Class.getName(cl), level+1), \ indent*2) return '%s%s</ul>}' % (body, indent)
def emit_java_expression(klass, name): try: cog.out(CONVERSIONS[klass].to_java_format % name) except KeyError: if klass.isPrimitive(): raise Exception("You need a converter for %s" % klass.getName()) simpleName = Class.getName(klass) if klass.isArray(): simpleName = Class.getSimpleName(klass) if simpleName != 'java.lang.Object': cog.out('(%s)' % simpleName) cog.out('%s.__tojava__(%s.class)' % (name, simpleName))