Merge pull request #41 from amirouche/master

added support for Python Java class objects as parameter of java methods that takes Java Class object as parameter
This commit is contained in:
Gabriel Pettier 2012-10-15 05:05:29 -07:00
commit 383cdf5742
4 changed files with 21 additions and 0 deletions

View File

@ -12,4 +12,5 @@ tests: build_ext
cd tests && javac org/jnius/MultipleMethods.java
cd tests && javac org/jnius/SimpleEnum.java
cd tests && javac org/jnius/InterfaceWithPublicEnum.java
cd tests && javac org/jnius/ClassArgument.java
cd tests && env PYTHONPATH=..:$(PYTHONPATH) nosetests -v

View File

@ -17,6 +17,7 @@ cdef void release_args(JNIEnv *j_env, list definition_args, jvalue *j_args, args
cdef void populate_args(JNIEnv *j_env, list definition_args, jvalue *j_args, args) except *:
# do the conversion from a Python object to Java from a Java definition
cdef JavaClassStorage jcs
cdef JavaObject jo
cdef JavaClass jc
cdef int index
@ -52,6 +53,9 @@ cdef void populate_args(JNIEnv *j_env, list definition_args, jvalue *j_args, arg
elif isinstance(py_arg, JavaObject):
jo = py_arg
j_args[index].l = jo.obj
elif isinstance(py_arg, MetaJavaClass):
jcs = py_arg.__cls_storage
j_args[index].l = jcs.j_cls
elif isinstance(py_arg, (tuple, list)):
j_args[index].l = convert_pyarray_to_java(j_env, argtype, py_arg)
else:

View File

@ -0,0 +1,8 @@
package org.jnius;
public class ClassArgument {
public static String getName(Class klass) {
return klass.toString();
}
}

View File

@ -0,0 +1,8 @@
import unittest
from jnius.reflect import autoclass
class BasicsTest(unittest.TestCase):
def test_static_methods(self):
ClassArgument = autoclass('org.jnius.ClassArgument')
self.assertEquals(ClassArgument.getName(ClassArgument), 'class org.jnius.ClassArgument')