def test_cast(self): from java.lang import Boolean, Object b = Boolean(True) b_Object = cast(Object, b) self.assertIsNot(b, b_Object) self.assertEqual(b, b_Object) self.assertIs(Boolean.getClass(), b.getClass()) self.assertIs(Boolean.getClass(), b_Object.getClass()) self.assertIsNot(Object.getClass(), b_Object.getClass()) self.assertIs(b_Object, cast(Object, b)) self.assertIs(b, cast(Boolean, b_Object)) for obj in [Boolean, "Ljava/lang/Boolean;"]: with self.subTest(obj=obj): with self.assertRaisesRegex(TypeError, "cannot create java.lang.Boolean " "proxy from java.lang.Object instance"): cast(obj, Object()) with self.assertRaisesRegex(jclass("java.lang.NoClassDefFoundError"), "java.lang.Nonexistent"): cast("Ljava/lang/Nonexistent;", Object()) with self.assertRaisesRegex(ValueError, "Invalid JNI signature: 'java.lang.Object'"): cast("java.lang.Object", Object()) for obj in [0, True, None, int, str]: with self.subTest(obj=obj): with self.assertRaisesRegex(TypeError, f"{obj!r} is not a Java type"): cast(obj, Object())
def test_identity(self): from java.lang import Object, String Object_klass, String_klass = Object.getClass(), String.getClass() self.assertIsNot(Object_klass, String_klass) self.t.fieldKlass = Object_klass self.assertIs(Object_klass, self.t.fieldKlass) self.t.setKlass(String_klass) self.assertIs(String_klass, self.t.getKlass()) a1, a2 = [jarray(String)(x) for x in [["one", "two"], ["three", "four"]]] self.assertIsNot(a1, a2) self.t.fieldStringArray = a1 self.assertIs(a1, self.t.fieldStringArray) self.t.setStringArray(a2) self.assertIs(a2, self.t.getStringArray())
def test_cast(self): from java.lang import Boolean, Object b = Boolean(True) b_Object = cast(Object, b) self.assertIsNot(b, b_Object) self.assertEqual(b, b_Object) self.assertIs(Boolean.getClass(), b.getClass()) self.assertIs(Boolean.getClass(), b_Object.getClass()) self.assertIsNot(Object.getClass(), b_Object.getClass()) self.assertIs(b_Object, cast(Object, b)) self.assertIs(b, cast(Boolean, b_Object)) with self.assertRaisesRegexp( TypeError, "cannot create java.lang.Boolean proxy from " "java.lang.Object instance"): cast(Boolean, Object())
def getColumnClass(self, c): return Object.getClass(self.getValueAt(0, c))
def getColumnClass(self, c): return Object.getClass(self.getValueAt(0, c))
def getColumnClass(self, columnIndex): if columnIndex < 0 or columnIndex > len(self.classes): return JavaObject.getClass() return self.classes[columnIndex]
import sys from zipfile import ZipFile if len(sys.argv) < 2: print 'Usage:', sys.argv[0], '( --all | <jar>...)' sys.exit(1) if sys.argv[1] == '--all': jars = System.getProperty("java.class.path").split(File.pathSeparator) else: jars = sys.argv[1:] classLoader = FijiClassLoader() args = array([Object.getClass(zeros(0, String))], Class) def hasMainMethod(name): try: c = Class.forName(name, False, classLoader) return c.getMethod('main', args) != None except: return False for jar in jars: try: classLoader.addPath(jar) zip = ZipFile(jar, 'r') for file in zip.namelist():