Beispiel #1
0
def cli_simplify_classinfo(options, info, data=None):
    from javatools import platform_from_version

    if data is None:
        data = dict()

    if options.class_provides:
        data["class_provides"] = info.get_provides(options.api_ignore)
    if options.class_requires:
        data["class_requires"] = info.get_requires(options.api_ignore)

    data["name"] = info.pretty_this()
    data["extends"] = info.pretty_super()
    data["implements"] = tuple(info.pretty_interfaces())
    data["source_file"] = info.get_sourcefile()

    ifonly(data, "signature", info.get_signature())
    ifonly(data, "enclosing_method", info.get_enclosingmethod())

    data["version"] = info.get_version()
    data["platform"] = platform_from_version(*info.version)

    if options.constpool:
        data["constants_pool"] = tuple(info.cpool.pretty_constants())

    data["fields"] = cli_simplify_fields(options, info)
    data["methods"] = cli_simplify_methods(options, info)

    return data
def cli_simplify_classinfo(options, info, data=None):
    if data is None:
        data = dict()

    if options.class_provides:
        data["class_provides"] = info.get_provides(options.api_ignore)
    if options.class_requires:
        data["class_requires"] = info.get_requires(options.api_ignore)

    data["name"] = info.pretty_this()
    data["extends"] = info.pretty_super()
    data["implements"] = tuple(info.pretty_interfaces())
    data["source_file"] = info.get_sourcefile()

    ifonly(data, "signature", info.get_signature())
    ifonly(data, "enclosing_method", info.get_enclosingmethod())

    data["version"] = info.get_version()
    data["platform"] = platform_from_version(*info.version)

    if options.constpool:
        data["constants_pool"] = tuple(info.cpool.pretty_constants())

    data["fields"] = cli_simplify_fields(options, info)
    data["methods"] = cli_simplify_methods(options, info)

    return data
Beispiel #3
0
def cli_print_classinfo(options, info):
    from javatools import platform_from_version

    if options.class_provides or options.class_requires:
        if options.class_provides:
            cli_class_provides(options, info)
        if options.class_requires:
            cli_class_requires(options, info)
        return

    sourcefile = info.get_sourcefile()
    if sourcefile:
        print "Compiled from \"%s\"" % sourcefile

    print info.pretty_descriptor(),

    if options.verbose or options.show == HEADER:
        print
        if info.get_sourcefile():
            print "  SourceFile: \"%s\"" % info.get_sourcefile()
        if info.get_signature():
            print "  Signature:", info.get_signature()

        if info.get_annotations():
            print "  RuntimeVisibleAnnotations:"
            index = 0
            for anno in info.get_annotations():
                print "  %i: %s" % index, anno.pretty_annotation()

        if info.get_enclosingmethod():
            print "  EnclosingMethod:", info.get_enclosingmethod()
        major, minor = info.get_version()
        print "  minor version:", major
        print "  major version:", minor
        platform = platform_from_version(*info.version) or "unknown"
        print "  Platform:", platform

    if options.constpool:
        print "  Constants pool:"

        # we don't use the info.pretty_constants() generator here
        # because we actually want numbers for the entries, and that
        # generator skips them.
        cpool = info.cpool

        for i in xrange(1, len(cpool.consts)):
            t, v = cpool.pretty_const(i)
            if t:
                # skipping the None consts, which would be the entries
                # comprising the second half of a long or double value
                print "const #%i = %s\t%s;" % (i, t, v)
        print

    if options.show == HEADER:
        return

    print "{"

    for field in info.fields:
        if should_show(options, field):
            print_field(options, field)

    for method in info.methods:
        if should_show(options, method):
            print_method(options, method)

    print "}"
    print

    return 0
def cli_print_classinfo(options, info):
    if options.class_provides or options.class_requires:
        if options.class_provides:
            cli_class_provides(options, info)
        if options.class_requires:
            cli_class_requires(options, info)
        return

    sourcefile = info.get_sourcefile()
    if sourcefile:
        print("Compiled from \"%s\"" % sourcefile)

    print(info.pretty_descriptor())

    if options.verbose or options.show == SHOW_HEADER:
        print("")
        if info.get_sourcefile():
            print("  SourceFile: \"%s\"" % info.get_sourcefile())
        if info.get_signature():
            print("  Signature:", info.get_signature())

        if info.get_annotations():
            print("  RuntimeVisibleAnnotations:")
            index = 0
            for anno in info.get_annotations():
                print("  %i: %s" % (index, anno.pretty_annotation()))

        if info.get_enclosingmethod():
            print("  EnclosingMethod:", info.get_enclosingmethod())
        major, minor = info.get_version()
        print("  minor version:", major)
        print("  major version:", minor)
        platform = platform_from_version(*info.version) or "unknown"
        print("  Platform:", platform)

    if options.constpool:
        print("  Constants pool:")

        # we don't use the info.pretty_constants() generator here
        # because we actually want numbers for the entries, and that
        # generator skips them.
        cpool = info.cpool

        for i in xrange(1, len(cpool.consts)):
            t, v = cpool.pretty_const(i)
            if t:
                # skipping the None consts, which would be the entries
                # comprising the second half of a long or double value
                print("const #%i = %s\t%s;" % (i, t, v))
        print("")

    if options.show == SHOW_HEADER:
        return

    print("{")

    for field in info.fields:
        if should_show(options, field):
            print_field(options, field)

    for method in info.methods:
        if should_show(options, method):
            print_method(options, method)

    print("}")
    print("")

    return 0