コード例 #1
0
    def from_reflected_args(reflected_args, ctor_for=None, docs=None):
        # type: (Any, Any, Optional[OverloadSetDoc]) -> Overload
        if ctor_for is not None:
            return_type = ctor_for
        else:
            return_type = reflected_args.method.getReturnType()

        return_type = BasicType.from_type(return_type)
        argument_types = map(BasicType.from_type,
                             reflected_args.method.getParameterTypes())

        argument_names = get_argument_names(argument_types, docs)

        docstring = ''
        if docs:
            overload_docs = docs.get_overload(argument_types)
            if overload_docs:
                docstring = overload_docs.javadoc
                argument_types = [param.type for param in overload_docs.params]
                return_type = get_return_type(return_type, overload_docs)

        return Overload(return_type=return_type,
                        argument_types=argument_types,
                        argument_names=argument_names,
                        is_static=reflected_args.isStatic,
                        docstring=docstring)
コード例 #2
0
    def from_beanproperty(beanproperty, name):
        if beanproperty.setMethod:
            setter_type = beanproperty.setMethod.getParameterTypes()[0]
            setter_type = BasicType.from_type(setter_type)
        else:
            setter_type = None

        if beanproperty.getMethod:
            getter_type = beanproperty.getMethod.getReturnType()
            getter_type = BasicType.from_type(getter_type)
        else:
            getter_type = None

        return Property(name=name,
                        setter_type=setter_type,
                        getter_type=getter_type)
コード例 #3
0
    def from_package(package):
        packages = []
        classes = []
        for name, attr_ in get_members(package).iteritems():
            if name == '__name__':
                continue

            typename = BasicType.from_type(type(attr_)).proper_name

            if typename == 'javapackage':
                packages.append(Package.from_package(attr_))

            elif typename == 'java.lang.Class':
                try:
                    docs = ClassDoc('{}.{}'.format(package.__name__, name))
                except KeyError:
                    docs = None
                classes.append(Class.from_class(attr_, docs=docs))

        return Package(name=package.__name__,
                       classes=classes,
                       packages=packages)
コード例 #4
0
    def from_reflectedfield(reflectedfield, name, cls):
        name = name
        my_type = reflectedfield.field.getType()
        modifiers = Modifier(reflectedfield.field.getModifiers())

        value_repr = None
        has_value = False

        if modifiers.is_static and modifiers.is_final:
            try:
                value = getattr(cls, name)
                value_repr = pretty_repr(value)
                has_value = True
            except java.lang.IllegalArgumentException:
                pass

        return Field(
            name=name,
            my_type=BasicType.from_type(my_type),
            modifiers=modifiers,
            value_repr=value_repr,
            has_value=has_value,
        )