From c27dd3dfc8720557a36effe171f21fbe1f4c0fe1 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Fri, 21 Apr 2017 12:14:06 +0100 Subject: [PATCH 01/53] Swift 3.1 --- examples | 2 +- java_util | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples b/examples index 4eeacce..d3dd11a 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit 4eeacce5c6f561317462a884f0936699e65fa75b +Subproject commit d3dd11a2907313c7ce9d9092987ffe3b8d14bbe9 diff --git a/java_util b/java_util index d888cf5..ba86907 160000 --- a/java_util +++ b/java_util @@ -1 +1 @@ -Subproject commit d888cf5ae94b5554cf0ba19603c7e8d308d57800 +Subproject commit ba86907a49e6b6f1de85ce3d79f739fca51350b2 From 840708d99179a90583eb9a490424be98d4e49c70 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 23 May 2017 16:51:56 +0100 Subject: [PATCH 02/53] Updated for 2017 --- com_jh/Sources/SwiftHello.swift | 2 +- com_jh/Sources/SwiftHelloTest.swift | 2 +- .../Sources/SwiftHelloTest_TestListener.swift | 210 +++++++++--------- .../SwiftHelloTest_TestResponderImpl.swift | 82 +++---- com_jh/Sources/SwiftHello_Listener.swift | 76 +++---- com_jh/Sources/SwiftHello_Responder.swift | 2 +- genie.jar | Bin 71929 -> 71923 bytes java_swift | 2 +- org_genie/Sources/SwiftTest.swift | 2 +- .../SwiftHelloTest_TestListenerProxy.java | 32 +-- .../com_jh/SwiftHello_ListenerProxy.java | 16 +- swift-android-samples | 2 +- 12 files changed, 214 insertions(+), 214 deletions(-) diff --git a/com_jh/Sources/SwiftHello.swift b/com_jh/Sources/SwiftHello.swift index 816e67f..4cbec9d 100644 --- a/com_jh/Sources/SwiftHello.swift +++ b/com_jh/Sources/SwiftHello.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue Dec 20 14:14:24 GMT 2016 /// +/// Tue May 23 16:32:20 BST 2017 /// /// interface com.jh.SwiftHello /// diff --git a/com_jh/Sources/SwiftHelloTest.swift b/com_jh/Sources/SwiftHelloTest.swift index dbd93a0..aeeb441 100644 --- a/com_jh/Sources/SwiftHelloTest.swift +++ b/com_jh/Sources/SwiftHelloTest.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue Dec 20 14:14:24 GMT 2016 /// +/// Tue May 23 16:32:21 BST 2017 /// /// interface com.jh.SwiftHelloTest /// diff --git a/com_jh/Sources/SwiftHelloTest_TestListener.swift b/com_jh/Sources/SwiftHelloTest_TestListener.swift index d4aca54..7bd118a 100644 --- a/com_jh/Sources/SwiftHelloTest_TestListener.swift +++ b/com_jh/Sources/SwiftHelloTest_TestListener.swift @@ -4,22 +4,12 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue Dec 20 14:14:24 GMT 2016 /// +/// Tue May 23 16:32:20 BST 2017 /// /// interface com.jh.SwiftHelloTest$TestListener /// public protocol SwiftHelloTest_TestListener: JavaProtocol { - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! - func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) func booleanMethod( arg: Bool ) -> Bool @@ -40,6 +30,16 @@ public protocol SwiftHelloTest_TestListener: JavaProtocol { func byteMethod( arg: Int8 ) -> Int8 func byteMethod( _ _arg: Int8 ) -> Int8 + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + func byteArrayMethod( arg: [Int8]? ) -> [Int8]! + func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! + + /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! + func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! + /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) func charMethod( arg: UInt16 ) -> UInt16 @@ -151,47 +151,15 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - private static var byteArrayMethod_MethodID_28: jmethodID? - - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) - } - - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) - } - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - private static var byte2dArrayMethod_MethodID_29: jmethodID? - - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestListenerForward.byte2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int8]](), from: __return ) - } - - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg: _arg ) - } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - private static var booleanMethod_MethodID_30: jmethodID? + private static var booleanMethod_MethodID_28: jmethodID? open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_30, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_28, args: &__args, locals: &__locals ) return JNIType.decode( type: Bool(), from: __return ) } @@ -201,13 +169,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - private static var booleanArrayMethod_MethodID_31: jmethodID? + private static var booleanArrayMethod_MethodID_29: jmethodID? open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_31, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_29, args: &__args, locals: &__locals ) return JNIType.decode( type: [Bool](), from: __return ) } @@ -217,13 +185,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_32: jmethodID? + private static var boolean2dArrayMethod_MethodID_30: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_30, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -233,13 +201,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - private static var byteMethod_MethodID_33: jmethodID? + private static var byteMethod_MethodID_31: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_33, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_31, args: &__args, locals: &__locals ) return JNIType.decode( type: Int8(), from: __return ) } @@ -247,6 +215,38 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byteMethod( arg: _arg ) } + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + private static var byteArrayMethod_MethodID_32: jmethodID? + + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Int8](), from: __return ) + } + + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) + } + + /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + private static var byte2dArrayMethod_MethodID_33: jmethodID? + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestListenerForward.byte2dArrayMethod_MethodID_33, args: &__args, locals: &__locals ) + return JNIType.decode( type: [[Int8]](), from: __return ) + } + + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg: _arg ) + } + /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) private static var charMethod_MethodID_34: jmethodID? @@ -586,48 +586,48 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ } -private typealias SwiftHelloTest_TestListener_byteArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_byteArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_byte2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byte2dArrayMethod( JNIType.decode( type: [[Int8]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_booleanMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean +private typealias SwiftHelloTest_TestListener_booleanMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestListener_booleanMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { +private func SwiftHelloTest_TestListener_booleanMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).z } -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_booleanArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).boolean2dArrayMethod( JNIType.decode( type: [[Bool]](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_byteMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestListener_byteMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestListener_byteMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { +private func SwiftHelloTest_TestListener_byteMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteMethod( JNIType.decode( type: Int8(), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).b } +private typealias SwiftHelloTest_TestListener_byteArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_byteArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) + return JNIType.encode( value: __return, locals: nil ).l +} + +private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_byte2dArrayMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byte2dArrayMethod( JNIType.decode( type: [[Int8]](), from: arg ) ) + return JNIType.encode( value: __return, locals: nil ).l +} + private typealias SwiftHelloTest_TestListener_charMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jchar ) -> jchar private func SwiftHelloTest_TestListener_charMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jchar ) -> jchar { @@ -783,23 +783,23 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL if ( !nativesRegistered ) { var natives = [JNINativeMethod]() - let SwiftHelloTest_TestListener_byteArrayMethod_0_thunk: SwiftHelloTest_TestListener_byteArrayMethod_0_type = SwiftHelloTest_TestListener_byteArrayMethod_0 - natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanMethod_0_thunk: SwiftHelloTest_TestListener_booleanMethod_0_type = SwiftHelloTest_TestListener_booleanMethod_0 + natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byte2dArrayMethod_1_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_1_type = SwiftHelloTest_TestListener_byte2dArrayMethod_1 - natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_1_type = SwiftHelloTest_TestListener_booleanArrayMethod_1 + natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanMethod_2_thunk: SwiftHelloTest_TestListener_booleanMethod_2_type = SwiftHelloTest_TestListener_booleanMethod_2 - natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_2 + natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanArrayMethod_3_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_3_type = SwiftHelloTest_TestListener_booleanArrayMethod_3 - natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteMethod_3_thunk: SwiftHelloTest_TestListener_byteMethod_3_type = SwiftHelloTest_TestListener_byteMethod_3 + natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_boolean2dArrayMethod_4_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_4_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_4 - natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteArrayMethod_4_thunk: SwiftHelloTest_TestListener_byteArrayMethod_4_type = SwiftHelloTest_TestListener_byteArrayMethod_4 + natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byteMethod_5_thunk: SwiftHelloTest_TestListener_byteMethod_5_type = SwiftHelloTest_TestListener_byteMethod_5 - natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = SwiftHelloTest_TestListener_byte2dArrayMethod_5 + natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) let SwiftHelloTest_TestListener_charMethod_6_thunk: SwiftHelloTest_TestListener_charMethod_6_type = SwiftHelloTest_TestListener_charMethod_6 natives.append( JNINativeMethod( name: strdup("__charMethod"), signature: strdup("(C)C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charMethod_6_thunk, to: UnsafeMutableRawPointer.self ) ) ) @@ -890,26 +890,6 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloTest_TestListenerBase.self ) } - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { - return nil - } - - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { - return byteArrayMethod( arg: _arg ) - } - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { - return nil - } - - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! /**/ { - return byte2dArrayMethod( arg: _arg ) - } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) open func booleanMethod( arg: Bool ) -> Bool /**/ { @@ -950,6 +930,26 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return byteMethod( arg: _arg ) } + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { + return nil + } + + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { + return byteArrayMethod( arg: _arg ) + } + + /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { + return nil + } + + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! /**/ { + return byte2dArrayMethod( arg: _arg ) + } + /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) open func charMethod( arg: UInt16 ) -> UInt16 /**/ { diff --git a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift index 306ccc3..97067d1 100644 --- a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift +++ b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue Dec 20 14:14:24 GMT 2016 /// +/// Tue May 23 16:32:21 BST 2017 /// /// class com.jh.SwiftHelloTest$TestResponderImpl /// @@ -35,47 +35,15 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes JNI.DeleteLocalRef( __object ) } - /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) - - private static var byteArrayMethod_MethodID_2: jmethodID? - - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) - } - - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) - } - - /// public byte[][] com.jh.SwiftHelloTest$TestResponderImpl.byte2dArrayMethod(byte[][]) - - private static var byte2dArrayMethod_MethodID_3: jmethodID? - - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestResponderImpl.byte2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int8]](), from: __return ) - } - - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg: _arg ) - } - /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - private static var booleanMethod_MethodID_4: jmethodID? + private static var booleanMethod_MethodID_2: jmethodID? open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_4, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_2, args: &__args, locals: &__locals ) return JNIType.decode( type: Bool(), from: __return ) } @@ -85,13 +53,13 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) - private static var booleanArrayMethod_MethodID_5: jmethodID? + private static var booleanArrayMethod_MethodID_3: jmethodID? open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_5, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_3, args: &__args, locals: &__locals ) return JNIType.decode( type: [Bool](), from: __return ) } @@ -101,13 +69,13 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes /// public boolean[][] com.jh.SwiftHelloTest$TestResponderImpl.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_6: jmethodID? + private static var boolean2dArrayMethod_MethodID_4: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_6, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_4, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -117,13 +85,13 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes /// public byte com.jh.SwiftHelloTest$TestResponderImpl.byteMethod(byte) - private static var byteMethod_MethodID_7: jmethodID? + private static var byteMethod_MethodID_5: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_7, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_5, args: &__args, locals: &__locals ) return JNIType.decode( type: Int8(), from: __return ) } @@ -131,6 +99,38 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes return byteMethod( arg: _arg ) } + /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) + + private static var byteArrayMethod_MethodID_6: jmethodID? + + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_6, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Int8](), from: __return ) + } + + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) + } + + /// public byte[][] com.jh.SwiftHelloTest$TestResponderImpl.byte2dArrayMethod(byte[][]) + + private static var byte2dArrayMethod_MethodID_7: jmethodID? + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestResponderImpl.byte2dArrayMethod_MethodID_7, args: &__args, locals: &__locals ) + return JNIType.decode( type: [[Int8]](), from: __return ) + } + + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg: _arg ) + } + /// public char com.jh.SwiftHelloTest$TestResponderImpl.charMethod(char) private static var charMethod_MethodID_8: jmethodID? diff --git a/com_jh/Sources/SwiftHello_Listener.swift b/com_jh/Sources/SwiftHello_Listener.swift index 0ffd082..e0c5915 100644 --- a/com_jh/Sources/SwiftHello_Listener.swift +++ b/com_jh/Sources/SwiftHello_Listener.swift @@ -4,71 +4,71 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue Dec 20 14:14:24 GMT 2016 /// +/// Tue May 23 16:32:20 BST 2017 /// /// interface com.jh.SwiftHello$Listener /// public protocol SwiftHello_Listener: JavaProtocol { - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - - func processText( text: String? ) - func processText( _ _text: String? ) - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) func processNumber( number: Double ) func processNumber( _ _number: Double ) + /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) + + func processText( text: String? ) + func processText( _ _text: String? ) + } open class SwiftHello_ListenerForward: JNIObjectForward, SwiftHello_Listener { private static var SwiftHello_ListenerJNIClass: jclass? - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) + /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) - private static var processText_MethodID_3: jmethodID? + private static var processNumber_MethodID_3: jmethodID? - open func processText( text: String? ) { + open func processNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.processText_MethodID_3, args: &__args, locals: &__locals ) + __args[0] = JNIType.encode( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHello_ListenerForward.processNumber_MethodID_3, args: &__args, locals: &__locals ) } - open func processText( _ _text: String? ) { - processText( text: _text ) + open func processNumber( _ _number: Double ) { + processNumber( number: _number ) } - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) + /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - private static var processNumber_MethodID_4: jmethodID? + private static var processText_MethodID_4: jmethodID? - open func processNumber( number: Double ) { + open func processText( text: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHello_ListenerForward.processNumber_MethodID_4, args: &__args, locals: &__locals ) + __args[0] = JNIType.encode( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.processText_MethodID_4, args: &__args, locals: &__locals ) } - open func processNumber( _ _number: Double ) { - processNumber( number: _number ) + open func processText( _ _text: String? ) { + processText( text: _text ) } } -private typealias SwiftHello_Listener_processText_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () +private typealias SwiftHello_Listener_processNumber_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () -private func SwiftHello_Listener_processText_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { - SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processText( JNIType.decode( type: String(), from: text ) ) +private func SwiftHello_Listener_processNumber_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { + SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processNumber( JNIType.decode( type: Double(), from: number ) ) } -private typealias SwiftHello_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () +private typealias SwiftHello_Listener_processText_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () -private func SwiftHello_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { - SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processNumber( JNIType.decode( type: Double(), from: number ) ) +private func SwiftHello_Listener_processText_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { + SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processText( JNIType.decode( type: String(), from: text ) ) } open class SwiftHello_ListenerBase: JNIObjectProxy, SwiftHello_Listener { @@ -79,11 +79,11 @@ open class SwiftHello_ListenerBase: JNIObjectProxy, SwiftHello_Listener { if ( !nativesRegistered ) { var natives = [JNINativeMethod]() - let SwiftHello_Listener_processText_0_thunk: SwiftHello_Listener_processText_0_type = SwiftHello_Listener_processText_0 - natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processText_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHello_Listener_processNumber_0_thunk: SwiftHello_Listener_processNumber_0_type = SwiftHello_Listener_processNumber_0 + natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processNumber_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHello_Listener_processNumber_1_thunk: SwiftHello_Listener_processNumber_1_type = SwiftHello_Listener_processNumber_1 - natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHello_Listener_processText_1_thunk: SwiftHello_Listener_processText_1_type = SwiftHello_Listener_processText_1 + natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processText_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) withUnsafePointer(to: &natives[0]) { nativesPtr in @@ -111,22 +111,22 @@ open class SwiftHello_ListenerBase: JNIObjectProxy, SwiftHello_Listener { return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHello_ListenerBase.self ) } - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) + /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) - open func processText( text: String? ) /**/ { + open func processNumber( number: Double ) /**/ { } - open func processText( _ _text: String? ) /**/ { - processText( text: _text ) + open func processNumber( _ _number: Double ) /**/ { + processNumber( number: _number ) } - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) + /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - open func processNumber( number: Double ) /**/ { + open func processText( text: String? ) /**/ { } - open func processNumber( _ _number: Double ) /**/ { - processNumber( number: _number ) + open func processText( _ _text: String? ) /**/ { + processText( text: _text ) } } diff --git a/com_jh/Sources/SwiftHello_Responder.swift b/com_jh/Sources/SwiftHello_Responder.swift index 1b7a158..03ee01a 100644 --- a/com_jh/Sources/SwiftHello_Responder.swift +++ b/com_jh/Sources/SwiftHello_Responder.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue Dec 20 14:14:24 GMT 2016 /// +/// Tue May 23 16:32:20 BST 2017 /// /// interface com.jh.SwiftHello$Responder /// diff --git a/genie.jar b/genie.jar index 2882332aa2cd795b7e542261964866c773c9e45b..f7f212da8f91d58da9113d87e9f6cf9a991592de 100644 GIT binary patch delta 6346 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 Cv|>I0 delta 6290 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 Date: Tue, 23 May 2017 16:59:59 +0100 Subject: [PATCH 03/53] Updated for 2017 --- swift-android-gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-android-gradle b/swift-android-gradle index 8b82d82..9e62dc1 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 8b82d82afa46d96c5f36489ca88ec2969f427f4d +Subproject commit 9e62dc1a9f8da4be0233ebd9c696b993652ef7ed From 1dc8a8d3e088e796c8b98245aa5e7f83e58b40f6 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 23 May 2017 17:06:59 +0100 Subject: [PATCH 04/53] Updated for 2017 --- swift-android-gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-android-gradle b/swift-android-gradle index 9e62dc1..baae695 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 9e62dc1a9f8da4be0233ebd9c696b993652ef7ed +Subproject commit baae6952d9b5c46f843e577c6b7188c07e8bf28b From 128d7791d1c362d7b211cff1a85332449427bea7 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 23 May 2017 17:17:45 +0100 Subject: [PATCH 05/53] Updated for 2017 --- java_swift | 2 +- swift-android-samples | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java_swift b/java_swift index cdca060..9be4533 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit cdca06075c5d80736658cd07ae089e546c0f852d +Subproject commit 9be4533ea3da97235848b90be00150d1691f0a34 diff --git a/swift-android-samples b/swift-android-samples index bf1fcf1..44b9e65 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit bf1fcf13aac51828f134e82a33c2bfa616425587 +Subproject commit 44b9e658da7000a7b08cd911318e0f0efc4e6e5a From 4178ef4b0144eba3769c75b7e061cabfdef3aa5b Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 23 May 2017 17:31:26 +0100 Subject: [PATCH 06/53] Updated for 2017 --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index 9be4533..0d41bfe 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 9be4533ea3da97235848b90be00150d1691f0a34 +Subproject commit 0d41bfef5cddabb794bbc7b24543590851eece90 From 8c11d4c8db40393f0a6b89edc8b57550a12f254c Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 23 May 2017 18:06:43 +0100 Subject: [PATCH 07/53] Updated for 2017 --- com_jh/Sources/SwiftHello.swift | 2 +- com_jh/Sources/SwiftHelloTest.swift | 2 +- .../Sources/SwiftHelloTest_TestListener.swift | 182 +++++++++--------- .../SwiftHelloTest_TestResponderImpl.swift | 70 +++---- com_jh/Sources/SwiftHello_Listener.swift | 2 +- com_jh/Sources/SwiftHello_Responder.swift | 40 ++-- genie.jar | Bin 71923 -> 71928 bytes java_swift | 2 +- org_genie/Sources/SwiftTest.swift | 2 +- .../SwiftHelloTest_TestListenerProxy.java | 32 +-- swift-android-samples | 2 +- 11 files changed, 168 insertions(+), 168 deletions(-) diff --git a/com_jh/Sources/SwiftHello.swift b/com_jh/Sources/SwiftHello.swift index 4cbec9d..2a854ba 100644 --- a/com_jh/Sources/SwiftHello.swift +++ b/com_jh/Sources/SwiftHello.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 16:32:20 BST 2017 /// +/// Tue May 23 17:57:15 BST 2017 /// /// interface com.jh.SwiftHello /// diff --git a/com_jh/Sources/SwiftHelloTest.swift b/com_jh/Sources/SwiftHelloTest.swift index aeeb441..d4a86fd 100644 --- a/com_jh/Sources/SwiftHelloTest.swift +++ b/com_jh/Sources/SwiftHelloTest.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 16:32:21 BST 2017 /// +/// Tue May 23 17:57:15 BST 2017 /// /// interface com.jh.SwiftHelloTest /// diff --git a/com_jh/Sources/SwiftHelloTest_TestListener.swift b/com_jh/Sources/SwiftHelloTest_TestListener.swift index 7bd118a..ef4e7db 100644 --- a/com_jh/Sources/SwiftHelloTest_TestListener.swift +++ b/com_jh/Sources/SwiftHelloTest_TestListener.swift @@ -4,21 +4,16 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 16:32:20 BST 2017 /// +/// Tue May 23 17:57:15 BST 2017 /// /// interface com.jh.SwiftHelloTest$TestListener /// public protocol SwiftHelloTest_TestListener: JavaProtocol { - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - func booleanMethod( arg: Bool ) -> Bool - func booleanMethod( _ _arg: Bool ) -> Bool - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! - func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! + func byteArrayMethod( arg: [Int8]? ) -> [Int8]! + func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) @@ -30,10 +25,15 @@ public protocol SwiftHelloTest_TestListener: JavaProtocol { func byteMethod( arg: Int8 ) -> Int8 func byteMethod( _ _arg: Int8 ) -> Int8 - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! + func booleanMethod( arg: Bool ) -> Bool + func booleanMethod( _ _arg: Bool ) -> Bool + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! + func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) @@ -151,47 +151,31 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - private static var booleanMethod_MethodID_28: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - private static var booleanArrayMethod_MethodID_29: jmethodID? + private static var byteArrayMethod_MethodID_28: jmethodID? - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_29, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_28, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Int8](), from: __return ) } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) } /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_30: jmethodID? + private static var boolean2dArrayMethod_MethodID_29: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_30, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -201,13 +185,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - private static var byteMethod_MethodID_31: jmethodID? + private static var byteMethod_MethodID_30: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_31, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_30, args: &__args, locals: &__locals ) return JNIType.decode( type: Int8(), from: __return ) } @@ -215,20 +199,36 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byteMethod( arg: _arg ) } - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - private static var byteArrayMethod_MethodID_32: jmethodID? + private static var booleanMethod_MethodID_31: jmethodID? - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_32, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_31, args: &__args, locals: &__locals ) + return JNIType.decode( type: Bool(), from: __return ) } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + private static var booleanArrayMethod_MethodID_32: jmethodID? + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Bool](), from: __return ) + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) } /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) @@ -586,38 +586,38 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ } -private typealias SwiftHelloTest_TestListener_booleanMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean - -private func SwiftHelloTest_TestListener_booleanMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).z -} - -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_byteArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) +private func SwiftHelloTest_TestListener_byteArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).boolean2dArrayMethod( JNIType.decode( type: [[Bool]](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_byteMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestListener_byteMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestListener_byteMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { +private func SwiftHelloTest_TestListener_byteMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteMethod( JNIType.decode( type: Int8(), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).b } -private typealias SwiftHelloTest_TestListener_byteArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_booleanMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestListener_byteArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) +private func SwiftHelloTest_TestListener_booleanMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) + return JNIType.encode( value: __return, locals: nil ).z +} + +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_booleanArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } @@ -783,20 +783,20 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL if ( !nativesRegistered ) { var natives = [JNINativeMethod]() - let SwiftHelloTest_TestListener_booleanMethod_0_thunk: SwiftHelloTest_TestListener_booleanMethod_0_type = SwiftHelloTest_TestListener_booleanMethod_0 - natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteArrayMethod_0_thunk: SwiftHelloTest_TestListener_byteArrayMethod_0_type = SwiftHelloTest_TestListener_byteArrayMethod_0 + natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_1_type = SwiftHelloTest_TestListener_booleanArrayMethod_1 - natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_1 + natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_2 - natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteMethod_2_thunk: SwiftHelloTest_TestListener_byteMethod_2_type = SwiftHelloTest_TestListener_byteMethod_2 + natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byteMethod_3_thunk: SwiftHelloTest_TestListener_byteMethod_3_type = SwiftHelloTest_TestListener_byteMethod_3 - natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanMethod_3_thunk: SwiftHelloTest_TestListener_booleanMethod_3_type = SwiftHelloTest_TestListener_booleanMethod_3 + natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byteArrayMethod_4_thunk: SwiftHelloTest_TestListener_byteArrayMethod_4_type = SwiftHelloTest_TestListener_byteArrayMethod_4 - natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanArrayMethod_4_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_4_type = SwiftHelloTest_TestListener_booleanArrayMethod_4 + natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) let SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = SwiftHelloTest_TestListener_byte2dArrayMethod_5 natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) @@ -890,24 +890,14 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloTest_TestListenerBase.self ) } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - open func booleanMethod( arg: Bool ) -> Bool /**/ { - return false - } - - open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { - return booleanMethod( arg: _arg ) - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { return nil } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { - return booleanArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { + return byteArrayMethod( arg: _arg ) } /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) @@ -930,14 +920,24 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return byteMethod( arg: _arg ) } - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { + open func booleanMethod( arg: Bool ) -> Bool /**/ { + return false + } + + open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { + return booleanMethod( arg: _arg ) + } + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { return nil } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { - return byteArrayMethod( arg: _arg ) + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { + return booleanArrayMethod( arg: _arg ) } /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) diff --git a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift index 97067d1..f806fc4 100644 --- a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift +++ b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 16:32:21 BST 2017 /// +/// Tue May 23 17:57:15 BST 2017 /// /// class com.jh.SwiftHelloTest$TestResponderImpl /// @@ -35,47 +35,31 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes JNI.DeleteLocalRef( __object ) } - /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - - private static var booleanMethod_MethodID_2: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - - /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) + /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) - private static var booleanArrayMethod_MethodID_3: jmethodID? + private static var byteArrayMethod_MethodID_2: jmethodID? - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_3, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Int8](), from: __return ) } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) } /// public boolean[][] com.jh.SwiftHelloTest$TestResponderImpl.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_4: jmethodID? + private static var boolean2dArrayMethod_MethodID_3: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_4, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -85,13 +69,13 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes /// public byte com.jh.SwiftHelloTest$TestResponderImpl.byteMethod(byte) - private static var byteMethod_MethodID_5: jmethodID? + private static var byteMethod_MethodID_4: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_5, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_4, args: &__args, locals: &__locals ) return JNIType.decode( type: Int8(), from: __return ) } @@ -99,20 +83,36 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes return byteMethod( arg: _arg ) } - /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) + /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - private static var byteArrayMethod_MethodID_6: jmethodID? + private static var booleanMethod_MethodID_5: jmethodID? - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_6, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_5, args: &__args, locals: &__locals ) + return JNIType.decode( type: Bool(), from: __return ) } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + + /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) + + private static var booleanArrayMethod_MethodID_6: jmethodID? + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_6, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Bool](), from: __return ) + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) } /// public byte[][] com.jh.SwiftHelloTest$TestResponderImpl.byte2dArrayMethod(byte[][]) diff --git a/com_jh/Sources/SwiftHello_Listener.swift b/com_jh/Sources/SwiftHello_Listener.swift index e0c5915..71f54cf 100644 --- a/com_jh/Sources/SwiftHello_Listener.swift +++ b/com_jh/Sources/SwiftHello_Listener.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 16:32:20 BST 2017 /// +/// Tue May 23 17:57:15 BST 2017 /// /// interface com.jh.SwiftHello$Listener /// diff --git a/com_jh/Sources/SwiftHello_Responder.swift b/com_jh/Sources/SwiftHello_Responder.swift index 03ee01a..063c77f 100644 --- a/com_jh/Sources/SwiftHello_Responder.swift +++ b/com_jh/Sources/SwiftHello_Responder.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 16:32:20 BST 2017 /// +/// Tue May 23 17:57:15 BST 2017 /// /// interface com.jh.SwiftHello$Responder /// @@ -15,16 +15,16 @@ public protocol SwiftHello_Responder: JavaProtocol { func debug( msg: String? ) -> [String]! func debug( _ _msg: String? ) -> [String]! - /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) - - func processedNumber( number: Double ) - func processedNumber( _ _number: Double ) - /// public abstract void com.jh.SwiftHello$Responder.processedText(java.lang.String) func processedText( text: String? ) func processedText( _ _text: String? ) + /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) + + func processedNumber( number: Double ) + func processedNumber( _ _number: Double ) + /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() func testResponder() -> SwiftHelloTest_TestListener! @@ -51,34 +51,34 @@ open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { return debug( msg: _msg ) } - /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) + /// public abstract void com.jh.SwiftHello$Responder.processedText(java.lang.String) - private static var processedNumber_MethodID_6: jmethodID? + private static var processedText_MethodID_6: jmethodID? - open func processedNumber( number: Double ) { + open func processedText( text: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHello_ResponderForward.processedNumber_MethodID_6, args: &__args, locals: &__locals ) + __args[0] = JNIType.encode( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ResponderForward.processedText_MethodID_6, args: &__args, locals: &__locals ) } - open func processedNumber( _ _number: Double ) { - processedNumber( number: _number ) + open func processedText( _ _text: String? ) { + processedText( text: _text ) } - /// public abstract void com.jh.SwiftHello$Responder.processedText(java.lang.String) + /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) - private static var processedText_MethodID_7: jmethodID? + private static var processedNumber_MethodID_7: jmethodID? - open func processedText( text: String? ) { + open func processedNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ResponderForward.processedText_MethodID_7, args: &__args, locals: &__locals ) + __args[0] = JNIType.encode( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHello_ResponderForward.processedNumber_MethodID_7, args: &__args, locals: &__locals ) } - open func processedText( _ _text: String? ) { - processedText( text: _text ) + open func processedNumber( _ _number: Double ) { + processedNumber( number: _number ) } /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() diff --git a/genie.jar b/genie.jar index f7f212da8f91d58da9113d87e9f6cf9a991592de..1f50459353581d8ffe27a19e6fa981c4f325e5ce 100644 GIT binary patch delta 5327 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 Hhcf&>l9iLU delta 5335 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 Date: Tue, 23 May 2017 18:28:27 +0100 Subject: [PATCH 08/53] Updated for 2017 --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index 67602ea..60f5ac6 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 67602ea403d8727f8fba975353c4038c669d59c8 +Subproject commit 60f5ac64b908b9f79d5b2ef77eafbb2c8e414dea From c26edb2510730e1a5c8d19529c48cd821e0d4857 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 23 May 2017 18:58:03 +0100 Subject: [PATCH 09/53] Updated for 2017 --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index b700c68..f1adf4d 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,13 @@ Xcode uses the legacy "JavaVM" framework which requires Apple's JVM downloadable [https://support.apple.com/kb/dl1572?locale=en_US](https://support.apple.com/kb/dl1572?locale=en_US) +Development inside Xcode with the Oracle JVM is a little more complicated. It seems +that JNI_CreateJavaVM generates a SIGSEGV internally as part of normal operation +which is trapped using a signal handler so it can proceed on the command line. +Unfortunately, this is caught by Xcode debugger lldb and it suspends and will not +continue until you enter "pr h -s false SIGSEGV" into the debug console each time +you run the program. The alternative is to not use the debugger at all in your scheme. + Perversely, with AWT and Swing on macOS the JVM needs to be created on the main thread while setup code needs to be off the main thread to leave it available for AWT's own runloop. Use the JNI.background and JNI.run methods to achieve this in a portable manner. From 346f4d54679733e481f24451b1a9c51eda9ca9e9 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 25 May 2017 09:03:13 +0100 Subject: [PATCH 10/53] Updated for 2017 --- java_swift | 2 +- swift-android-gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java_swift b/java_swift index 60f5ac6..f80e3e4 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 60f5ac64b908b9f79d5b2ef77eafbb2c8e414dea +Subproject commit f80e3e4000284083c1be7bf5cb93bb6f50a91c64 diff --git a/swift-android-gradle b/swift-android-gradle index baae695..301322e 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit baae6952d9b5c46f843e577c6b7188c07e8bf28b +Subproject commit 301322ee749ebe22d2ee624b3552c74121371415 From fec4d3c22d4769b5958682c64b8c3c636a70a530 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 25 May 2017 09:19:14 +0100 Subject: [PATCH 11/53] Updated for 2017 --- swift-android-gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-android-gradle b/swift-android-gradle index 301322e..8e3ee1a 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 301322ee749ebe22d2ee624b3552c74121371415 +Subproject commit 8e3ee1a6100493c862855be8fa147322c1c5a219 From b5ca19d8c6f5ba2add2f246286600da37cd300b8 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Mon, 10 Jul 2017 13:49:04 +0100 Subject: [PATCH 12/53] Fixed Unicode conversion probelems using NewStringUTF() --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index f80e3e4..d015c1f 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit f80e3e4000284083c1be7bf5cb93bb6f50a91c64 +Subproject commit d015c1fa6d8cfd8764f166cdbfd3b8a36ce8f08f From 78dab9766977b3a4cbdb7e07f93dbae36c78f72d Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 16 Jul 2017 12:00:16 +0100 Subject: [PATCH 13/53] Updated for toolchain V4 --- com_jh/Sources/SwiftHello.swift | 2 +- com_jh/Sources/SwiftHelloTest.swift | 2 +- .../Sources/SwiftHelloTest_TestListener.swift | 182 +++++++++--------- .../SwiftHelloTest_TestResponderImpl.swift | 70 +++---- com_jh/Sources/SwiftHello_Listener.swift | 64 ++++-- com_jh/Sources/SwiftHello_Responder.swift | 38 ++-- genie.jar | Bin 71928 -> 71959 bytes java_swift | 2 +- org_genie/Sources/SwiftTest.swift | 2 +- src/com/jh/SwiftHello.java | 2 + .../SwiftHelloTest_TestListenerProxy.java | 32 +-- .../com_jh/SwiftHello_ListenerProxy.java | 8 + swift-android-samples | 2 +- 13 files changed, 227 insertions(+), 179 deletions(-) diff --git a/com_jh/Sources/SwiftHello.swift b/com_jh/Sources/SwiftHello.swift index 2a854ba..2b7724e 100644 --- a/com_jh/Sources/SwiftHello.swift +++ b/com_jh/Sources/SwiftHello.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:15 BST 2017 /// +/// Sun Jul 16 10:59:43 BST 2017 /// /// interface com.jh.SwiftHello /// diff --git a/com_jh/Sources/SwiftHelloTest.swift b/com_jh/Sources/SwiftHelloTest.swift index d4a86fd..e0f434f 100644 --- a/com_jh/Sources/SwiftHelloTest.swift +++ b/com_jh/Sources/SwiftHelloTest.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:15 BST 2017 /// +/// Sun Jul 16 10:59:43 BST 2017 /// /// interface com.jh.SwiftHelloTest /// diff --git a/com_jh/Sources/SwiftHelloTest_TestListener.swift b/com_jh/Sources/SwiftHelloTest_TestListener.swift index ef4e7db..fad9110 100644 --- a/com_jh/Sources/SwiftHelloTest_TestListener.swift +++ b/com_jh/Sources/SwiftHelloTest_TestListener.swift @@ -4,16 +4,21 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:15 BST 2017 /// +/// Sun Jul 16 10:59:43 BST 2017 /// /// interface com.jh.SwiftHelloTest$TestListener /// public protocol SwiftHelloTest_TestListener: JavaProtocol { - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! + func booleanMethod( arg: Bool ) -> Bool + func booleanMethod( _ _arg: Bool ) -> Bool + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! + func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) @@ -25,15 +30,10 @@ public protocol SwiftHelloTest_TestListener: JavaProtocol { func byteMethod( arg: Int8 ) -> Int8 func byteMethod( _ _arg: Int8 ) -> Int8 - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - func booleanMethod( arg: Bool ) -> Bool - func booleanMethod( _ _arg: Bool ) -> Bool - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! - func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! + func byteArrayMethod( arg: [Int8]? ) -> [Int8]! + func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) @@ -151,31 +151,47 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - private static var byteArrayMethod_MethodID_28: jmethodID? + private static var booleanMethod_MethodID_28: jmethodID? - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_28, args: &__args, locals: &__locals ) + return JNIType.decode( type: Bool(), from: __return ) } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + private static var booleanArrayMethod_MethodID_29: jmethodID? + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_29, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Bool](), from: __return ) + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) } /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_29: jmethodID? + private static var boolean2dArrayMethod_MethodID_30: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_30, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -185,13 +201,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - private static var byteMethod_MethodID_30: jmethodID? + private static var byteMethod_MethodID_31: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_30, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_31, args: &__args, locals: &__locals ) return JNIType.decode( type: Int8(), from: __return ) } @@ -199,36 +215,20 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byteMethod( arg: _arg ) } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - private static var booleanMethod_MethodID_31: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_31, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - private static var booleanArrayMethod_MethodID_32: jmethodID? + private static var byteArrayMethod_MethodID_32: jmethodID? - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_32, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Int8](), from: __return ) } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) } /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) @@ -586,38 +586,38 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ } -private typealias SwiftHelloTest_TestListener_byteArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_booleanMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestListener_byteArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) +private func SwiftHelloTest_TestListener_booleanMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) + return JNIType.encode( value: __return, locals: nil ).z +} + +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_booleanArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).boolean2dArrayMethod( JNIType.decode( type: [[Bool]](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_byteMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestListener_byteMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestListener_byteMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { +private func SwiftHelloTest_TestListener_byteMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteMethod( JNIType.decode( type: Int8(), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).b } -private typealias SwiftHelloTest_TestListener_booleanMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean - -private func SwiftHelloTest_TestListener_booleanMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).z -} - -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_byteArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) +private func SwiftHelloTest_TestListener_byteArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } @@ -783,20 +783,20 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL if ( !nativesRegistered ) { var natives = [JNINativeMethod]() - let SwiftHelloTest_TestListener_byteArrayMethod_0_thunk: SwiftHelloTest_TestListener_byteArrayMethod_0_type = SwiftHelloTest_TestListener_byteArrayMethod_0 - natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanMethod_0_thunk: SwiftHelloTest_TestListener_booleanMethod_0_type = SwiftHelloTest_TestListener_booleanMethod_0 + natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_1 - natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_1_type = SwiftHelloTest_TestListener_booleanArrayMethod_1 + natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byteMethod_2_thunk: SwiftHelloTest_TestListener_byteMethod_2_type = SwiftHelloTest_TestListener_byteMethod_2 - natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_2 + natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanMethod_3_thunk: SwiftHelloTest_TestListener_booleanMethod_3_type = SwiftHelloTest_TestListener_booleanMethod_3 - natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteMethod_3_thunk: SwiftHelloTest_TestListener_byteMethod_3_type = SwiftHelloTest_TestListener_byteMethod_3 + natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanArrayMethod_4_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_4_type = SwiftHelloTest_TestListener_booleanArrayMethod_4 - natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteArrayMethod_4_thunk: SwiftHelloTest_TestListener_byteArrayMethod_4_type = SwiftHelloTest_TestListener_byteArrayMethod_4 + natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) let SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = SwiftHelloTest_TestListener_byte2dArrayMethod_5 natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) @@ -890,14 +890,24 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloTest_TestListenerBase.self ) } - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { + open func booleanMethod( arg: Bool ) -> Bool /**/ { + return false + } + + open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { + return booleanMethod( arg: _arg ) + } + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { return nil } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { - return byteArrayMethod( arg: _arg ) + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { + return booleanArrayMethod( arg: _arg ) } /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) @@ -920,24 +930,14 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return byteMethod( arg: _arg ) } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - open func booleanMethod( arg: Bool ) -> Bool /**/ { - return false - } - - open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { - return booleanMethod( arg: _arg ) - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { return nil } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { - return booleanArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { + return byteArrayMethod( arg: _arg ) } /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) diff --git a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift index f806fc4..ef577fd 100644 --- a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift +++ b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:15 BST 2017 /// +/// Sun Jul 16 10:59:43 BST 2017 /// /// class com.jh.SwiftHelloTest$TestResponderImpl /// @@ -35,31 +35,47 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes JNI.DeleteLocalRef( __object ) } - /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) + /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - private static var byteArrayMethod_MethodID_2: jmethodID? + private static var booleanMethod_MethodID_2: jmethodID? - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.decode( type: Bool(), from: __return ) } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + + /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) + + private static var booleanArrayMethod_MethodID_3: jmethodID? + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_3, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Bool](), from: __return ) + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) } /// public boolean[][] com.jh.SwiftHelloTest$TestResponderImpl.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_3: jmethodID? + private static var boolean2dArrayMethod_MethodID_4: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_4, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -69,13 +85,13 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes /// public byte com.jh.SwiftHelloTest$TestResponderImpl.byteMethod(byte) - private static var byteMethod_MethodID_4: jmethodID? + private static var byteMethod_MethodID_5: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_4, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_5, args: &__args, locals: &__locals ) return JNIType.decode( type: Int8(), from: __return ) } @@ -83,36 +99,20 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes return byteMethod( arg: _arg ) } - /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - - private static var booleanMethod_MethodID_5: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_5, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - - /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) + /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) - private static var booleanArrayMethod_MethodID_6: jmethodID? + private static var byteArrayMethod_MethodID_6: jmethodID? - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_6, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_6, args: &__args, locals: &__locals ) + return JNIType.decode( type: [Int8](), from: __return ) } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) } /// public byte[][] com.jh.SwiftHelloTest$TestResponderImpl.byte2dArrayMethod(byte[][]) diff --git a/com_jh/Sources/SwiftHello_Listener.swift b/com_jh/Sources/SwiftHello_Listener.swift index 71f54cf..ae7fcce 100644 --- a/com_jh/Sources/SwiftHello_Listener.swift +++ b/com_jh/Sources/SwiftHello_Listener.swift @@ -4,12 +4,17 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:15 BST 2017 /// +/// Sun Jul 16 10:59:43 BST 2017 /// /// interface com.jh.SwiftHello$Listener /// public protocol SwiftHello_Listener: JavaProtocol { + /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) + + func setCacheDir( cacheDir: String? ) + func setCacheDir( _ _cacheDir: String? ) + /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) func processNumber( number: Double ) @@ -26,15 +31,30 @@ open class SwiftHello_ListenerForward: JNIObjectForward, SwiftHello_Listener { private static var SwiftHello_ListenerJNIClass: jclass? + /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) + + private static var setCacheDir_MethodID_4: jmethodID? + + open func setCacheDir( cacheDir: String? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: cacheDir, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.setCacheDir_MethodID_4, args: &__args, locals: &__locals ) + } + + open func setCacheDir( _ _cacheDir: String? ) { + setCacheDir( cacheDir: _cacheDir ) + } + /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) - private static var processNumber_MethodID_3: jmethodID? + private static var processNumber_MethodID_5: jmethodID? open func processNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHello_ListenerForward.processNumber_MethodID_3, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHello_ListenerForward.processNumber_MethodID_5, args: &__args, locals: &__locals ) } open func processNumber( _ _number: Double ) { @@ -43,13 +63,13 @@ open class SwiftHello_ListenerForward: JNIObjectForward, SwiftHello_Listener { /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - private static var processText_MethodID_4: jmethodID? + private static var processText_MethodID_6: jmethodID? open func processText( text: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.processText_MethodID_4, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.processText_MethodID_6, args: &__args, locals: &__locals ) } open func processText( _ _text: String? ) { @@ -59,15 +79,21 @@ open class SwiftHello_ListenerForward: JNIObjectForward, SwiftHello_Listener { } -private typealias SwiftHello_Listener_processNumber_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () +private typealias SwiftHello_Listener_setCacheDir_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () -private func SwiftHello_Listener_processNumber_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { +private func SwiftHello_Listener_setCacheDir_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ cacheDir: jobject? ) -> () { + SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).setCacheDir( JNIType.decode( type: String(), from: cacheDir ) ) +} + +private typealias SwiftHello_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () + +private func SwiftHello_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processNumber( JNIType.decode( type: Double(), from: number ) ) } -private typealias SwiftHello_Listener_processText_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () +private typealias SwiftHello_Listener_processText_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () -private func SwiftHello_Listener_processText_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { +private func SwiftHello_Listener_processText_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processText( JNIType.decode( type: String(), from: text ) ) } @@ -79,11 +105,14 @@ open class SwiftHello_ListenerBase: JNIObjectProxy, SwiftHello_Listener { if ( !nativesRegistered ) { var natives = [JNINativeMethod]() - let SwiftHello_Listener_processNumber_0_thunk: SwiftHello_Listener_processNumber_0_type = SwiftHello_Listener_processNumber_0 - natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processNumber_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHello_Listener_setCacheDir_0_thunk: SwiftHello_Listener_setCacheDir_0_type = SwiftHello_Listener_setCacheDir_0 + natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHello_Listener_processText_1_thunk: SwiftHello_Listener_processText_1_type = SwiftHello_Listener_processText_1 - natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processText_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHello_Listener_processNumber_1_thunk: SwiftHello_Listener_processNumber_1_type = SwiftHello_Listener_processNumber_1 + natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHello_Listener_processText_2_thunk: SwiftHello_Listener_processText_2_type = SwiftHello_Listener_processText_2 + natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) withUnsafePointer(to: &natives[0]) { nativesPtr in @@ -111,6 +140,15 @@ open class SwiftHello_ListenerBase: JNIObjectProxy, SwiftHello_Listener { return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHello_ListenerBase.self ) } + /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) + + open func setCacheDir( cacheDir: String? ) /**/ { + } + + open func setCacheDir( _ _cacheDir: String? ) /**/ { + setCacheDir( cacheDir: _cacheDir ) + } + /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) open func processNumber( number: Double ) /**/ { diff --git a/com_jh/Sources/SwiftHello_Responder.swift b/com_jh/Sources/SwiftHello_Responder.swift index 063c77f..ef90711 100644 --- a/com_jh/Sources/SwiftHello_Responder.swift +++ b/com_jh/Sources/SwiftHello_Responder.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:15 BST 2017 /// +/// Sun Jul 16 10:59:43 BST 2017 /// /// interface com.jh.SwiftHello$Responder /// @@ -20,15 +20,15 @@ public protocol SwiftHello_Responder: JavaProtocol { func processedText( text: String? ) func processedText( _ _text: String? ) + /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() + + func testResponder() -> SwiftHelloTest_TestListener! + /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) func processedNumber( number: Double ) func processedNumber( _ _number: Double ) - /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() - - func testResponder() -> SwiftHelloTest_TestListener! - } open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { @@ -66,33 +66,33 @@ open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { processedText( text: _text ) } - /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) + /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() - private static var processedNumber_MethodID_7: jmethodID? + private static var testResponder_MethodID_7: jmethodID? - open func processedNumber( number: Double ) { + open func testResponder() -> SwiftHelloTest_TestListener! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHello_ResponderForward.processedNumber_MethodID_7, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "()Lcom/jh/SwiftHelloTest$TestListener;", methodCache: &SwiftHello_ResponderForward.testResponder_MethodID_7, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } - open func processedNumber( _ _number: Double ) { - processedNumber( number: _number ) - } - /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() + /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) - private static var testResponder_MethodID_8: jmethodID? + private static var processedNumber_MethodID_8: jmethodID? - open func testResponder() -> SwiftHelloTest_TestListener! { + open func processedNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "()Lcom/jh/SwiftHelloTest$TestListener;", methodCache: &SwiftHello_ResponderForward.testResponder_MethodID_8, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + __args[0] = JNIType.encode( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHello_ResponderForward.processedNumber_MethodID_8, args: &__args, locals: &__locals ) } + open func processedNumber( _ _number: Double ) { + processedNumber( number: _number ) + } } diff --git a/genie.jar b/genie.jar index 1f50459353581d8ffe27a19e6fa981c4f325e5ce..e0d3c796f4f9a35836051995a8d3bc75fda7e060 100644 GIT binary patch delta 6034 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 delta 6053 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 diff --git a/java_swift b/java_swift index d015c1f..d5550c0 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit d015c1fa6d8cfd8764f166cdbfd3b8a36ce8f08f +Subproject commit d5550c0469d7c2d3953581da84f7e94a297e88ed diff --git a/org_genie/Sources/SwiftTest.swift b/org_genie/Sources/SwiftTest.swift index df7c805..100eedc 100644 --- a/org_genie/Sources/SwiftTest.swift +++ b/org_genie/Sources/SwiftTest.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Tue May 23 17:57:27 BST 2017 /// +/// Sun Jul 16 10:59:49 BST 2017 /// /// class org.genie.SwiftTest /// diff --git a/src/com/jh/SwiftHello.java b/src/com/jh/SwiftHello.java index 741a6fe..823afcc 100644 --- a/src/com/jh/SwiftHello.java +++ b/src/com/jh/SwiftHello.java @@ -5,6 +5,8 @@ public interface SwiftHello { public interface Listener { + public void setCacheDir( String cacheDir ); + public void processNumber( double number ); public void processText( String text ); diff --git a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java index 21ca6ae..be45531 100644 --- a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java +++ b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java @@ -11,12 +11,20 @@ public class SwiftHelloTest_TestListenerProxy implements com.jh.SwiftHelloTest.T this.swiftObject = swiftObject; } - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - public native byte[] __byteArrayMethod( byte[] arg ); + public native boolean __booleanMethod( boolean arg ); - public byte[] byteArrayMethod( byte[] arg ) { - return __byteArrayMethod( arg ); + public boolean booleanMethod( boolean arg ) { + return __booleanMethod( arg ); + } + + /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + public native boolean[] __booleanArrayMethod( boolean[] arg ); + + public boolean[] booleanArrayMethod( boolean[] arg ) { + return __booleanArrayMethod( arg ); } /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) @@ -35,20 +43,12 @@ public byte byteMethod( byte arg ) { return __byteMethod( arg ); } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - public native boolean __booleanMethod( boolean arg ); - - public boolean booleanMethod( boolean arg ) { - return __booleanMethod( arg ); - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - public native boolean[] __booleanArrayMethod( boolean[] arg ); + public native byte[] __byteArrayMethod( byte[] arg ); - public boolean[] booleanArrayMethod( boolean[] arg ) { - return __booleanArrayMethod( arg ); + public byte[] byteArrayMethod( byte[] arg ) { + return __byteArrayMethod( arg ); } /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) diff --git a/src/org/genie/com_jh/SwiftHello_ListenerProxy.java b/src/org/genie/com_jh/SwiftHello_ListenerProxy.java index 77b05e4..531bbba 100644 --- a/src/org/genie/com_jh/SwiftHello_ListenerProxy.java +++ b/src/org/genie/com_jh/SwiftHello_ListenerProxy.java @@ -11,6 +11,14 @@ public class SwiftHello_ListenerProxy implements com.jh.SwiftHello.Listener { this.swiftObject = swiftObject; } + /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) + + public native void __setCacheDir( java.lang.String cacheDir ); + + public void setCacheDir( java.lang.String cacheDir ) { + __setCacheDir( cacheDir ); + } + /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) public native void __processNumber( double number ); diff --git a/swift-android-samples b/swift-android-samples index 64fb227..4498314 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 64fb227ac7d4c4684c27847fd875b4f649c270da +Subproject commit 4498314366c586f1113e86582b5643b57874a452 From cb33d35bf9c283f74c33950484f96d24ce5c432a Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Mon, 17 Jul 2017 12:45:37 +0100 Subject: [PATCH 14/53] Updated for toolchain V4 --- swift-android-samples | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-android-samples b/swift-android-samples index 4498314..5961239 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 4498314366c586f1113e86582b5643b57874a452 +Subproject commit 5961239bf784113e6a1918fcf34703cdf75ab94c From 910b286e988fcd09b49663c603c08d20443fb09f Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 27 Jul 2017 15:34:50 +0100 Subject: [PATCH 15/53] macOS toolchain available --- swift-android-gradle | 2 +- swift-android-samples | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/swift-android-gradle b/swift-android-gradle index 8e3ee1a..b34ab35 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 8e3ee1a6100493c862855be8fa147322c1c5a219 +Subproject commit b34ab35d07161c4573f4c9b28d3a9a0afbb11160 diff --git a/swift-android-samples b/swift-android-samples index 5961239..2ff7f85 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 5961239bf784113e6a1918fcf34703cdf75ab94c +Subproject commit 2ff7f85949f6aa09313e27e2189ca34f8590c4c4 From d873331e86e6c5533583857308641b4b1980699c Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 30 Jul 2017 16:53:08 +0100 Subject: [PATCH 16/53] Xcode 9 & new android toolchain --- .gitmodules | 3 + CJavaVM | 2 +- SwiftJava.xcodeproj/project.pbxproj | 15 +- .../xcshareddata/SwiftJava.xcscmblueprint | 100 +++++++++++ android_dispatch.tgz | Bin 1405743 -> 0 bytes com_apple | 2 +- com_jh/Sources/SwiftHello.swift | 21 --- com_jh/Sources/SwiftHelloBinding.swift | 21 +++ .../Sources/SwiftHelloBinding_Listener.swift | 170 ++++++++++++++++++ ...wift => SwiftHelloBinding_Responder.swift} | 34 ++-- com_jh/Sources/SwiftHelloTest.swift | 2 +- .../Sources/SwiftHelloTest_TestListener.swift | 2 +- .../SwiftHelloTest_TestResponderImpl.swift | 2 +- com_jh/Sources/SwiftHello_Listener.swift | 170 ------------------ genie.jar | Bin 71959 -> 71990 bytes java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- org_genie/Sources/SwiftTest.swift | 2 +- ...SwiftHello.java => SwiftHelloBinding.java} | 2 +- src/genswift.java | 4 +- ...a => SwiftHelloBinding_ListenerProxy.java} | 13 +- .../SwiftHelloTest_TestListenerProxy.java | 1 + swift-android-kotlin | 1 + swift-android-samples | 2 +- 28 files changed, 351 insertions(+), 230 deletions(-) create mode 100644 SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint delete mode 100644 android_dispatch.tgz delete mode 100644 com_jh/Sources/SwiftHello.swift create mode 100644 com_jh/Sources/SwiftHelloBinding.swift create mode 100644 com_jh/Sources/SwiftHelloBinding_Listener.swift rename com_jh/Sources/{SwiftHello_Responder.swift => SwiftHelloBinding_Responder.swift} (66%) delete mode 100644 com_jh/Sources/SwiftHello_Listener.swift rename src/com/jh/{SwiftHello.java => SwiftHelloBinding.java} (92%) rename src/org/genie/com_jh/{SwiftHello_ListenerProxy.java => SwiftHelloBinding_ListenerProxy.java} (53%) create mode 160000 swift-android-kotlin diff --git a/.gitmodules b/.gitmodules index 2826992..6f7112f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,3 +31,6 @@ [submodule "com_apple"] path = com_apple url = https://github.com/SwiftJava/com_apple.git +[submodule "swift-android-kotlin"] + path = swift-android-kotlin + url = https://github.com/SwiftJava/swift-android-kotlin diff --git a/CJavaVM b/CJavaVM index c2b3a49..85acfee 160000 --- a/CJavaVM +++ b/CJavaVM @@ -1 +1 @@ -Subproject commit c2b3a497e5ebe4cfdf979f70cb2de1c2653e3495 +Subproject commit 85acfee62bd8e682fc61881c145cae464254684d diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index faef4a9..a4bbc37 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -534,7 +534,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0800; - LastUpgradeCheck = 0820; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = "John Holdsworth"; TargetAttributes = { BB5ACFDA1D35B09900E2386A = { @@ -548,6 +548,7 @@ CreatedOnToolsVersion = 8.0; DevelopmentTeam = 9V5A8WE85E; DevelopmentTeamName = "John Holdsworth"; + LastSwiftMigration = 0900; ProvisioningStyle = Automatic; }; BBC13DB51D48FDCE0035A039 = { @@ -820,7 +821,9 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -828,7 +831,11 @@ CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -869,7 +876,9 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -877,7 +886,11 @@ CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; diff --git a/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint b/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint new file mode 100644 index 0000000..f6ecde2 --- /dev/null +++ b/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint @@ -0,0 +1,100 @@ +{ + "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "878C2603E03822D160043D9D16A36206CED4E0CA", + "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { + + }, + "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { + "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : 9223372036854775807, + "975F9120751D6C438E9A5C85C38DE132AC6185DA" : 9223372036854775807, + "34073D21618405EACC233186A25025AB1438DB71" : 9223372036854775807, + "D69ED636B0A47DAAE52D01130A54526F3F08576F" : 9223372036854775807, + "F35EB971E2A3FAC98274059126C5879BB91B08C3" : 9223372036854775807, + "88C7909D14364BE1B34BD9FA7515C938F2799EDA" : 9223372036854775807, + "F5602BE39D3BC51A40E8B26B29F3243856A652CB" : 9223372036854775807, + "878C2603E03822D160043D9D16A36206CED4E0CA" : 9223372036854775807, + "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" : 9223372036854775807, + "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : 9223372036854775807, + "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" : 9223372036854775807, + "685A538D4847A574735DC1EA392743F80472F6DF" : 9223372036854775807 + }, + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6BFDE20B-CFCB-4CEC-B3D1-A0DEAE5DDDC0", + "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { + "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : "SwiftJava\/java_swift\/", + "975F9120751D6C438E9A5C85C38DE132AC6185DA" : "SwiftJava\/java_sql\/", + "34073D21618405EACC233186A25025AB1438DB71" : "SwiftJava\/javax_swing\/", + "D69ED636B0A47DAAE52D01130A54526F3F08576F" : "SwiftJava\/swift-android-samples\/", + "F35EB971E2A3FAC98274059126C5879BB91B08C3" : "SwiftJava\/java_lang\/", + "88C7909D14364BE1B34BD9FA7515C938F2799EDA" : "SwiftJava\/com_apple\/", + "F5602BE39D3BC51A40E8B26B29F3243856A652CB" : "SwiftJava\/java_awt\/", + "878C2603E03822D160043D9D16A36206CED4E0CA" : "SwiftJava\/", + "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" : "SwiftJava\/examples\/", + "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : "SwiftJava\/CJavaVM\/", + "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" : "SwiftJava\/swift-android-gradle\/", + "685A538D4847A574735DC1EA392743F80472F6DF" : "SwiftJava\/java_util\/" + }, + "DVTSourceControlWorkspaceBlueprintNameKey" : "SwiftJava", + "DVTSourceControlWorkspaceBlueprintVersion" : 204, + "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "SwiftJava.xcodeproj", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/CJavaVM.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "03D674EFBA86A077C658C74B9BF7405C80AD6E58" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/javax_swing.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "34073D21618405EACC233186A25025AB1438DB71" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/java_util.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "685A538D4847A574735DC1EA392743F80472F6DF" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/swift-android-gradle.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "http:\/\/github.com\/SwiftJava\/SwiftJava", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "878C2603E03822D160043D9D16A36206CED4E0CA" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/com_apple.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "88C7909D14364BE1B34BD9FA7515C938F2799EDA" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/examples.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/java_swift.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/java_sql.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "975F9120751D6C438E9A5C85C38DE132AC6185DA" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/swift-android-samples.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "D69ED636B0A47DAAE52D01130A54526F3F08576F" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/java_lang.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "F35EB971E2A3FAC98274059126C5879BB91B08C3" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/java_awt.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "F5602BE39D3BC51A40E8B26B29F3243856A652CB" + } + ] +} \ No newline at end of file diff --git a/android_dispatch.tgz b/android_dispatch.tgz deleted file mode 100644 index 0d36a692a56b6f9a1f86ed96324b0d6329c80842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1405743 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

TActbmkb0UL~Rbu&`nX-JM+c)lCArHfEZ*6o2} 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 z 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¬3 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

M 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 z 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�dlLGm?D=?u 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

^gB0Y~yuq&QOuYRVZ{r(j=v%D@le6)0 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 g{ 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�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


#xEPgDAwN)OIuH#!DM%*HJ1lt(wC?Qjx`md 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

ugydBAA+GpYIH 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

yk#sjD?3+c7%-A;cp*;S__Bl`V%NG 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 b_5Z&9_w~Q8|9$=c?e%{Ei4O%o02o35rcs@K diff --git a/com_apple b/com_apple index 61aa18d..2c039ee 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 61aa18d16416e9c03eec2ffb8f8df56b389e6bf9 +Subproject commit 2c039ee6e263a843e3cd813516d35fe3f2ff9bd6 diff --git a/com_jh/Sources/SwiftHello.swift b/com_jh/Sources/SwiftHello.swift deleted file mode 100644 index 2b7724e..0000000 --- a/com_jh/Sources/SwiftHello.swift +++ /dev/null @@ -1,21 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:43 BST 2017 /// - -/// interface com.jh.SwiftHello /// - -public protocol SwiftHello: JavaProtocol { - -} - -open class SwiftHelloForward: JNIObjectForward, SwiftHello { - - private static var SwiftHelloJNIClass: jclass? - -} - - diff --git a/com_jh/Sources/SwiftHelloBinding.swift b/com_jh/Sources/SwiftHelloBinding.swift new file mode 100644 index 0000000..18f575a --- /dev/null +++ b/com_jh/Sources/SwiftHelloBinding.swift @@ -0,0 +1,21 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Jul 29 19:01:18 BST 2017 /// + +/// interface com.jh.SwiftHelloBinding /// + +public protocol SwiftHelloBinding: JavaProtocol { + +} + +open class SwiftHelloBindingForward: JNIObjectForward, SwiftHelloBinding { + + private static var SwiftHelloBindingJNIClass: jclass? + +} + + diff --git a/com_jh/Sources/SwiftHelloBinding_Listener.swift b/com_jh/Sources/SwiftHelloBinding_Listener.swift new file mode 100644 index 0000000..3df3986 --- /dev/null +++ b/com_jh/Sources/SwiftHelloBinding_Listener.swift @@ -0,0 +1,170 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Jul 29 19:01:18 BST 2017 /// + +/// interface com.jh.SwiftHelloBinding$Listener /// + +public protocol SwiftHelloBinding_Listener: JavaProtocol { + + /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + func setCacheDir( cacheDir: String? ) + func setCacheDir( _ _cacheDir: String? ) + + /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) + + func processNumber( number: Double ) + func processNumber( _ _number: Double ) + + /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) + + func processText( text: String? ) + func processText( _ _text: String? ) + +} + +open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBinding_Listener { + + private static var SwiftHelloBinding_ListenerJNIClass: jclass? + + /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + private static var setCacheDir_MethodID_4: jmethodID? + + open func setCacheDir( cacheDir: String? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: cacheDir, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_4, args: &__args, locals: &__locals ) + } + + open func setCacheDir( _ _cacheDir: String? ) { + setCacheDir( cacheDir: _cacheDir ) + } + + /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) + + private static var processNumber_MethodID_5: jmethodID? + + open func processNumber( number: Double ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_5, args: &__args, locals: &__locals ) + } + + open func processNumber( _ _number: Double ) { + processNumber( number: _number ) + } + + /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) + + private static var processText_MethodID_6: jmethodID? + + open func processText( text: String? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.processText_MethodID_6, args: &__args, locals: &__locals ) + } + + open func processText( _ _text: String? ) { + processText( text: _text ) + } + +} + + +private typealias SwiftHelloBinding_Listener_setCacheDir_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_setCacheDir_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ cacheDir: jobject? ) -> () { + SwiftHelloBinding_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).setCacheDir( JNIType.decode( type: String(), from: cacheDir ) ) +} + +private typealias SwiftHelloBinding_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () + +private func SwiftHelloBinding_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { + SwiftHelloBinding_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processNumber( JNIType.decode( type: Double(), from: number ) ) +} + +private typealias SwiftHelloBinding_Listener_processText_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_processText_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { + SwiftHelloBinding_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processText( JNIType.decode( type: String(), from: text ) ) +} + +open class SwiftHelloBinding_ListenerBase: JNIObjectProxy, SwiftHelloBinding_Listener { + + private static var nativesRegistered = false + + private static func registerNatives() { + if ( !nativesRegistered ) { + var natives = [JNINativeMethod]() + + let SwiftHelloBinding_Listener_setCacheDir_0_thunk: SwiftHelloBinding_Listener_setCacheDir_0_type = SwiftHelloBinding_Listener_setCacheDir_0 + natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_processNumber_1_thunk: SwiftHelloBinding_Listener_processNumber_1_type = SwiftHelloBinding_Listener_processNumber_1 + natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_processText_2_thunk: SwiftHelloBinding_Listener_processText_2_type = SwiftHelloBinding_Listener_processText_2 + natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + withUnsafePointer(to: &natives[0]) { + nativesPtr in + let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloBinding_ListenerProxy" ) + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) + } + } + + nativesRegistered = true + } + } + + public convenience init() { + self.init( javaObject: nil ) + } + + public required init( javaObject: jobject? ) { + super.init( javaObject: javaObject ) + SwiftHelloBinding_ListenerBase.registerNatives() + createProxy( javaClassName: "org/genie/com_jh/SwiftHelloBinding_ListenerProxy" ) + } + + static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> SwiftHelloBinding_ListenerBase { + return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloBinding_ListenerBase.self ) + } + + /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + open func setCacheDir( cacheDir: String? ) /**/ { + } + + open func setCacheDir( _ _cacheDir: String? ) /**/ { + setCacheDir( cacheDir: _cacheDir ) + } + + /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) + + open func processNumber( number: Double ) /**/ { + } + + open func processNumber( _ _number: Double ) /**/ { + processNumber( number: _number ) + } + + /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) + + open func processText( text: String? ) /**/ { + } + + open func processText( _ _text: String? ) /**/ { + processText( text: _text ) + } + +} diff --git a/com_jh/Sources/SwiftHello_Responder.swift b/com_jh/Sources/SwiftHelloBinding_Responder.swift similarity index 66% rename from com_jh/Sources/SwiftHello_Responder.swift rename to com_jh/Sources/SwiftHelloBinding_Responder.swift index ef90711..864ca54 100644 --- a/com_jh/Sources/SwiftHello_Responder.swift +++ b/com_jh/Sources/SwiftHelloBinding_Responder.swift @@ -4,38 +4,38 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:43 BST 2017 /// +/// Sat Jul 29 19:01:18 BST 2017 /// -/// interface com.jh.SwiftHello$Responder /// +/// interface com.jh.SwiftHelloBinding$Responder /// -public protocol SwiftHello_Responder: JavaProtocol { +public protocol SwiftHelloBinding_Responder: JavaProtocol { - /// public abstract java.lang.String[] com.jh.SwiftHello$Responder.debug(java.lang.String) + /// public abstract java.lang.String[] com.jh.SwiftHelloBinding$Responder.debug(java.lang.String) func debug( msg: String? ) -> [String]! func debug( _ _msg: String? ) -> [String]! - /// public abstract void com.jh.SwiftHello$Responder.processedText(java.lang.String) + /// public abstract void com.jh.SwiftHelloBinding$Responder.processedText(java.lang.String) func processedText( text: String? ) func processedText( _ _text: String? ) - /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() + /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHelloBinding$Responder.testResponder() func testResponder() -> SwiftHelloTest_TestListener! - /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) + /// public abstract void com.jh.SwiftHelloBinding$Responder.processedNumber(double) func processedNumber( number: Double ) func processedNumber( _ _number: Double ) } -open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { +open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBinding_Responder { - private static var SwiftHello_ResponderJNIClass: jclass? + private static var SwiftHelloBinding_ResponderJNIClass: jclass? - /// public abstract java.lang.String[] com.jh.SwiftHello$Responder.debug(java.lang.String) + /// public abstract java.lang.String[] com.jh.SwiftHelloBinding$Responder.debug(java.lang.String) private static var debug_MethodID_5: jmethodID? @@ -43,7 +43,7 @@ open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: msg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHello_ResponderForward.debug_MethodID_5, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_5, args: &__args, locals: &__locals ) return JNIType.decode( type: [String](), from: __return ) } @@ -51,7 +51,7 @@ open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { return debug( msg: _msg ) } - /// public abstract void com.jh.SwiftHello$Responder.processedText(java.lang.String) + /// public abstract void com.jh.SwiftHelloBinding$Responder.processedText(java.lang.String) private static var processedText_MethodID_6: jmethodID? @@ -59,27 +59,27 @@ open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ResponderForward.processedText_MethodID_6, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_6, args: &__args, locals: &__locals ) } open func processedText( _ _text: String? ) { processedText( text: _text ) } - /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHello$Responder.testResponder() + /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHelloBinding$Responder.testResponder() private static var testResponder_MethodID_7: jmethodID? open func testResponder() -> SwiftHelloTest_TestListener! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "()Lcom/jh/SwiftHelloTest$TestListener;", methodCache: &SwiftHello_ResponderForward.testResponder_MethodID_7, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "()Lcom/jh/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_7, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } - /// public abstract void com.jh.SwiftHello$Responder.processedNumber(double) + /// public abstract void com.jh.SwiftHelloBinding$Responder.processedNumber(double) private static var processedNumber_MethodID_8: jmethodID? @@ -87,7 +87,7 @@ open class SwiftHello_ResponderForward: JNIObjectForward, SwiftHello_Responder { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHello_ResponderForward.processedNumber_MethodID_8, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_8, args: &__args, locals: &__locals ) } open func processedNumber( _ _number: Double ) { diff --git a/com_jh/Sources/SwiftHelloTest.swift b/com_jh/Sources/SwiftHelloTest.swift index e0f434f..9410d20 100644 --- a/com_jh/Sources/SwiftHelloTest.swift +++ b/com_jh/Sources/SwiftHelloTest.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:43 BST 2017 /// +/// Sat Jul 29 19:01:18 BST 2017 /// /// interface com.jh.SwiftHelloTest /// diff --git a/com_jh/Sources/SwiftHelloTest_TestListener.swift b/com_jh/Sources/SwiftHelloTest_TestListener.swift index fad9110..6f7e0ca 100644 --- a/com_jh/Sources/SwiftHelloTest_TestListener.swift +++ b/com_jh/Sources/SwiftHelloTest_TestListener.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:43 BST 2017 /// +/// Sat Jul 29 19:01:18 BST 2017 /// /// interface com.jh.SwiftHelloTest$TestListener /// diff --git a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift index ef577fd..30f101f 100644 --- a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift +++ b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:43 BST 2017 /// +/// Sat Jul 29 19:01:18 BST 2017 /// /// class com.jh.SwiftHelloTest$TestResponderImpl /// diff --git a/com_jh/Sources/SwiftHello_Listener.swift b/com_jh/Sources/SwiftHello_Listener.swift deleted file mode 100644 index ae7fcce..0000000 --- a/com_jh/Sources/SwiftHello_Listener.swift +++ /dev/null @@ -1,170 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:43 BST 2017 /// - -/// interface com.jh.SwiftHello$Listener /// - -public protocol SwiftHello_Listener: JavaProtocol { - - /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) - - func setCacheDir( cacheDir: String? ) - func setCacheDir( _ _cacheDir: String? ) - - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) - - func processNumber( number: Double ) - func processNumber( _ _number: Double ) - - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - - func processText( text: String? ) - func processText( _ _text: String? ) - -} - -open class SwiftHello_ListenerForward: JNIObjectForward, SwiftHello_Listener { - - private static var SwiftHello_ListenerJNIClass: jclass? - - /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) - - private static var setCacheDir_MethodID_4: jmethodID? - - open func setCacheDir( cacheDir: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: cacheDir, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.setCacheDir_MethodID_4, args: &__args, locals: &__locals ) - } - - open func setCacheDir( _ _cacheDir: String? ) { - setCacheDir( cacheDir: _cacheDir ) - } - - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) - - private static var processNumber_MethodID_5: jmethodID? - - open func processNumber( number: Double ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHello_ListenerForward.processNumber_MethodID_5, args: &__args, locals: &__locals ) - } - - open func processNumber( _ _number: Double ) { - processNumber( number: _number ) - } - - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - - private static var processText_MethodID_6: jmethodID? - - open func processText( text: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHello_ListenerForward.processText_MethodID_6, args: &__args, locals: &__locals ) - } - - open func processText( _ _text: String? ) { - processText( text: _text ) - } - -} - - -private typealias SwiftHello_Listener_setCacheDir_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () - -private func SwiftHello_Listener_setCacheDir_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ cacheDir: jobject? ) -> () { - SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).setCacheDir( JNIType.decode( type: String(), from: cacheDir ) ) -} - -private typealias SwiftHello_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () - -private func SwiftHello_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { - SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processNumber( JNIType.decode( type: Double(), from: number ) ) -} - -private typealias SwiftHello_Listener_processText_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () - -private func SwiftHello_Listener_processText_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { - SwiftHello_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processText( JNIType.decode( type: String(), from: text ) ) -} - -open class SwiftHello_ListenerBase: JNIObjectProxy, SwiftHello_Listener { - - private static var nativesRegistered = false - - private static func registerNatives() { - if ( !nativesRegistered ) { - var natives = [JNINativeMethod]() - - let SwiftHello_Listener_setCacheDir_0_thunk: SwiftHello_Listener_setCacheDir_0_type = SwiftHello_Listener_setCacheDir_0 - natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHello_Listener_processNumber_1_thunk: SwiftHello_Listener_processNumber_1_type = SwiftHello_Listener_processNumber_1 - natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHello_Listener_processText_2_thunk: SwiftHello_Listener_processText_2_type = SwiftHello_Listener_processText_2 - natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHello_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - withUnsafePointer(to: &natives[0]) { - nativesPtr in - let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHello_ListenerProxy" ) - if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { - JNI.report( "Unable to register java natives" ) - } - } - - nativesRegistered = true - } - } - - public convenience init() { - self.init( javaObject: nil ) - } - - public required init( javaObject: jobject? ) { - super.init( javaObject: javaObject ) - SwiftHello_ListenerBase.registerNatives() - createProxy( javaClassName: "org/genie/com_jh/SwiftHello_ListenerProxy" ) - } - - static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> SwiftHello_ListenerBase { - return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHello_ListenerBase.self ) - } - - /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) - - open func setCacheDir( cacheDir: String? ) /**/ { - } - - open func setCacheDir( _ _cacheDir: String? ) /**/ { - setCacheDir( cacheDir: _cacheDir ) - } - - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) - - open func processNumber( number: Double ) /**/ { - } - - open func processNumber( _ _number: Double ) /**/ { - processNumber( number: _number ) - } - - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) - - open func processText( text: String? ) /**/ { - } - - open func processText( _ _text: String? ) /**/ { - processText( text: _text ) - } - -} diff --git a/genie.jar b/genie.jar index e0d3c796f4f9a35836051995a8d3bc75fda7e060..0e728479fec7588a52edd86982207209541c4fe2 100644 GIT binary patch delta 6126 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 AH2?qr delta 6010 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 V{Q)+i#>8k6U0MPH>`#>4{{d!4KGFaH diff --git a/java_awt b/java_awt index 1ac3da3..5feae5a 160000 --- a/java_awt +++ b/java_awt @@ -1 +1 @@ -Subproject commit 1ac3da38a1388fddc6bb388befa4ba8dc6ec3d73 +Subproject commit 5feae5a35befba1f86b09a1de775515e60da017f diff --git a/java_lang b/java_lang index fabfd4e..9314cb8 160000 --- a/java_lang +++ b/java_lang @@ -1 +1 @@ -Subproject commit fabfd4e7a34863966fa31f5c698f7b24f3b8d1d3 +Subproject commit 9314cb80d80a8131cdc5067cb3bd22d6590b24be diff --git a/java_sql b/java_sql index d12fe75..28461ff 160000 --- a/java_sql +++ b/java_sql @@ -1 +1 @@ -Subproject commit d12fe7533c5fbddabb387b48f4c2bade8cdd0002 +Subproject commit 28461ff56b6674ab067ffa4a797a1d61ad748476 diff --git a/java_swift b/java_swift index d5550c0..e1794c6 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit d5550c0469d7c2d3953581da84f7e94a297e88ed +Subproject commit e1794c6accd1dc9122812d0ecebb8fad3d6318ec diff --git a/java_util b/java_util index ba86907..3a58c13 160000 --- a/java_util +++ b/java_util @@ -1 +1 @@ -Subproject commit ba86907a49e6b6f1de85ce3d79f739fca51350b2 +Subproject commit 3a58c131965361e1d77a0c862585ad876e9cbb6a diff --git a/javax_swing b/javax_swing index 60edaeb..e3ed1a0 160000 --- a/javax_swing +++ b/javax_swing @@ -1 +1 @@ -Subproject commit 60edaeb43f842df99b189a211dde240f7ac7e6a5 +Subproject commit e3ed1a0bfdb4fafb72030f394dc2944c65bc74d4 diff --git a/org_genie/Sources/SwiftTest.swift b/org_genie/Sources/SwiftTest.swift index 100eedc..faf242d 100644 --- a/org_genie/Sources/SwiftTest.swift +++ b/org_genie/Sources/SwiftTest.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 16 10:59:49 BST 2017 /// +/// Sat Jul 29 19:01:25 BST 2017 /// /// class org.genie.SwiftTest /// diff --git a/src/com/jh/SwiftHello.java b/src/com/jh/SwiftHelloBinding.java similarity index 92% rename from src/com/jh/SwiftHello.java rename to src/com/jh/SwiftHelloBinding.java index 823afcc..31a4c4a 100644 --- a/src/com/jh/SwiftHello.java +++ b/src/com/jh/SwiftHelloBinding.java @@ -1,7 +1,7 @@ package com.jh; -public interface SwiftHello { +public interface SwiftHelloBinding { public interface Listener { diff --git a/src/genswift.java b/src/genswift.java index f7a1cc4..8526653 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -1059,7 +1059,9 @@ void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOExc java.append("\n/// "+clazz+" ///\n\n"); - java.append("package "+organisation+currentFramework+";\n\npublic class "+classSuffix+ "Proxy "+ + java.append("package "+organisation+currentFramework+";\n\n"+ + "@SuppressWarnings(\"JniMissingFunction\")\n"+ + "public class "+classSuffix+ "Proxy "+ (isInterface?"implements ":"extends ")+className.replace('$', '.')+" {\n\n"); java.append(" long swiftObject;\n\n"); diff --git a/src/org/genie/com_jh/SwiftHello_ListenerProxy.java b/src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java similarity index 53% rename from src/org/genie/com_jh/SwiftHello_ListenerProxy.java rename to src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java index 531bbba..e324a46 100644 --- a/src/org/genie/com_jh/SwiftHello_ListenerProxy.java +++ b/src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java @@ -1,17 +1,18 @@ -/// interface com.jh.SwiftHello$Listener /// +/// interface com.jh.SwiftHelloBinding$Listener /// package org.genie.com_jh; -public class SwiftHello_ListenerProxy implements com.jh.SwiftHello.Listener { +@SuppressWarnings("JniMissingFunction") +public class SwiftHelloBinding_ListenerProxy implements com.jh.SwiftHelloBinding.Listener { long swiftObject; - SwiftHello_ListenerProxy( long swiftObject ) { + SwiftHelloBinding_ListenerProxy( long swiftObject ) { this.swiftObject = swiftObject; } - /// public abstract void com.jh.SwiftHello$Listener.setCacheDir(java.lang.String) + /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) public native void __setCacheDir( java.lang.String cacheDir ); @@ -19,7 +20,7 @@ public void setCacheDir( java.lang.String cacheDir ) { __setCacheDir( cacheDir ); } - /// public abstract void com.jh.SwiftHello$Listener.processNumber(double) + /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) public native void __processNumber( double number ); @@ -27,7 +28,7 @@ public void processNumber( double number ) { __processNumber( number ); } - /// public abstract void com.jh.SwiftHello$Listener.processText(java.lang.String) + /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) public native void __processText( java.lang.String text ); diff --git a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java index be45531..a6aa800 100644 --- a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java +++ b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java @@ -3,6 +3,7 @@ package org.genie.com_jh; +@SuppressWarnings("JniMissingFunction") public class SwiftHelloTest_TestListenerProxy implements com.jh.SwiftHelloTest.TestListener { long swiftObject; diff --git a/swift-android-kotlin b/swift-android-kotlin new file mode 160000 index 0000000..41243ef --- /dev/null +++ b/swift-android-kotlin @@ -0,0 +1 @@ +Subproject commit 41243eff4d3601def73b71c45272bd3b6bf4828a diff --git a/swift-android-samples b/swift-android-samples index 2ff7f85..bd5fd6c 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 2ff7f85949f6aa09313e27e2189ca34f8590c4c4 +Subproject commit bd5fd6cf55bd4a418bf242c9203c2e762b6a6e26 From 688345496d0d84bc448d85896f74d098444cac1f Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 30 Jul 2017 17:09:19 +0100 Subject: [PATCH 17/53] Xcode 9 & new android toolchain --- SwiftJava.xcodeproj/project.pbxproj | 12 ++++++++---- swift-android-gradle | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index a4bbc37..17ead5a 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -13,8 +13,9 @@ BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5ACFDE1D35B09900E2386A /* AppDelegate.swift */; }; BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; + BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; + BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB6651331F2E3A8D004EFD5F /* swift-android-gradle */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; - BB9CF8961D61BAE8004781B9 /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8951D61BAE8004781B9 /* swift-android-gradle */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; BBAD3EDA1D59DDBC0091D139 /* TableColorSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */; }; BBAD3EE41D5A84700091D139 /* genall.sh in Resources */ = {isa = PBXBuildFile; fileRef = BBAD3EE31D5A84700091D139 /* genall.sh */; }; @@ -211,13 +212,14 @@ BB5ACFE01D35B09900E2386A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; BB5ACFE31D35B09900E2386A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; + BB6651331F2E3A8D004EFD5F /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB8A70511D5AF7AC00840B9E /* build_macos.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_macos.sh; sourceTree = ""; }; BB8A70531D5B164300840B9E /* build_linux.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_linux.sh; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; BB8AC4621D3F11E600BD5B0F /* examples */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = examples; sourceTree = BUILT_PRODUCTS_DIR; }; BB8AC46E1D3F217D00BD5B0F /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = ../../../../Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/server/libjvm.dylib; sourceTree = ""; }; BB9CF8921D619D1C004781B9 /* genhello.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genhello.sh; sourceTree = ""; }; - BB9CF8951D61BAE8004781B9 /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB9CF8971D61BAF4004781B9 /* swift-android-samples */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-samples"; sourceTree = ""; }; BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TableColorSelection.swift; path = Sources/TableColorSelection.swift; sourceTree = ""; }; BBAD3EE31D5A84700091D139 /* genall.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genall.sh; sourceTree = ""; }; @@ -313,8 +315,9 @@ BB8AC4631D3F11E600BD5B0F /* examples */, BBC13DB71D48FDCE0035A039 /* org_genie */, BBF280D81D64BC6100A7AF5D /* src */, - BB9CF8951D61BAE8004781B9 /* swift-android-gradle */, + BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, + BB6651331F2E3A8D004EFD5F /* swift-android-gradle */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, ); @@ -677,11 +680,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, BBAD3EE41D5A84700091D139 /* genall.sh in Resources */, + BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */, BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */, BBF280D91D64BC6100A7AF5D /* src in Resources */, - BB9CF8961D61BAE8004781B9 /* swift-android-gradle in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */, BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */, diff --git a/swift-android-gradle b/swift-android-gradle index b34ab35..39a50bc 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit b34ab35d07161c4573f4c9b28d3a9a0afbb11160 +Subproject commit 39a50bcb4adee128e5dfdc1772684ca938760f06 From f27e5314207a7d2f07b8d88eb91d4ce04bcf4285 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 30 Jul 2017 17:23:39 +0100 Subject: [PATCH 18/53] New Android Toolchain --- .gitignore | 1 - .gitmodules | 3 +++ SwiftJava.xcodeproj/project.pbxproj | 4 ++++ android_toolchain | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) create mode 160000 android_toolchain diff --git a/.gitignore b/.gitignore index d7bf9a9..a7dce23 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ *.class build/ -android* xcuserdata parameters/com parameters/org diff --git a/.gitmodules b/.gitmodules index 6f7112f..b3be35a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -34,3 +34,6 @@ [submodule "swift-android-kotlin"] path = swift-android-kotlin url = https://github.com/SwiftJava/swift-android-kotlin +[submodule "android_toolchain"] + path = android_toolchain + url = https://github.com/SwiftJava/android_toolchain diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 17ead5a..54d2779 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB6651331F2E3A8D004EFD5F /* swift-android-gradle */; }; + BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; BBAD3EDA1D59DDBC0091D139 /* TableColorSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */; }; @@ -214,6 +215,7 @@ BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; BB6651331F2E3A8D004EFD5F /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; + BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; BB8A70511D5AF7AC00840B9E /* build_macos.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_macos.sh; sourceTree = ""; }; BB8A70531D5B164300840B9E /* build_linux.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_linux.sh; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; @@ -315,6 +317,7 @@ BB8AC4631D3F11E600BD5B0F /* examples */, BBC13DB71D48FDCE0035A039 /* org_genie */, BBF280D81D64BC6100A7AF5D /* src */, + BB6651351F2E3F50004EFD5F /* android_toolchain */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, BB6651331F2E3A8D004EFD5F /* swift-android-gradle */, @@ -684,6 +687,7 @@ BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, BBAD3EE41D5A84700091D139 /* genall.sh in Resources */, BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */, + BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */, BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */, BBF280D91D64BC6100A7AF5D /* src in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, diff --git a/android_toolchain b/android_toolchain new file mode 160000 index 0000000..fae8f5b --- /dev/null +++ b/android_toolchain @@ -0,0 +1 @@ +Subproject commit fae8f5bb54e8972b151ea00173e95ca087343319 From ac6813ded6de112e4dc7c18db282848b5fb4416a Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 30 Jul 2017 20:33:43 +0100 Subject: [PATCH 19/53] Changes to JNIObjectProxy.createProxy --- com_jh/Sources/SwiftHelloBinding.swift | 2 +- .../Sources/SwiftHelloBinding_Listener.swift | 41 ++-- .../Sources/SwiftHelloBinding_Responder.swift | 2 +- com_jh/Sources/SwiftHelloTest.swift | 2 +- .../Sources/SwiftHelloTest_TestListener.swift | 229 +++++++++--------- .../SwiftHelloTest_TestResponderImpl.swift | 42 ++-- genie.jar | Bin 71990 -> 71991 bytes java_swift | 2 +- org_genie/Sources/SwiftTest.swift | 2 +- src/genswift.java | 39 ++- .../SwiftHelloTest_TestListenerProxy.java | 16 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 13 files changed, 183 insertions(+), 198 deletions(-) diff --git a/com_jh/Sources/SwiftHelloBinding.swift b/com_jh/Sources/SwiftHelloBinding.swift index 18f575a..085fb54 100644 --- a/com_jh/Sources/SwiftHelloBinding.swift +++ b/com_jh/Sources/SwiftHelloBinding.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:18 BST 2017 /// +/// Sun Jul 30 20:28:32 BST 2017 /// /// interface com.jh.SwiftHelloBinding /// diff --git a/com_jh/Sources/SwiftHelloBinding_Listener.swift b/com_jh/Sources/SwiftHelloBinding_Listener.swift index 3df3986..ba74072 100644 --- a/com_jh/Sources/SwiftHelloBinding_Listener.swift +++ b/com_jh/Sources/SwiftHelloBinding_Listener.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:18 BST 2017 /// +/// Sun Jul 30 20:28:32 BST 2017 /// /// interface com.jh.SwiftHelloBinding$Listener /// @@ -99,32 +99,28 @@ private func SwiftHelloBinding_Listener_processText_2( _ __env: UnsafeMutablePoi open class SwiftHelloBinding_ListenerBase: JNIObjectProxy, SwiftHelloBinding_Listener { - private static var nativesRegistered = false + private static let proxyClass: jclass = { + var natives = [JNINativeMethod]() - private static func registerNatives() { - if ( !nativesRegistered ) { - var natives = [JNINativeMethod]() + let SwiftHelloBinding_Listener_setCacheDir_0_thunk: SwiftHelloBinding_Listener_setCacheDir_0_type = SwiftHelloBinding_Listener_setCacheDir_0 + natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloBinding_Listener_setCacheDir_0_thunk: SwiftHelloBinding_Listener_setCacheDir_0_type = SwiftHelloBinding_Listener_setCacheDir_0 - natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloBinding_Listener_processNumber_1_thunk: SwiftHelloBinding_Listener_processNumber_1_type = SwiftHelloBinding_Listener_processNumber_1 + natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloBinding_Listener_processNumber_1_thunk: SwiftHelloBinding_Listener_processNumber_1_type = SwiftHelloBinding_Listener_processNumber_1 - natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloBinding_Listener_processText_2_thunk: SwiftHelloBinding_Listener_processText_2_type = SwiftHelloBinding_Listener_processText_2 + natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloBinding_Listener_processText_2_thunk: SwiftHelloBinding_Listener_processText_2_type = SwiftHelloBinding_Listener_processText_2 - natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - withUnsafePointer(to: &natives[0]) { - nativesPtr in - let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloBinding_ListenerProxy" ) - if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { - JNI.report( "Unable to register java natives" ) - } + let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloBinding_ListenerProxy" ) + withUnsafePointer(to: &natives[0]) { + nativesPtr in + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) } - - nativesRegistered = true } - } + + return JNI.api.NewGlobalRef( JNI.env, clazz )! + }() public convenience init() { self.init( javaObject: nil ) @@ -132,8 +128,7 @@ open class SwiftHelloBinding_ListenerBase: JNIObjectProxy, SwiftHelloBinding_Lis public required init( javaObject: jobject? ) { super.init( javaObject: javaObject ) - SwiftHelloBinding_ListenerBase.registerNatives() - createProxy( javaClassName: "org/genie/com_jh/SwiftHelloBinding_ListenerProxy" ) + createProxy( className: "org/genie/com_jh/SwiftHelloBinding_ListenerProxy", classObject: SwiftHelloBinding_ListenerBase.proxyClass ) } static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> SwiftHelloBinding_ListenerBase { diff --git a/com_jh/Sources/SwiftHelloBinding_Responder.swift b/com_jh/Sources/SwiftHelloBinding_Responder.swift index 864ca54..03ea295 100644 --- a/com_jh/Sources/SwiftHelloBinding_Responder.swift +++ b/com_jh/Sources/SwiftHelloBinding_Responder.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:18 BST 2017 /// +/// Sun Jul 30 20:28:32 BST 2017 /// /// interface com.jh.SwiftHelloBinding$Responder /// diff --git a/com_jh/Sources/SwiftHelloTest.swift b/com_jh/Sources/SwiftHelloTest.swift index 9410d20..a7608af 100644 --- a/com_jh/Sources/SwiftHelloTest.swift +++ b/com_jh/Sources/SwiftHelloTest.swift @@ -4,7 +4,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:18 BST 2017 /// +/// Sun Jul 30 20:28:33 BST 2017 /// /// interface com.jh.SwiftHelloTest /// diff --git a/com_jh/Sources/SwiftHelloTest_TestListener.swift b/com_jh/Sources/SwiftHelloTest_TestListener.swift index 6f7e0ca..3df5dd6 100644 --- a/com_jh/Sources/SwiftHelloTest_TestListener.swift +++ b/com_jh/Sources/SwiftHelloTest_TestListener.swift @@ -4,17 +4,12 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:18 BST 2017 /// +/// Sun Jul 30 20:28:32 BST 2017 /// /// interface com.jh.SwiftHelloTest$TestListener /// public protocol SwiftHelloTest_TestListener: JavaProtocol { - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - func booleanMethod( arg: Bool ) -> Bool - func booleanMethod( _ _arg: Bool ) -> Bool - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! @@ -25,6 +20,11 @@ public protocol SwiftHelloTest_TestListener: JavaProtocol { func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) + + func booleanMethod( arg: Bool ) -> Bool + func booleanMethod( _ _arg: Bool ) -> Bool + /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) func byteMethod( arg: Int8 ) -> Int8 @@ -151,31 +151,15 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - private static var booleanMethod_MethodID_28: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - private static var booleanArrayMethod_MethodID_29: jmethodID? + private static var booleanArrayMethod_MethodID_28: jmethodID? open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_29, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_28, args: &__args, locals: &__locals ) return JNIType.decode( type: [Bool](), from: __return ) } @@ -185,13 +169,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_30: jmethodID? + private static var boolean2dArrayMethod_MethodID_29: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_30, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -199,6 +183,22 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return boolean2dArrayMethod( arg: _arg ) } + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) + + private static var booleanMethod_MethodID_30: jmethodID? + + open func booleanMethod( arg: Bool ) -> Bool { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_30, args: &__args, locals: &__locals ) + return JNIType.decode( type: Bool(), from: __return ) + } + + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) private static var byteMethod_MethodID_31: jmethodID? @@ -586,27 +586,27 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ } -private typealias SwiftHelloTest_TestListener_booleanMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).z -} - -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_booleanArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_booleanArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).boolean2dArrayMethod( JNIType.decode( type: [[Bool]](), from: arg ) ) return JNIType.encode( value: __return, locals: nil ).l } +private typealias SwiftHelloTest_TestListener_booleanMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean + +private func SwiftHelloTest_TestListener_booleanMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { + let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) + return JNIType.encode( value: __return, locals: nil ).z +} + private typealias SwiftHelloTest_TestListener_byteMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte private func SwiftHelloTest_TestListener_byteMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { @@ -777,104 +777,100 @@ private func SwiftHelloTest_TestListener_String2dArrayMethod_26( _ __env: Unsafe open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestListener { - private static var nativesRegistered = false + private static let proxyClass: jclass = { + var natives = [JNINativeMethod]() - private static func registerNatives() { - if ( !nativesRegistered ) { - var natives = [JNINativeMethod]() + let SwiftHelloTest_TestListener_booleanArrayMethod_0_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_0_type = SwiftHelloTest_TestListener_booleanArrayMethod_0 + natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanMethod_0_thunk: SwiftHelloTest_TestListener_booleanMethod_0_type = SwiftHelloTest_TestListener_booleanMethod_0 - natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_1 + natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_1_type = SwiftHelloTest_TestListener_booleanArrayMethod_1 - natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_booleanMethod_2_thunk: SwiftHelloTest_TestListener_booleanMethod_2_type = SwiftHelloTest_TestListener_booleanMethod_2 + natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_2_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_2 - natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteMethod_3_thunk: SwiftHelloTest_TestListener_byteMethod_3_type = SwiftHelloTest_TestListener_byteMethod_3 + natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byteMethod_3_thunk: SwiftHelloTest_TestListener_byteMethod_3_type = SwiftHelloTest_TestListener_byteMethod_3 - natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byteArrayMethod_4_thunk: SwiftHelloTest_TestListener_byteArrayMethod_4_type = SwiftHelloTest_TestListener_byteArrayMethod_4 + natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byteArrayMethod_4_thunk: SwiftHelloTest_TestListener_byteArrayMethod_4_type = SwiftHelloTest_TestListener_byteArrayMethod_4 - natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = SwiftHelloTest_TestListener_byte2dArrayMethod_5 + natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = SwiftHelloTest_TestListener_byte2dArrayMethod_5 - natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_charMethod_6_thunk: SwiftHelloTest_TestListener_charMethod_6_type = SwiftHelloTest_TestListener_charMethod_6 + natives.append( JNINativeMethod( name: strdup("__charMethod"), signature: strdup("(C)C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charMethod_6_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_charMethod_6_thunk: SwiftHelloTest_TestListener_charMethod_6_type = SwiftHelloTest_TestListener_charMethod_6 - natives.append( JNINativeMethod( name: strdup("__charMethod"), signature: strdup("(C)C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charMethod_6_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_charArrayMethod_7_thunk: SwiftHelloTest_TestListener_charArrayMethod_7_type = SwiftHelloTest_TestListener_charArrayMethod_7 + natives.append( JNINativeMethod( name: strdup("__charArrayMethod"), signature: strdup("([C)[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charArrayMethod_7_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_charArrayMethod_7_thunk: SwiftHelloTest_TestListener_charArrayMethod_7_type = SwiftHelloTest_TestListener_charArrayMethod_7 - natives.append( JNINativeMethod( name: strdup("__charArrayMethod"), signature: strdup("([C)[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charArrayMethod_7_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_char2dArrayMethod_8_thunk: SwiftHelloTest_TestListener_char2dArrayMethod_8_type = SwiftHelloTest_TestListener_char2dArrayMethod_8 + natives.append( JNINativeMethod( name: strdup("__char2dArrayMethod"), signature: strdup("([[C)[[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_char2dArrayMethod_8_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_char2dArrayMethod_8_thunk: SwiftHelloTest_TestListener_char2dArrayMethod_8_type = SwiftHelloTest_TestListener_char2dArrayMethod_8 - natives.append( JNINativeMethod( name: strdup("__char2dArrayMethod"), signature: strdup("([[C)[[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_char2dArrayMethod_8_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_shortMethod_9_thunk: SwiftHelloTest_TestListener_shortMethod_9_type = SwiftHelloTest_TestListener_shortMethod_9 + natives.append( JNINativeMethod( name: strdup("__shortMethod"), signature: strdup("(S)S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortMethod_9_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_shortMethod_9_thunk: SwiftHelloTest_TestListener_shortMethod_9_type = SwiftHelloTest_TestListener_shortMethod_9 - natives.append( JNINativeMethod( name: strdup("__shortMethod"), signature: strdup("(S)S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortMethod_9_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_shortArrayMethod_10_thunk: SwiftHelloTest_TestListener_shortArrayMethod_10_type = SwiftHelloTest_TestListener_shortArrayMethod_10 + natives.append( JNINativeMethod( name: strdup("__shortArrayMethod"), signature: strdup("([S)[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortArrayMethod_10_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_shortArrayMethod_10_thunk: SwiftHelloTest_TestListener_shortArrayMethod_10_type = SwiftHelloTest_TestListener_shortArrayMethod_10 - natives.append( JNINativeMethod( name: strdup("__shortArrayMethod"), signature: strdup("([S)[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortArrayMethod_10_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_short2dArrayMethod_11_thunk: SwiftHelloTest_TestListener_short2dArrayMethod_11_type = SwiftHelloTest_TestListener_short2dArrayMethod_11 + natives.append( JNINativeMethod( name: strdup("__short2dArrayMethod"), signature: strdup("([[S)[[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_short2dArrayMethod_11_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_short2dArrayMethod_11_thunk: SwiftHelloTest_TestListener_short2dArrayMethod_11_type = SwiftHelloTest_TestListener_short2dArrayMethod_11 - natives.append( JNINativeMethod( name: strdup("__short2dArrayMethod"), signature: strdup("([[S)[[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_short2dArrayMethod_11_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_intMethod_12_thunk: SwiftHelloTest_TestListener_intMethod_12_type = SwiftHelloTest_TestListener_intMethod_12 + natives.append( JNINativeMethod( name: strdup("__intMethod"), signature: strdup("(I)I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intMethod_12_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_intMethod_12_thunk: SwiftHelloTest_TestListener_intMethod_12_type = SwiftHelloTest_TestListener_intMethod_12 - natives.append( JNINativeMethod( name: strdup("__intMethod"), signature: strdup("(I)I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intMethod_12_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_intArrayMethod_13_thunk: SwiftHelloTest_TestListener_intArrayMethod_13_type = SwiftHelloTest_TestListener_intArrayMethod_13 + natives.append( JNINativeMethod( name: strdup("__intArrayMethod"), signature: strdup("([I)[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intArrayMethod_13_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_intArrayMethod_13_thunk: SwiftHelloTest_TestListener_intArrayMethod_13_type = SwiftHelloTest_TestListener_intArrayMethod_13 - natives.append( JNINativeMethod( name: strdup("__intArrayMethod"), signature: strdup("([I)[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intArrayMethod_13_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_int2dArrayMethod_14_thunk: SwiftHelloTest_TestListener_int2dArrayMethod_14_type = SwiftHelloTest_TestListener_int2dArrayMethod_14 + natives.append( JNINativeMethod( name: strdup("__int2dArrayMethod"), signature: strdup("([[I)[[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_int2dArrayMethod_14_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_int2dArrayMethod_14_thunk: SwiftHelloTest_TestListener_int2dArrayMethod_14_type = SwiftHelloTest_TestListener_int2dArrayMethod_14 - natives.append( JNINativeMethod( name: strdup("__int2dArrayMethod"), signature: strdup("([[I)[[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_int2dArrayMethod_14_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_longMethod_15_thunk: SwiftHelloTest_TestListener_longMethod_15_type = SwiftHelloTest_TestListener_longMethod_15 + natives.append( JNINativeMethod( name: strdup("__longMethod"), signature: strdup("(J)J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longMethod_15_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_longMethod_15_thunk: SwiftHelloTest_TestListener_longMethod_15_type = SwiftHelloTest_TestListener_longMethod_15 - natives.append( JNINativeMethod( name: strdup("__longMethod"), signature: strdup("(J)J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longMethod_15_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_longArrayMethod_16_thunk: SwiftHelloTest_TestListener_longArrayMethod_16_type = SwiftHelloTest_TestListener_longArrayMethod_16 + natives.append( JNINativeMethod( name: strdup("__longArrayMethod"), signature: strdup("([J)[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longArrayMethod_16_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_longArrayMethod_16_thunk: SwiftHelloTest_TestListener_longArrayMethod_16_type = SwiftHelloTest_TestListener_longArrayMethod_16 - natives.append( JNINativeMethod( name: strdup("__longArrayMethod"), signature: strdup("([J)[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longArrayMethod_16_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_long2dArrayMethod_17_thunk: SwiftHelloTest_TestListener_long2dArrayMethod_17_type = SwiftHelloTest_TestListener_long2dArrayMethod_17 + natives.append( JNINativeMethod( name: strdup("__long2dArrayMethod"), signature: strdup("([[J)[[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_long2dArrayMethod_17_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_long2dArrayMethod_17_thunk: SwiftHelloTest_TestListener_long2dArrayMethod_17_type = SwiftHelloTest_TestListener_long2dArrayMethod_17 - natives.append( JNINativeMethod( name: strdup("__long2dArrayMethod"), signature: strdup("([[J)[[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_long2dArrayMethod_17_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_floatMethod_18_thunk: SwiftHelloTest_TestListener_floatMethod_18_type = SwiftHelloTest_TestListener_floatMethod_18 + natives.append( JNINativeMethod( name: strdup("__floatMethod"), signature: strdup("(F)F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatMethod_18_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_floatMethod_18_thunk: SwiftHelloTest_TestListener_floatMethod_18_type = SwiftHelloTest_TestListener_floatMethod_18 - natives.append( JNINativeMethod( name: strdup("__floatMethod"), signature: strdup("(F)F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatMethod_18_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_floatArrayMethod_19_thunk: SwiftHelloTest_TestListener_floatArrayMethod_19_type = SwiftHelloTest_TestListener_floatArrayMethod_19 + natives.append( JNINativeMethod( name: strdup("__floatArrayMethod"), signature: strdup("([F)[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatArrayMethod_19_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_floatArrayMethod_19_thunk: SwiftHelloTest_TestListener_floatArrayMethod_19_type = SwiftHelloTest_TestListener_floatArrayMethod_19 - natives.append( JNINativeMethod( name: strdup("__floatArrayMethod"), signature: strdup("([F)[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatArrayMethod_19_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_float2dArrayMethod_20_thunk: SwiftHelloTest_TestListener_float2dArrayMethod_20_type = SwiftHelloTest_TestListener_float2dArrayMethod_20 + natives.append( JNINativeMethod( name: strdup("__float2dArrayMethod"), signature: strdup("([[F)[[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_float2dArrayMethod_20_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_float2dArrayMethod_20_thunk: SwiftHelloTest_TestListener_float2dArrayMethod_20_type = SwiftHelloTest_TestListener_float2dArrayMethod_20 - natives.append( JNINativeMethod( name: strdup("__float2dArrayMethod"), signature: strdup("([[F)[[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_float2dArrayMethod_20_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_doubleMethod_21_thunk: SwiftHelloTest_TestListener_doubleMethod_21_type = SwiftHelloTest_TestListener_doubleMethod_21 + natives.append( JNINativeMethod( name: strdup("__doubleMethod"), signature: strdup("(D)D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleMethod_21_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_doubleMethod_21_thunk: SwiftHelloTest_TestListener_doubleMethod_21_type = SwiftHelloTest_TestListener_doubleMethod_21 - natives.append( JNINativeMethod( name: strdup("__doubleMethod"), signature: strdup("(D)D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleMethod_21_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_doubleArrayMethod_22_thunk: SwiftHelloTest_TestListener_doubleArrayMethod_22_type = SwiftHelloTest_TestListener_doubleArrayMethod_22 + natives.append( JNINativeMethod( name: strdup("__doubleArrayMethod"), signature: strdup("([D)[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleArrayMethod_22_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_doubleArrayMethod_22_thunk: SwiftHelloTest_TestListener_doubleArrayMethod_22_type = SwiftHelloTest_TestListener_doubleArrayMethod_22 - natives.append( JNINativeMethod( name: strdup("__doubleArrayMethod"), signature: strdup("([D)[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleArrayMethod_22_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_double2dArrayMethod_23_thunk: SwiftHelloTest_TestListener_double2dArrayMethod_23_type = SwiftHelloTest_TestListener_double2dArrayMethod_23 + natives.append( JNINativeMethod( name: strdup("__double2dArrayMethod"), signature: strdup("([[D)[[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_double2dArrayMethod_23_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_double2dArrayMethod_23_thunk: SwiftHelloTest_TestListener_double2dArrayMethod_23_type = SwiftHelloTest_TestListener_double2dArrayMethod_23 - natives.append( JNINativeMethod( name: strdup("__double2dArrayMethod"), signature: strdup("([[D)[[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_double2dArrayMethod_23_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_StringMethod_24_thunk: SwiftHelloTest_TestListener_StringMethod_24_type = SwiftHelloTest_TestListener_StringMethod_24 + natives.append( JNINativeMethod( name: strdup("__StringMethod"), signature: strdup("(Ljava/lang/String;)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringMethod_24_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_StringMethod_24_thunk: SwiftHelloTest_TestListener_StringMethod_24_type = SwiftHelloTest_TestListener_StringMethod_24 - natives.append( JNINativeMethod( name: strdup("__StringMethod"), signature: strdup("(Ljava/lang/String;)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringMethod_24_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_StringArrayMethod_25_thunk: SwiftHelloTest_TestListener_StringArrayMethod_25_type = SwiftHelloTest_TestListener_StringArrayMethod_25 + natives.append( JNINativeMethod( name: strdup("__StringArrayMethod"), signature: strdup("([Ljava/lang/String;)[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringArrayMethod_25_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_StringArrayMethod_25_thunk: SwiftHelloTest_TestListener_StringArrayMethod_25_type = SwiftHelloTest_TestListener_StringArrayMethod_25 - natives.append( JNINativeMethod( name: strdup("__StringArrayMethod"), signature: strdup("([Ljava/lang/String;)[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringArrayMethod_25_thunk, to: UnsafeMutableRawPointer.self ) ) ) + let SwiftHelloTest_TestListener_String2dArrayMethod_26_thunk: SwiftHelloTest_TestListener_String2dArrayMethod_26_type = SwiftHelloTest_TestListener_String2dArrayMethod_26 + natives.append( JNINativeMethod( name: strdup("__String2dArrayMethod"), signature: strdup("([[Ljava/lang/String;)[[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_String2dArrayMethod_26_thunk, to: UnsafeMutableRawPointer.self ) ) ) - let SwiftHelloTest_TestListener_String2dArrayMethod_26_thunk: SwiftHelloTest_TestListener_String2dArrayMethod_26_type = SwiftHelloTest_TestListener_String2dArrayMethod_26 - natives.append( JNINativeMethod( name: strdup("__String2dArrayMethod"), signature: strdup("([[Ljava/lang/String;)[[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_String2dArrayMethod_26_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - withUnsafePointer(to: &natives[0]) { - nativesPtr in - let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloTest_TestListenerProxy" ) - if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { - JNI.report( "Unable to register java natives" ) - } + let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloTest_TestListenerProxy" ) + withUnsafePointer(to: &natives[0]) { + nativesPtr in + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) } - - nativesRegistered = true } - } + + return JNI.api.NewGlobalRef( JNI.env, clazz )! + }() public convenience init() { self.init( javaObject: nil ) @@ -882,24 +878,13 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL public required init( javaObject: jobject? ) { super.init( javaObject: javaObject ) - SwiftHelloTest_TestListenerBase.registerNatives() - createProxy( javaClassName: "org/genie/com_jh/SwiftHelloTest_TestListenerProxy" ) + createProxy( className: "org/genie/com_jh/SwiftHelloTest_TestListenerProxy", classObject: SwiftHelloTest_TestListenerBase.proxyClass ) } static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> SwiftHelloTest_TestListenerBase { return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloTest_TestListenerBase.self ) } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - open func booleanMethod( arg: Bool ) -> Bool /**/ { - return false - } - - open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { - return booleanMethod( arg: _arg ) - } - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { @@ -920,6 +905,16 @@ open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestL return boolean2dArrayMethod( arg: _arg ) } + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) + + open func booleanMethod( arg: Bool ) -> Bool /**/ { + return false + } + + open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { + return booleanMethod( arg: _arg ) + } + /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) open func byteMethod( arg: Int8 ) -> Int8 /**/ { diff --git a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift index 30f101f..a5fcc19 100644 --- a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift +++ b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:18 BST 2017 /// +/// Sun Jul 30 20:28:32 BST 2017 /// /// class com.jh.SwiftHelloTest$TestResponderImpl /// @@ -35,31 +35,15 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes JNI.DeleteLocalRef( __object ) } - /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - - private static var booleanMethod_MethodID_2: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) - private static var booleanArrayMethod_MethodID_3: jmethodID? + private static var booleanArrayMethod_MethodID_2: jmethodID? open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_3, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_2, args: &__args, locals: &__locals ) return JNIType.decode( type: [Bool](), from: __return ) } @@ -69,13 +53,13 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes /// public boolean[][] com.jh.SwiftHelloTest$TestResponderImpl.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_4: jmethodID? + private static var boolean2dArrayMethod_MethodID_3: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_4, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) return JNIType.decode( type: [[Bool]](), from: __return ) } @@ -83,6 +67,22 @@ open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTes return boolean2dArrayMethod( arg: _arg ) } + /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) + + private static var booleanMethod_MethodID_4: jmethodID? + + open func booleanMethod( arg: Bool ) -> Bool { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.encode( value: arg, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_4, args: &__args, locals: &__locals ) + return JNIType.decode( type: Bool(), from: __return ) + } + + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + /// public byte com.jh.SwiftHelloTest$TestResponderImpl.byteMethod(byte) private static var byteMethod_MethodID_5: jmethodID? diff --git a/genie.jar b/genie.jar index 0e728479fec7588a52edd86982207209541c4fe2..dfb202826722bf3078f05ac03ffd798238ab0b1c 100644 GIT binary patch delta 5526 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 diff --git a/java_swift b/java_swift index e1794c6..0417d76 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit e1794c6accd1dc9122812d0ecebb8fad3d6318ec +Subproject commit 0417d762c0b0f2a79b54942c2c76268353c95a23 diff --git a/org_genie/Sources/SwiftTest.swift b/org_genie/Sources/SwiftTest.swift index faf242d..58e5321 100644 --- a/org_genie/Sources/SwiftTest.swift +++ b/org_genie/Sources/SwiftTest.swift @@ -5,7 +5,7 @@ import java_lang /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// /// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Jul 29 19:01:25 BST 2017 /// +/// Sun Jul 30 20:28:39 BST 2017 /// /// class org.genie.SwiftTest /// diff --git a/src/genswift.java b/src/genswift.java index 8526653..6b0e151 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -973,42 +973,38 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect if ( !isInterface ) code.append( " private static var "+classSuffix+"BaseJNIClass: jclass?\n" ); - code.append(" private static var nativesRegistered = false\n\n"); - - code.append(" private static func registerNatives() {\n"); - code.append(" if ( !nativesRegistered ) {\n"); - code.append(" var natives = [JNINativeMethod]()\n\n"); + code.append(" private static let proxyClass: jclass = {\n"); + code.append(" var natives = [JNINativeMethod]()\n\n"); for (int i = 0; i < methods.length; i++) { Method method = newMethod( methods[i] ); if ( skipCallbackMethod( method ) ) continue; if ( crashesCompilerOnLinx( method ) ) - code.append(" #if !os(Linux)\n"); + code.append(" #if !os(Linux)\n"); String jniName = jniName(method, i); - code.append(" let " + jniName + "_thunk: " + jniName + "_type = " + jniName + "\n"); - code.append(" natives.append( JNINativeMethod( name: strdup(\"__" + method.getName() + "\")" + code.append(" let " + jniName + "_thunk: " + jniName + "_type = " + jniName + "\n"); + code.append(" natives.append( JNINativeMethod( name: strdup(\"__" + method.getName() + "\")" + ", signature: strdup(\"" + jniSignature(method) + "\"), fnPtr: unsafeBitCast( " + jniName + "_thunk, to: UnsafeMutableRawPointer.self ) ) )\n"); if ( crashesCompilerOnLinx( method ) ) - code.append(" #endif\n"); + code.append(" #endif\n"); code.append("\n"); } String proxyClass = "org/genie/" + currentFramework + "/" + classSuffix + "Proxy"; + code.append(" let clazz = JNI.FindClass( \"" + proxyClass + "\" )\n"); - code.append(" withUnsafePointer(to: &natives[0]) {\n"); - code.append(" nativesPtr in\n"); - code.append(" let clazz = JNI.FindClass( \"" + proxyClass + "\" )\n"); - code.append(" if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) {\n"); - code.append(" JNI.report( \"Unable to register java natives\" )\n"); - code.append(" }\n"); - code.append(" }\n\n"); - code.append(" nativesRegistered = true\n"); - code.append(" }\n"); - code.append(" }\n\n"); + code.append(" withUnsafePointer(to: &natives[0]) {\n"); + code.append(" nativesPtr in\n"); + code.append(" if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) {\n"); + code.append(" JNI.report( \"Unable to register java natives\" )\n"); + code.append(" }\n"); + code.append(" }\n\n"); + code.append(" return JNI.api.NewGlobalRef( JNI.env, clazz )!\n"); + code.append(" }()\n\n"); if ( isInterface ) { code.append(" public convenience init() {\n"); @@ -1026,7 +1022,7 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" }\n"); code.append(" set(newValue) {\n"); code.append(" super.javaObject = newValue\n"); - code.append(" "+classSuffix+"Base.registerNatives()\n"); + code.append(" _ = "+classSuffix+"Base.proxyClass\n"); code.append(" updateSwiftObject()\n"); code.append(" }\n }\n\n"); } @@ -1034,8 +1030,7 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" public required init( javaObject: jobject? ) {\n"); code.append(" super.init( javaObject: javaObject )\n"); if ( isInterface ) { - code.append(" "+classSuffix+"Base.registerNatives()\n"); - code.append(" createProxy( javaClassName: \""+proxyClass+"\" )\n"); + code.append(" createProxy( className: \""+proxyClass+"\", classObject: "+classSuffix+"Base.proxyClass )\n"); } code.append(" }\n\n"); code.append(" static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> " + classSuffix + "Base {\n"); diff --git a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java index a6aa800..825a7d1 100644 --- a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java +++ b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java @@ -12,14 +12,6 @@ public class SwiftHelloTest_TestListenerProxy implements com.jh.SwiftHelloTest.T this.swiftObject = swiftObject; } - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - public native boolean __booleanMethod( boolean arg ); - - public boolean booleanMethod( boolean arg ) { - return __booleanMethod( arg ); - } - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) public native boolean[] __booleanArrayMethod( boolean[] arg ); @@ -36,6 +28,14 @@ public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { return __boolean2dArrayMethod( arg ); } + /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) + + public native boolean __booleanMethod( boolean arg ); + + public boolean booleanMethod( boolean arg ) { + return __booleanMethod( arg ); + } + /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) public native byte __byteMethod( byte arg ); diff --git a/swift-android-kotlin b/swift-android-kotlin index 41243ef..17ef816 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 41243eff4d3601def73b71c45272bd3b6bf4828a +Subproject commit 17ef81610fb14374381c76b1251ef5bbbeba869b diff --git a/swift-android-samples b/swift-android-samples index bd5fd6c..6094b36 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit bd5fd6cf55bd4a418bf242c9203c2e762b6a6e26 +Subproject commit 6094b367cb91485449597e603d7ccabfdf58a59c From 63918fd165140816b94e9c5dfdeb2a4bc7595d1a Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 6 Aug 2017 17:19:17 +0100 Subject: [PATCH 20/53] Updated for Version 2 --- .classpath | 2 +- .gitignore | 1 + JDBC/AppDelegate.swift | 8 +- README.md | 45 +- SwiftJava.xcodeproj/project.pbxproj | 206 +- .../xcshareddata/SwiftJava.xcscmblueprint | 48 +- com_apple | 2 +- .../Sources/SwiftHelloBinding.swift | 22 + .../Sources/SwiftHelloBinding_Listener.swift | 298 ++ .../SwiftHelloBinding_ListenerMap.swift | 78 + .../SwiftHelloBinding_ListenerMapList.swift | 78 + .../Sources/SwiftHelloBinding_Responder.swift | 196 ++ .../Sources/SwiftHelloTest.swift | 22 + .../Sources/SwiftHelloTestImpl.swift | 315 ++ .../Sources/SwiftHelloTest_John.swift | 65 + .../Sources/SwiftHelloTest_ListenerMap.swift | 78 + .../SwiftHelloTest_ListenerMapList.swift | 78 + .../SwiftHelloTest_SwiftTestListener.swift | 69 + .../Sources/SwiftHelloTest_TestListener.swift | 1477 ++++++++++ .../SwiftHelloTest_TestResponderAdapter.swift | 1106 +++++++ .../Sources/SwiftHelloTypes.swift | 22 + .../Sources/SwiftHelloTypes_ListenerMap.swift | 78 + .../SwiftHelloTypes_ListenerMapList.swift | 78 + .../SwiftHelloTypes_TextListener.swift | 95 + examples | 2 +- genall.sh | 4 +- genhello.sh | 33 +- genie.jar | Bin 71991 -> 0 bytes genjar.sh | 10 +- genpkg.sh | 6 +- genswift.sh | 6 +- gentests.rb | 178 +- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- {org_genie => org_swiftjava}/Info.plist | 0 .../Sources/SwiftTest.swift | 1041 ++++--- .../org_swiftjava.swift | 207 +- {org_genie => org_swiftjava}/test_body.swift | 192 +- overrides.pl | 5 +- .../bindings/SwiftHelloBinding.java | 50 + .../bindings/SwiftHelloTest.java | 391 +++ .../bindings/SwiftHelloTypes.java | 37 + src/genswift.java | 2577 +++++++++-------- .../genie/com_apple/AboutHandlerProxy.java | 22 - .../com_apple/AppEventListenerProxy.java | 14 - .../com_apple/AppForegroundListenerProxy.java | 30 - .../com_apple/AppHiddenListenerProxy.java | 30 - .../com_apple/AppReOpenedListenerProxy.java | 22 - .../genie/com_apple/GestureListenerProxy.java | 14 - .../com_apple/GesturePhaseListenerProxy.java | 30 - .../com_apple/MagnificationListenerProxy.java | 22 - .../com_apple/OpenFilesHandlerProxy.java | 22 - .../genie/com_apple/OpenURIHandlerProxy.java | 22 - .../com_apple/PreferencesHandlerProxy.java | 22 - .../com_apple/PrintFilesHandlerProxy.java | 22 - src/org/genie/com_apple/QuitHandlerProxy.java | 22 - .../com_apple/RotationListenerProxy.java | 22 - .../com_apple/ScreenSleepListenerProxy.java | 30 - .../com_apple/SystemSleepListenerProxy.java | 30 - .../com_apple/UserSessionListenerProxy.java | 30 - .../SwiftHelloBinding_ListenerProxy.java | 39 - .../SwiftHelloTest_TestListenerProxy.java | 231 -- .../genie/java_awt/AWTEventListenerProxy.java | 22 - .../genie/java_awt/ActionListenerProxy.java | 22 - .../java_awt/AdjustmentListenerProxy.java | 22 - src/org/genie/java_awt/CanvasProxy.java | 56 - .../java_awt/ComponentListenerProxy.java | 46 - .../java_awt/ContainerListenerProxy.java | 30 - .../java_awt/DragGestureListenerProxy.java | 22 - .../java_awt/DragSourceListenerProxy.java | 54 - .../DragSourceMotionListenerProxy.java | 22 - .../java_awt/DropTargetListenerProxy.java | 54 - src/org/genie/java_awt/FileDialogProxy.java | 68 - .../genie/java_awt/FlavorListenerProxy.java | 22 - .../genie/java_awt/FocusListenerProxy.java | 30 - src/org/genie/java_awt/FrameProxy.java | 54 - .../HierarchyBoundsListenerProxy.java | 30 - .../java_awt/HierarchyListenerProxy.java | 22 - .../java_awt/InputMethodListenerProxy.java | 30 - src/org/genie/java_awt/ItemListenerProxy.java | 22 - src/org/genie/java_awt/KeyListenerProxy.java | 38 - .../genie/java_awt/LayoutManagerProxy.java | 54 - .../genie/java_awt/MouseListenerProxy.java | 54 - .../java_awt/MouseMotionListenerProxy.java | 30 - .../java_awt/MouseWheelListenerProxy.java | 22 - src/org/genie/java_awt/TextListenerProxy.java | 22 - .../java_awt/WindowFocusListenerProxy.java | 30 - .../genie/java_awt/WindowListenerProxy.java | 70 - .../java_awt/WindowStateListenerProxy.java | 22 - .../java_lang/InvocationHandlerProxy.java | 22 - src/org/genie/java_lang/RunnableProxy.java | 22 - .../Thread_UncaughtExceptionHandlerProxy.java | 22 - .../genie/java_util/EventListenerProxy.java | 14 - .../java_util/NodeChangeListenerProxy.java | 30 - .../PreferenceChangeListenerProxy.java | 22 - .../RejectedExecutionHandlerProxy.java | 22 - .../javax_swing/AncestorListenerProxy.java | 38 - .../genie/javax_swing/CaretListenerProxy.java | 22 - .../javax_swing/CellEditorListenerProxy.java | 30 - .../javax_swing/ChangeListenerProxy.java | 22 - .../javax_swing/DefaultTableModelProxy.java | 69 - .../javax_swing/DesktopManagerProxy.java | 134 - .../javax_swing/DocumentListenerProxy.java | 38 - .../javax_swing/HyperlinkListenerProxy.java | 22 - .../InternalFrameListenerProxy.java | 70 - .../JComboBox_KeySelectionManagerProxy.java | 22 - src/org/genie/javax_swing/JDialogProxy.java | 138 - src/org/genie/javax_swing/JFrameProxy.java | 54 - src/org/genie/javax_swing/JWindowProxy.java | 61 - .../javax_swing/ListDataListenerProxy.java | 38 - .../ListSelectionListenerProxy.java | 22 - .../MenuDragMouseListenerProxy.java | 46 - .../javax_swing/MenuKeyListenerProxy.java | 38 - .../genie/javax_swing/MenuListenerProxy.java | 38 - .../javax_swing/MouseInputListenerProxy.java | 70 - .../genie/javax_swing/PlainDocumentProxy.java | 40 - .../javax_swing/PopupMenuListenerProxy.java | 38 - .../javax_swing/RowSorterListenerProxy.java | 22 - .../javax_swing/TableModelListenerProxy.java | 22 - .../TreeExpansionListenerProxy.java | 30 - .../javax_swing/TreeModelListenerProxy.java | 46 - .../TreeSelectionListenerProxy.java | 22 - .../TreeWillExpandListenerProxy.java | 30 - .../UndoableEditListenerProxy.java | 22 - src/org/{genie => swiftjava}/SwiftTest.java | 93 +- .../com_apple/AboutHandlerProxy.java | 29 + .../com_apple/AppEventListenerProxy.java | 21 + .../com_apple/AppForegroundListenerProxy.java | 37 + .../com_apple/AppHiddenListenerProxy.java | 37 + .../com_apple/AppReOpenedListenerProxy.java | 29 + .../com_apple/ApplicationAdapterProxy.java | 55 +- .../com_apple/ApplicationListenerProxy.java | 43 +- .../com_apple/FullScreenAdapterProxy.java | 43 +- .../com_apple/FullScreenListenerProxy.java | 31 +- .../com_apple/GestureAdapterProxy.java | 59 +- .../com_apple/GestureListenerProxy.java | 21 + .../com_apple/GesturePhaseListenerProxy.java | 37 + .../com_apple/MagnificationListenerProxy.java | 29 + .../com_apple/OpenFilesHandlerProxy.java | 29 + .../com_apple/OpenURIHandlerProxy.java | 29 + .../com_apple/PreferencesHandlerProxy.java | 29 + .../com_apple/PrintFilesHandlerProxy.java | 29 + .../swiftjava/com_apple/QuitHandlerProxy.java | 29 + .../com_apple/RotationListenerProxy.java | 29 + .../com_apple/ScreenSleepListenerProxy.java | 37 + .../com_apple/SwipeListenerProxy.java | 31 +- .../com_apple/SystemSleepListenerProxy.java | 37 + .../com_apple/UserSessionListenerProxy.java | 37 + .../SwiftHelloBinding_ListenerProxy.java | 69 + .../SwiftHelloTest_TestListenerProxy.java | 285 ++ ...ftHelloTest_TestResponderAdapterProxy.java | 635 ++++ .../SwiftHelloTypes_TextListenerProxy.java | 29 + .../java_awt/AWTEventListenerProxy.java | 29 + .../java_awt/ActionListenerProxy.java | 29 + .../java_awt/AdjustmentListenerProxy.java | 29 + src/org/swiftjava/java_awt/CanvasProxy.java | 63 + .../java_awt/ComponentAdapterProxy.java | 59 +- .../java_awt/ComponentListenerProxy.java | 53 + .../java_awt/ContainerAdapterProxy.java | 43 +- .../java_awt/ContainerListenerProxy.java | 37 + .../java_awt/DialogProxy.java | 119 +- .../java_awt/DragGestureListenerProxy.java | 29 + .../java_awt/DragSourceAdapterProxy.java | 75 +- .../java_awt/DragSourceListenerProxy.java | 61 + .../DragSourceMotionListenerProxy.java | 29 + .../java_awt/DropTargetListenerProxy.java | 61 + .../swiftjava/java_awt/FileDialogProxy.java | 75 + .../java_awt/FlavorListenerProxy.java | 29 + .../java_awt/FocusAdapterProxy.java | 43 +- .../java_awt/FocusListenerProxy.java | 37 + src/org/swiftjava/java_awt/FrameProxy.java | 61 + .../java_awt/HierarchyBoundsAdapterProxy.java | 43 +- .../HierarchyBoundsListenerProxy.java | 37 + .../java_awt/HierarchyListenerProxy.java | 29 + .../java_awt/InputMethodListenerProxy.java | 37 + .../swiftjava/java_awt/ItemListenerProxy.java | 29 + .../java_awt/KeyAdapterProxy.java | 51 +- .../swiftjava/java_awt/KeyListenerProxy.java | 45 + .../java_awt/LayoutManagerProxy.java | 61 + .../java_awt/MouseAdapterProxy.java | 91 +- .../java_awt/MouseListenerProxy.java | 61 + .../java_awt/MouseMotionAdapterProxy.java | 43 +- .../java_awt/MouseMotionListenerProxy.java | 37 + .../java_awt/MouseWheelListenerProxy.java | 29 + .../swiftjava/java_awt/TextListenerProxy.java | 29 + .../java_awt/WindowAdapterProxy.java | 107 +- .../java_awt/WindowFocusListenerProxy.java | 37 + .../java_awt/WindowListenerProxy.java | 77 + .../java_awt/WindowProxy.java | 45 +- .../java_awt/WindowStateListenerProxy.java | 29 + .../java_lang/InvocationHandlerProxy.java | 29 + .../swiftjava/java_lang/RunnableProxy.java | 29 + .../Thread_UncaughtExceptionHandlerProxy.java | 29 + .../swiftjava/java_swift/RunnableProxy.java | 29 + .../java_util/EventListenerProxy.java | 21 + .../java_util/NodeChangeListenerProxy.java | 37 + .../PreferenceChangeListenerProxy.java | 29 + .../RejectedExecutionHandlerProxy.java | 29 + .../javax_swing/AncestorListenerProxy.java | 45 + .../javax_swing/CaretListenerProxy.java | 29 + .../javax_swing/CellEditorListenerProxy.java | 37 + .../javax_swing/ChangeListenerProxy.java | 29 + .../DefaultTableCellRendererProxy.java | 23 +- ...aultTableCellRenderer_UIResourceProxy.java | 23 +- .../javax_swing/DefaultTableModelProxy.java | 76 + .../javax_swing/DesktopManagerProxy.java | 141 + .../javax_swing/DocumentListenerProxy.java | 45 + .../javax_swing/HyperlinkListenerProxy.java | 29 + .../InternalFrameAdapterProxy.java | 103 +- .../InternalFrameListenerProxy.java | 77 + .../JComboBox_KeySelectionManagerProxy.java | 29 + .../swiftjava/javax_swing/JDialogProxy.java | 145 + .../swiftjava/javax_swing/JFrameProxy.java | 61 + .../javax_swing/JTableProxy.java | 71 +- .../swiftjava/javax_swing/JWindowProxy.java | 68 + .../javax_swing/ListDataListenerProxy.java | 45 + .../ListSelectionListenerProxy.java | 29 + .../MenuDragMouseListenerProxy.java | 53 + .../javax_swing/MenuKeyListenerProxy.java | 45 + .../javax_swing/MenuListenerProxy.java | 45 + .../javax_swing/MouseInputAdapterProxy.java | 91 +- .../javax_swing/MouseInputListenerProxy.java | 77 + .../javax_swing/PlainDocumentProxy.java | 47 + .../javax_swing/PopupMenuListenerProxy.java | 45 + .../javax_swing/RowSorterListenerProxy.java | 29 + .../TableColumnModelListenerProxy.java | 45 +- .../javax_swing/TableModelListenerProxy.java | 29 + .../TreeExpansionListenerProxy.java | 37 + .../javax_swing/TreeModelListenerProxy.java | 53 + .../TreeSelectionListenerProxy.java | 29 + .../TreeWillExpandListenerProxy.java | 37 + .../UndoableEditListenerProxy.java | 29 + swift-android-kotlin | 2 +- swift-android-samples | 2 +- swiftjava.jar | Bin 0 -> 94941 bytes 239 files changed, 12418 insertions(+), 5652 deletions(-) create mode 100644 com_johnholdsworth/Sources/SwiftHelloBinding.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTestImpl.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_John.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTypes.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMap.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift create mode 100644 com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift delete mode 100644 genie.jar rename {org_genie => org_swiftjava}/Info.plist (100%) rename {org_genie => org_swiftjava}/Sources/SwiftTest.swift (54%) rename org_genie/org_genie.swift => org_swiftjava/org_swiftjava.swift (54%) rename {org_genie => org_swiftjava}/test_body.swift (53%) create mode 100644 src/com/johnholdsworth/bindings/SwiftHelloBinding.java create mode 100644 src/com/johnholdsworth/bindings/SwiftHelloTest.java create mode 100644 src/com/johnholdsworth/bindings/SwiftHelloTypes.java delete mode 100644 src/org/genie/com_apple/AboutHandlerProxy.java delete mode 100644 src/org/genie/com_apple/AppEventListenerProxy.java delete mode 100644 src/org/genie/com_apple/AppForegroundListenerProxy.java delete mode 100644 src/org/genie/com_apple/AppHiddenListenerProxy.java delete mode 100644 src/org/genie/com_apple/AppReOpenedListenerProxy.java delete mode 100644 src/org/genie/com_apple/GestureListenerProxy.java delete mode 100644 src/org/genie/com_apple/GesturePhaseListenerProxy.java delete mode 100644 src/org/genie/com_apple/MagnificationListenerProxy.java delete mode 100644 src/org/genie/com_apple/OpenFilesHandlerProxy.java delete mode 100644 src/org/genie/com_apple/OpenURIHandlerProxy.java delete mode 100644 src/org/genie/com_apple/PreferencesHandlerProxy.java delete mode 100644 src/org/genie/com_apple/PrintFilesHandlerProxy.java delete mode 100644 src/org/genie/com_apple/QuitHandlerProxy.java delete mode 100644 src/org/genie/com_apple/RotationListenerProxy.java delete mode 100644 src/org/genie/com_apple/ScreenSleepListenerProxy.java delete mode 100644 src/org/genie/com_apple/SystemSleepListenerProxy.java delete mode 100644 src/org/genie/com_apple/UserSessionListenerProxy.java delete mode 100644 src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java delete mode 100644 src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java delete mode 100644 src/org/genie/java_awt/AWTEventListenerProxy.java delete mode 100644 src/org/genie/java_awt/ActionListenerProxy.java delete mode 100644 src/org/genie/java_awt/AdjustmentListenerProxy.java delete mode 100644 src/org/genie/java_awt/CanvasProxy.java delete mode 100644 src/org/genie/java_awt/ComponentListenerProxy.java delete mode 100644 src/org/genie/java_awt/ContainerListenerProxy.java delete mode 100644 src/org/genie/java_awt/DragGestureListenerProxy.java delete mode 100644 src/org/genie/java_awt/DragSourceListenerProxy.java delete mode 100644 src/org/genie/java_awt/DragSourceMotionListenerProxy.java delete mode 100644 src/org/genie/java_awt/DropTargetListenerProxy.java delete mode 100644 src/org/genie/java_awt/FileDialogProxy.java delete mode 100644 src/org/genie/java_awt/FlavorListenerProxy.java delete mode 100644 src/org/genie/java_awt/FocusListenerProxy.java delete mode 100644 src/org/genie/java_awt/FrameProxy.java delete mode 100644 src/org/genie/java_awt/HierarchyBoundsListenerProxy.java delete mode 100644 src/org/genie/java_awt/HierarchyListenerProxy.java delete mode 100644 src/org/genie/java_awt/InputMethodListenerProxy.java delete mode 100644 src/org/genie/java_awt/ItemListenerProxy.java delete mode 100644 src/org/genie/java_awt/KeyListenerProxy.java delete mode 100644 src/org/genie/java_awt/LayoutManagerProxy.java delete mode 100644 src/org/genie/java_awt/MouseListenerProxy.java delete mode 100644 src/org/genie/java_awt/MouseMotionListenerProxy.java delete mode 100644 src/org/genie/java_awt/MouseWheelListenerProxy.java delete mode 100644 src/org/genie/java_awt/TextListenerProxy.java delete mode 100644 src/org/genie/java_awt/WindowFocusListenerProxy.java delete mode 100644 src/org/genie/java_awt/WindowListenerProxy.java delete mode 100644 src/org/genie/java_awt/WindowStateListenerProxy.java delete mode 100644 src/org/genie/java_lang/InvocationHandlerProxy.java delete mode 100644 src/org/genie/java_lang/RunnableProxy.java delete mode 100644 src/org/genie/java_lang/Thread_UncaughtExceptionHandlerProxy.java delete mode 100644 src/org/genie/java_util/EventListenerProxy.java delete mode 100644 src/org/genie/java_util/NodeChangeListenerProxy.java delete mode 100644 src/org/genie/java_util/PreferenceChangeListenerProxy.java delete mode 100644 src/org/genie/java_util/RejectedExecutionHandlerProxy.java delete mode 100644 src/org/genie/javax_swing/AncestorListenerProxy.java delete mode 100644 src/org/genie/javax_swing/CaretListenerProxy.java delete mode 100644 src/org/genie/javax_swing/CellEditorListenerProxy.java delete mode 100644 src/org/genie/javax_swing/ChangeListenerProxy.java delete mode 100644 src/org/genie/javax_swing/DefaultTableModelProxy.java delete mode 100644 src/org/genie/javax_swing/DesktopManagerProxy.java delete mode 100644 src/org/genie/javax_swing/DocumentListenerProxy.java delete mode 100644 src/org/genie/javax_swing/HyperlinkListenerProxy.java delete mode 100644 src/org/genie/javax_swing/InternalFrameListenerProxy.java delete mode 100644 src/org/genie/javax_swing/JComboBox_KeySelectionManagerProxy.java delete mode 100644 src/org/genie/javax_swing/JDialogProxy.java delete mode 100644 src/org/genie/javax_swing/JFrameProxy.java delete mode 100644 src/org/genie/javax_swing/JWindowProxy.java delete mode 100644 src/org/genie/javax_swing/ListDataListenerProxy.java delete mode 100644 src/org/genie/javax_swing/ListSelectionListenerProxy.java delete mode 100644 src/org/genie/javax_swing/MenuDragMouseListenerProxy.java delete mode 100644 src/org/genie/javax_swing/MenuKeyListenerProxy.java delete mode 100644 src/org/genie/javax_swing/MenuListenerProxy.java delete mode 100644 src/org/genie/javax_swing/MouseInputListenerProxy.java delete mode 100644 src/org/genie/javax_swing/PlainDocumentProxy.java delete mode 100644 src/org/genie/javax_swing/PopupMenuListenerProxy.java delete mode 100644 src/org/genie/javax_swing/RowSorterListenerProxy.java delete mode 100644 src/org/genie/javax_swing/TableModelListenerProxy.java delete mode 100644 src/org/genie/javax_swing/TreeExpansionListenerProxy.java delete mode 100644 src/org/genie/javax_swing/TreeModelListenerProxy.java delete mode 100644 src/org/genie/javax_swing/TreeSelectionListenerProxy.java delete mode 100644 src/org/genie/javax_swing/TreeWillExpandListenerProxy.java delete mode 100644 src/org/genie/javax_swing/UndoableEditListenerProxy.java rename src/org/{genie => swiftjava}/SwiftTest.java (66%) create mode 100644 src/org/swiftjava/com_apple/AboutHandlerProxy.java create mode 100644 src/org/swiftjava/com_apple/AppEventListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/AppForegroundListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/AppHiddenListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java rename src/org/{genie => swiftjava}/com_apple/ApplicationAdapterProxy.java (70%) rename src/org/{genie => swiftjava}/com_apple/ApplicationListenerProxy.java (52%) rename src/org/{genie => swiftjava}/com_apple/FullScreenAdapterProxy.java (69%) rename src/org/{genie => swiftjava}/com_apple/FullScreenListenerProxy.java (50%) rename src/org/{genie => swiftjava}/com_apple/GestureAdapterProxy.java (70%) create mode 100644 src/org/swiftjava/com_apple/GestureListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/MagnificationListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java create mode 100644 src/org/swiftjava/com_apple/OpenURIHandlerProxy.java create mode 100644 src/org/swiftjava/com_apple/PreferencesHandlerProxy.java create mode 100644 src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java create mode 100644 src/org/swiftjava/com_apple/QuitHandlerProxy.java create mode 100644 src/org/swiftjava/com_apple/RotationListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java rename src/org/{genie => swiftjava}/com_apple/SwipeListenerProxy.java (50%) create mode 100644 src/org/swiftjava/com_apple/SystemSleepListenerProxy.java create mode 100644 src/org/swiftjava/com_apple/UserSessionListenerProxy.java create mode 100644 src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java create mode 100644 src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java create mode 100644 src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java create mode 100644 src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/AWTEventListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/ActionListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/AdjustmentListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/CanvasProxy.java rename src/org/{genie => swiftjava}/java_awt/ComponentAdapterProxy.java (60%) create mode 100644 src/org/swiftjava/java_awt/ComponentListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/ContainerAdapterProxy.java (62%) create mode 100644 src/org/swiftjava/java_awt/ContainerListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/DialogProxy.java (62%) create mode 100644 src/org/swiftjava/java_awt/DragGestureListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/DragSourceAdapterProxy.java (59%) create mode 100644 src/org/swiftjava/java_awt/DragSourceListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/DropTargetListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/FileDialogProxy.java create mode 100644 src/org/swiftjava/java_awt/FlavorListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/FocusAdapterProxy.java (60%) create mode 100644 src/org/swiftjava/java_awt/FocusListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/FrameProxy.java rename src/org/{genie => swiftjava}/java_awt/HierarchyBoundsAdapterProxy.java (60%) create mode 100644 src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/HierarchyListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/InputMethodListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/ItemListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/KeyAdapterProxy.java (59%) create mode 100644 src/org/swiftjava/java_awt/KeyListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/LayoutManagerProxy.java rename src/org/{genie => swiftjava}/java_awt/MouseAdapterProxy.java (58%) create mode 100644 src/org/swiftjava/java_awt/MouseListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/MouseMotionAdapterProxy.java (60%) create mode 100644 src/org/swiftjava/java_awt/MouseMotionListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/MouseWheelListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/TextListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/WindowAdapterProxy.java (57%) create mode 100644 src/org/swiftjava/java_awt/WindowFocusListenerProxy.java create mode 100644 src/org/swiftjava/java_awt/WindowListenerProxy.java rename src/org/{genie => swiftjava}/java_awt/WindowProxy.java (57%) create mode 100644 src/org/swiftjava/java_awt/WindowStateListenerProxy.java create mode 100644 src/org/swiftjava/java_lang/InvocationHandlerProxy.java create mode 100644 src/org/swiftjava/java_lang/RunnableProxy.java create mode 100644 src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java create mode 100644 src/org/swiftjava/java_swift/RunnableProxy.java create mode 100644 src/org/swiftjava/java_util/EventListenerProxy.java create mode 100644 src/org/swiftjava/java_util/NodeChangeListenerProxy.java create mode 100644 src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java create mode 100644 src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java create mode 100644 src/org/swiftjava/javax_swing/AncestorListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/CaretListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/CellEditorListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/ChangeListenerProxy.java rename src/org/{genie => swiftjava}/javax_swing/DefaultTableCellRendererProxy.java (54%) rename src/org/{genie => swiftjava}/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java (55%) create mode 100644 src/org/swiftjava/javax_swing/DefaultTableModelProxy.java create mode 100644 src/org/swiftjava/javax_swing/DesktopManagerProxy.java create mode 100644 src/org/swiftjava/javax_swing/DocumentListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java rename src/org/{genie => swiftjava}/javax_swing/InternalFrameAdapterProxy.java (58%) create mode 100644 src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java create mode 100644 src/org/swiftjava/javax_swing/JDialogProxy.java create mode 100644 src/org/swiftjava/javax_swing/JFrameProxy.java rename src/org/{genie => swiftjava}/javax_swing/JTableProxy.java (62%) create mode 100644 src/org/swiftjava/javax_swing/JWindowProxy.java create mode 100644 src/org/swiftjava/javax_swing/ListDataListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/MenuListenerProxy.java rename src/org/{genie => swiftjava}/javax_swing/MouseInputAdapterProxy.java (58%) create mode 100644 src/org/swiftjava/javax_swing/MouseInputListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/PlainDocumentProxy.java create mode 100644 src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/RowSorterListenerProxy.java rename src/org/{genie => swiftjava}/javax_swing/TableColumnModelListenerProxy.java (50%) create mode 100644 src/org/swiftjava/javax_swing/TableModelListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/TreeModelListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java create mode 100644 src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java create mode 100644 swiftjava.jar diff --git a/.classpath b/.classpath index b15ccea..40e38df 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + diff --git a/.gitignore b/.gitignore index a7dce23..5f59324 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ parameters/java parameters/javax parameters/classes parameters/launcher +/bin/ diff --git a/JDBC/AppDelegate.swift b/JDBC/AppDelegate.swift index f1666c3..2d8f639 100644 --- a/JDBC/AppDelegate.swift +++ b/JDBC/AppDelegate.swift @@ -65,7 +65,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSTableViewDataSource, NSTab Thread( { do { - if try Class.forName( self.driverClass.stringValue ) == nil { + if try JavaClass.forName( self.driverClass.stringValue ) == nil { return self.alert( "Could not load driver class" ); } @@ -77,7 +77,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSTableViewDataSource, NSTab else { return self.alert( "Unable to connect using information supplied, consult console" ) } let statement = try connection.createStatement()! - if !(try statement.execute( self.SQL.stringValue )) { + if !(try statement.execute( sql: self.SQL.stringValue )) { return self.alert( "Could not execute SQL: \(self.SQL.stringValue)" ); } @@ -88,13 +88,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSTableViewDataSource, NSTab if let result = try statement.getResultSet(), let md = try result.getMetaData() { let ncols = try md.getColumnCount() for i in 1...ncols { - model.columnNames.append( try md.getColumnName(i) ?? "Column \(i)" ) + model.columnNames.append( try md.getColumnName(column: i) ?? "Column \(i)" ) } while try result.next() { var row = [String]() for i in 1...ncols { - row.append( try result.getString( i ) ?? "null" ) + row.append( try result.getString( columnIndex: i ) ?? "null" ) } model.data.append( row ) } diff --git a/README.md b/README.md index f1adf4d..47e8895 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Development inside Xcode with the Oracle JVM is a little more complicated. It se that JNI_CreateJavaVM generates a SIGSEGV internally as part of normal operation which is trapped using a signal handler so it can proceed on the command line. Unfortunately, this is caught by Xcode debugger lldb and it suspends and will not -continue until you enter "pr h -s false SIGSEGV" into the debug console each time +continue until you enter `pr h -s false SIGSEGV` into the debug console each time you run the program. The alternative is to not use the debugger at all in your scheme. Perversely, with AWT and Swing on macOS the JVM needs to be created on the main thread @@ -78,36 +78,28 @@ the jre. Use the examples. directory to build using the following commands: swift build -Xlinker -L$JVM_LIBRARY_PATH -Xlinker -rpath -Xlinker $JVM_LIBRARY_PATH -Xlinker -ljvm ``` -Builds on Linux need to be made with the latest preview 6. The swing source in +The swing source in "examples/Sources" shows how to receive events and subclass a Java class to have certain methods such as java.awt.Canvas.paint() be implemented in Swift. More on this later. -### Android +### Android Development For Android, consult the modified versions of the swift-android-samples and the associated -gradle build system plugin swift-android-gradle from the [original Android port](https://github.com/SwiftAndroid). -This requires a Ubuntu 15 system or VM, a Lollipop (api 21) or better device and a Swift-3.0 -toolchain built with Android support. Instructions for this process are available in the +gradle build system plugin from the [Android Toochain](https://github.com/SwiftJava/android_toolchain). +This run on macOS or Ubuntu 16.04, and requires a Lollipop (api 21) or better device. +More detaills and context are available in the [Swift README for Android](https://github.com/apple/swift/blob/master/docs/Android.md) and [this comprehensive tutorial](https://medium.com/@ephemer/how-we-put-an-app-in-the-android-play-store-using-swift-67bd99573e3c) but hopefully the scripts in the modified gradle plugin take most of the pain out of it. -Once you have a toolchain you should be able to type the following commands: +Once you have a toolchain and run its setup.sh script you should be able to type the following commands: ```Shell - cd swift-android-gradle - ./gradlew install -``` - -This install of gradle plugin will tell you which environment variables need to be set up. -Now, connect the Android phone and type: - -```Shell - cd ../swift-android-samples/swifthello + cd swift-android-samples/swifthello ./gradlew installDebug ``` -For a new application define two Java interfaces, one for messaging from Java to Swift +For a new application, define two Java interfaces, one for messaging from Java to Swift with it's name ending in "Listener" and one for messaging back into Java from Swift. You then use ./genswift.sh from this project to generate the Swift binding code: @@ -115,7 +107,7 @@ You then use ./genswift.sh from this project to generate the Swift binding code: ./genswift.sh your.package your.jar ``` -This generates Swift classes and a third Java source src/org/genie/your_package/YourAppProxy.java +This generates Swift classes and a third Java source src/org/swiftjava/your_package/YourAppProxy.java that also needs to be included in your project. Consult the script genhello.sh and project "swift-android-samples/swifthello" for details. The source "swift-android-samples/swifthello/src/main/swift/Sources/main.swift" shows how to set this up with a native method called from the main activity. @@ -164,7 +156,7 @@ provide a Swift implementation of the "run()" method callable from Java. This approach is also taken for processing events and all interfaces with names ending in "Listener", "Manager" or "Handler" also have "Base" classes generated for subclassing along with Java Proxy classes. On macOS and Linux these classes -are compiled into a jar file ~/genie.jar using the genjar.sh script for this to work. +are compiled into a jar file ~/swiftjava.jar using the genjar.sh script for this to work. ```Swift class MyActionListener: ActionListenerBase { @@ -176,6 +168,11 @@ are compiled into a jar file ~/genie.jar using the genjar.sh script for this to quitButton.addActionListener(MyActionListener()); ``` +Any interface/protocol from a Java interface can be added to a class to enable it to +be passed to Java provide it's name ends in `Listener`. The implementation is a little +complex but does not have an appreciable overhead. structs can also be made accesable +to Java in this way but the object will no be live i.e. a coy of the struct will be taken. + Some event processing is also done by subclassing concrete classes that have names ending in "Adapter". Slightly modified Swift "Base" classes and Java Proxies are also generated for this. Other classes have methods that are intended to be responsibility @@ -190,17 +187,19 @@ javaObject to your classes' javaObject. Due to the use of generics you'll also be prompted to provide a null implementation of the "required" initialiser. ```Swift +class MyCanvas: CanvasBase { + init(imageProducer:ImageProducer) { super.init(javaObject: nil) - CanvasBase().withJavaObject { - self.javaObject = $0 - } + inherit(CanvasBase()) image = createImage(imageProducer) } required init(javaObject: jobject?) { fatalError("init(javaObject:) has not been implemented") } + + ... ``` Consult the Swing examples code for further details. @@ -225,5 +224,5 @@ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TOR ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This License does not apply to the code generated from the Apple distribution of the Java VM -which are provided under the provisions of "Fair Use" but your use is ultimately subject +which are provided under the provisions of "Fair Use" and your use is ultimately subject to the original License Agreement. diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 54d2779..4e11d23 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB31E20E1D4FF13400779860 /* genpkg.sh */; }; BB4AF49E1D4C1F80001DCA63 /* java_sql.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBF2E8E1D49A0C3004142AE /* java_sql.framework */; }; - BB4AF4A61D4C2CE2001DCA63 /* java_lang.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13EBC1D4997FB0035A039 /* java_lang.framework */; }; BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5ACFDE1D35B09900E2386A /* AppDelegate.swift */; }; BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; @@ -33,9 +32,36 @@ BBBF3A671D4B1B95004142AE /* PopupTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBBF3A661D4B1B95004142AE /* PopupTest.swift */; }; BBBF3A691D4BCE36004142AE /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBBF3A681D4BCE36004142AE /* main.swift */; }; BBBF3A731D4BF8CF004142AE /* AWTGraphicsDemo.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBBF3A721D4BF8CF004142AE /* AWTGraphicsDemo.swift */; }; - BBC13DB91D48FDCE0035A039 /* org_genie.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DB81D48FDCE0035A039 /* org_genie.swift */; }; + BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DB81D48FDCE0035A039 /* org_swiftjava.swift */; }; BBC13DC21D4900AA0035A039 /* SwiftTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DC11D4900AA0035A039 /* SwiftTest.swift */; }; BBF280D91D64BC6100A7AF5D /* src in Resources */ = {isa = PBXBuildFile; fileRef = BBF280D81D64BC6100A7AF5D /* src */; }; + CE31850A1F368C55002046A6 /* SwiftHelloBinding.java in Sources */ = {isa = PBXBuildFile; fileRef = CE3185071F368C55002046A6 /* SwiftHelloBinding.java */; }; + CE31850B1F368C55002046A6 /* SwiftHelloTest.java in Sources */ = {isa = PBXBuildFile; fileRef = CE3185081F368C55002046A6 /* SwiftHelloTest.java */; }; + CE31850C1F368C55002046A6 /* SwiftHelloTypes.java in Sources */ = {isa = PBXBuildFile; fileRef = CE3185091F368C55002046A6 /* SwiftHelloTypes.java */; }; + CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */; }; + CE4A25031F34B37C003AF384 /* JNIMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */; }; + CE4A25041F34B37C003AF384 /* JNIType.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FC1F34B37C003AF384 /* JNIType.swift */; }; + CE4A25051F34B37C003AF384 /* JNICore.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FD1F34B37C003AF384 /* JNICore.swift */; }; + CE4A25061F34B37C003AF384 /* JavaClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FE1F34B37C003AF384 /* JavaClass.swift */; }; + CE4A25071F34B37C003AF384 /* JNIObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FF1F34B37C003AF384 /* JNIObject.swift */; }; + CE4A25081F34B37C003AF384 /* Runnable.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25001F34B37C003AF384 /* Runnable.swift */; }; + CE4A25091F34B37C003AF384 /* JavaObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25011F34B37C003AF384 /* JavaObject.swift */; }; + CE4A250A1F34B37C003AF384 /* JNIField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25021F34B37C003AF384 /* JNIField.swift */; }; + CE4A250B1F34B3E0003AF384 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */; }; + CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */ = {isa = PBXBuildFile; fileRef = CE4A250F1F3555CA003AF384 /* com_johnholdsworth */; }; + CE4A25191F355910003AF384 /* SwiftHelloTest_SwiftTestListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25151F355902003AF384 /* SwiftHelloTest_SwiftTestListener.swift */; }; + CE4A251A1F355914003AF384 /* SwiftHelloTest_TestResponderAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25141F355902003AF384 /* SwiftHelloTest_TestResponderAdapter.swift */; }; + CE4A251B1F355918003AF384 /* SwiftHelloTestImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25131F355902003AF384 /* SwiftHelloTestImpl.swift */; }; + CE4A25211F355CAC003AF384 /* SwiftHelloTest_TestListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A251F1F355CA6003AF384 /* SwiftHelloTest_TestListener.swift */; }; + CE4A25241F3563AB003AF384 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */; }; + CE6BB1D81F33E59900CA6A8F /* java_swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13E821D4996AE0035A039 /* java_swift.framework */; }; + CE6BB1D91F33E5AD00CA6A8F /* CJavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13E601D49954A0035A039 /* CJavaVM.framework */; }; + CE81023A1F3693510069563B /* MainActivity.kt in Resources */ = {isa = PBXBuildFile; fileRef = CE8102391F3693510069563B /* MainActivity.kt */; }; + CE81023C1F3693790069563B /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE81023B1F3693790069563B /* main.swift */; }; + CE81023E1F369D8D0069563B /* SwiftHello.java in Sources */ = {isa = PBXBuildFile; fileRef = CE81023D1F369D8D0069563B /* SwiftHello.java */; }; + CE85B31C1F3655DD0014857D /* JavaMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE85B3191F3655DD0014857D /* JavaMap.swift */; }; + CE85B31D1F3655DD0014857D /* HashMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE85B31A1F3655DD0014857D /* HashMap.swift */; }; + CE85B31E1F3655DD0014857D /* JavaSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE85B31B1F3655DD0014857D /* JavaSet.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -216,8 +242,6 @@ BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; BB6651331F2E3A8D004EFD5F /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; - BB8A70511D5AF7AC00840B9E /* build_macos.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_macos.sh; sourceTree = ""; }; - BB8A70531D5B164300840B9E /* build_linux.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_linux.sh; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; BB8AC4621D3F11E600BD5B0F /* examples */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = examples; sourceTree = BUILT_PRODUCTS_DIR; }; BB8AC46E1D3F217D00BD5B0F /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = ../../../../Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/server/libjvm.dylib; sourceTree = ""; }; @@ -229,7 +253,6 @@ BBBF2F031D49A163004142AE /* java_awt.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_awt.xcodeproj; path = java_awt/java_awt.xcodeproj; sourceTree = ""; }; BBBF322A1D49A246004142AE /* javax_swing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = javax_swing.xcodeproj; path = javax_swing/javax_swing.xcodeproj; sourceTree = ""; }; BBBF389C1D49B5E6004142AE /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - BBBF38B31D49C14C004142AE /* genie.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = genie.jar; sourceTree = ""; }; BBBF38DB1D49DB05004142AE /* com_apple.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = com_apple.xcodeproj; path = com_apple/com_apple.xcodeproj; sourceTree = ""; }; BBBF3A471D4A8A17004142AE /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; BBBF3A521D4A8A68004142AE /* PhilosophersJList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PhilosophersJList.swift; path = Sources/PhilosophersJList.swift; sourceTree = ""; }; @@ -244,23 +267,46 @@ BBBF3A661D4B1B95004142AE /* PopupTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PopupTest.swift; path = Sources/PopupTest.swift; sourceTree = ""; }; BBBF3A681D4BCE36004142AE /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = Sources/main.swift; sourceTree = ""; }; BBBF3A721D4BF8CF004142AE /* AWTGraphicsDemo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AWTGraphicsDemo.swift; path = Sources/AWTGraphicsDemo.swift; sourceTree = ""; }; - BBC13DB61D48FDCE0035A039 /* org_genie_tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = org_genie_tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - BBC13DB81D48FDCE0035A039 /* org_genie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = org_genie.swift; sourceTree = ""; }; + BBC13DB61D48FDCE0035A039 /* org_swiftjava_tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = org_swiftjava_tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + BBC13DB81D48FDCE0035A039 /* org_swiftjava.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = org_swiftjava.swift; sourceTree = ""; }; BBC13DBA1D48FDCE0035A039 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BBC13DC11D4900AA0035A039 /* SwiftTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SwiftTest.swift; path = Sources/SwiftTest.swift; sourceTree = ""; }; BBC13DC51D490B160035A039 /* test_body.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = test_body.swift; sourceTree = ""; }; BBC13DC71D49149A0035A039 /* gentests.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = gentests.rb; sourceTree = ""; }; - BBC13DC91D4918A30035A039 /* SwiftTest.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftTest.java; path = src/org/genie/SwiftTest.java; sourceTree = SOURCE_ROOT; }; BBC13E5B1D49954A0035A039 /* CJavaVM.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CJavaVM.xcodeproj; path = CJavaVM/CJavaVM.xcodeproj; sourceTree = ""; }; BBC13E7D1D4996AE0035A039 /* java_swift.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_swift.xcodeproj; path = java_swift/java_swift.xcodeproj; sourceTree = ""; }; BBC13EB71D4997FA0035A039 /* java_lang.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_lang.xcodeproj; path = java_lang/java_lang.xcodeproj; sourceTree = ""; }; BBC140651D4999580035A039 /* java_util.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_util.xcodeproj; path = java_util/java_util.xcodeproj; sourceTree = ""; }; BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaVM.framework; path = System/Library/Frameworks/JavaVM.framework; sourceTree = SDKROOT; }; - BBCD66F91D36FACD00DF5E47 /* getsigs.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = getsigs.pl; sourceTree = ""; }; BBCD6EBC1D383E3700DF5E47 /* genswift.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = genswift.java; path = src/genswift.java; sourceTree = ""; }; BBCD75371D38DC4200DF5E47 /* overrides.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = overrides.pl; sourceTree = ""; }; BBCD9F871D3CD05900DF5E47 /* genswift.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genswift.sh; sourceTree = ""; }; BBF280D81D64BC6100A7AF5D /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = src; sourceTree = ""; }; + CE3185071F368C55002046A6 /* SwiftHelloBinding.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloBinding.java; path = src/com/johnholdsworth/bindings/SwiftHelloBinding.java; sourceTree = ""; }; + CE3185081F368C55002046A6 /* SwiftHelloTest.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloTest.java; path = src/com/johnholdsworth/bindings/SwiftHelloTest.java; sourceTree = ""; }; + CE3185091F368C55002046A6 /* SwiftHelloTypes.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloTypes.java; path = src/com/johnholdsworth/bindings/SwiftHelloTypes.java; sourceTree = ""; }; + CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTypes_TextListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift; sourceTree = SOURCE_ROOT; }; + CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIMethod.swift; path = java_swift/Sources/JNIMethod.swift; sourceTree = SOURCE_ROOT; }; + CE4A24FC1F34B37C003AF384 /* JNIType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIType.swift; path = java_swift/Sources/JNIType.swift; sourceTree = SOURCE_ROOT; }; + CE4A24FD1F34B37C003AF384 /* JNICore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNICore.swift; path = java_swift/Sources/JNICore.swift; sourceTree = SOURCE_ROOT; }; + CE4A24FE1F34B37C003AF384 /* JavaClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaClass.swift; path = java_swift/Sources/JavaClass.swift; sourceTree = SOURCE_ROOT; }; + CE4A24FF1F34B37C003AF384 /* JNIObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIObject.swift; path = java_swift/Sources/JNIObject.swift; sourceTree = SOURCE_ROOT; }; + CE4A25001F34B37C003AF384 /* Runnable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Runnable.swift; path = java_swift/Sources/Runnable.swift; sourceTree = SOURCE_ROOT; }; + CE4A25011F34B37C003AF384 /* JavaObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaObject.swift; path = java_swift/Sources/JavaObject.swift; sourceTree = SOURCE_ROOT; }; + CE4A25021F34B37C003AF384 /* JNIField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIField.swift; path = java_swift/Sources/JNIField.swift; sourceTree = SOURCE_ROOT; }; + CE4A250F1F3555CA003AF384 /* com_johnholdsworth */ = {isa = PBXFileReference; lastKnownFileType = folder; path = com_johnholdsworth; sourceTree = ""; }; + CE4A25131F355902003AF384 /* SwiftHelloTestImpl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTestImpl.swift; path = com_johnholdsworth/Sources/SwiftHelloTestImpl.swift; sourceTree = SOURCE_ROOT; }; + CE4A25141F355902003AF384 /* SwiftHelloTest_TestResponderAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTest_TestResponderAdapter.swift; path = com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift; sourceTree = SOURCE_ROOT; }; + CE4A25151F355902003AF384 /* SwiftHelloTest_SwiftTestListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTest_SwiftTestListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift; sourceTree = SOURCE_ROOT; }; + CE4A251C1F355B0A003AF384 /* SwiftTest.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftTest.java; path = src/org/swiftjava/SwiftTest.java; sourceTree = SOURCE_ROOT; }; + CE4A251F1F355CA6003AF384 /* SwiftHelloTest_TestListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTest_TestListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift; sourceTree = SOURCE_ROOT; }; + CE75236D1F33E9A3003795CA /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = ../../../Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/server/libjvm.dylib; sourceTree = ""; }; + CE8102391F3693510069563B /* MainActivity.kt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = MainActivity.kt; path = "swift-android-kotlin/app/src/main/java/com/example/user/myapplication/MainActivity.kt"; sourceTree = ""; }; + CE81023B1F3693790069563B /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = "swift-android-kotlin/app/src/main/swift/Sources/main.swift"; sourceTree = ""; }; + CE81023D1F369D8D0069563B /* SwiftHello.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHello.java; path = "swift-android-samples/swifthello/src/main/java/net/zhuoweizhang/swifthello/SwiftHello.java"; sourceTree = ""; }; + CE85B3191F3655DD0014857D /* JavaMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaMap.swift; path = java_swift/Sources/JavaMap.swift; sourceTree = SOURCE_ROOT; }; + CE85B31A1F3655DD0014857D /* HashMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HashMap.swift; path = java_swift/Sources/HashMap.swift; sourceTree = SOURCE_ROOT; }; + CE85B31B1F3655DD0014857D /* JavaSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaSet.swift; path = java_swift/Sources/JavaSet.swift; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -268,6 +314,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + CE4A25241F3563AB003AF384 /* JavaVM.framework in Frameworks */, BB4AF49E1D4C1F80001DCA63 /* java_sql.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -284,7 +331,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BB4AF4A61D4C2CE2001DCA63 /* java_lang.framework in Frameworks */, + CE4A250B1F34B3E0003AF384 /* JavaVM.framework in Frameworks */, + CE6BB1D91F33E5AD00CA6A8F /* CJavaVM.framework in Frameworks */, + CE6BB1D81F33E59900CA6A8F /* java_swift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -303,20 +352,14 @@ BBBF2F031D49A163004142AE /* java_awt.xcodeproj */, BBBF322A1D49A246004142AE /* javax_swing.xcodeproj */, BBBF38DB1D49DB05004142AE /* com_apple.xcodeproj */, - BBCD9F871D3CD05900DF5E47 /* genswift.sh */, - BBCD6EBC1D383E3700DF5E47 /* genswift.java */, - BBCD75371D38DC4200DF5E47 /* overrides.pl */, - BBC13DC71D49149A0035A039 /* gentests.rb */, - BB9CF8921D619D1C004781B9 /* genhello.sh */, - BB31E20E1D4FF13400779860 /* genpkg.sh */, - BBCD66F91D36FACD00DF5E47 /* getsigs.pl */, - BBAD3EE31D5A84700091D139 /* genall.sh */, - BB0544041D42D55200F9B367 /* genjar.sh */, - BBBF38B31D49C14C004142AE /* genie.jar */, + CE31850D1F368C77002046A6 /* Scripts */, + CE3185051F368C37002046A6 /* Bindings */, + CE8102371F3693260069563B /* Android */, BB5ACFDD1D35B09900E2386A /* JDBC */, BB8AC4631D3F11E600BD5B0F /* examples */, - BBC13DB71D48FDCE0035A039 /* org_genie */, + BBC13DB71D48FDCE0035A039 /* org_swiftjava */, BBF280D81D64BC6100A7AF5D /* src */, + CE4A250F1F3555CA003AF384 /* com_johnholdsworth */, BB6651351F2E3F50004EFD5F /* android_toolchain */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, @@ -331,7 +374,7 @@ children = ( BB5ACFDB1D35B09900E2386A /* JDBC.app */, BB8AC4621D3F11E600BD5B0F /* examples */, - BBC13DB61D48FDCE0035A039 /* org_genie_tests.xctest */, + BBC13DB61D48FDCE0035A039 /* org_swiftjava_tests.xctest */, ); name = Products; sourceTree = ""; @@ -353,8 +396,6 @@ BB19B4411D673986002F5586 /* README.md */, BBBF3A681D4BCE36004142AE /* main.swift */, BBBF3A471D4A8A17004142AE /* Package.swift */, - BB8A70511D5AF7AC00840B9E /* build_macos.sh */, - BB8A70531D5B164300840B9E /* build_linux.sh */, BBBF3A511D4A8A1C004142AE /* Sources */, ); path = examples; @@ -411,16 +452,32 @@ name = Sources; sourceTree = ""; }; - BBC13DB71D48FDCE0035A039 /* org_genie */ = { + BBC13DB71D48FDCE0035A039 /* org_swiftjava */ = { isa = PBXGroup; children = ( - BBC13DC91D4918A30035A039 /* SwiftTest.java */, + CE4A251C1F355B0A003AF384 /* SwiftTest.java */, + CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */, + CE4A25141F355902003AF384 /* SwiftHelloTest_TestResponderAdapter.swift */, + CE4A25151F355902003AF384 /* SwiftHelloTest_SwiftTestListener.swift */, + CE4A251F1F355CA6003AF384 /* SwiftHelloTest_TestListener.swift */, + CE4A25131F355902003AF384 /* SwiftHelloTestImpl.swift */, BBC13DC11D4900AA0035A039 /* SwiftTest.swift */, - BBC13DB81D48FDCE0035A039 /* org_genie.swift */, + BBC13DB81D48FDCE0035A039 /* org_swiftjava.swift */, BBC13DC51D490B160035A039 /* test_body.swift */, + CE4A24FD1F34B37C003AF384 /* JNICore.swift */, + CE4A24FF1F34B37C003AF384 /* JNIObject.swift */, + CE4A25021F34B37C003AF384 /* JNIField.swift */, + CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */, + CE4A24FC1F34B37C003AF384 /* JNIType.swift */, + CE4A24FE1F34B37C003AF384 /* JavaClass.swift */, + CE4A25011F34B37C003AF384 /* JavaObject.swift */, + CE85B31A1F3655DD0014857D /* HashMap.swift */, + CE85B31B1F3655DD0014857D /* JavaSet.swift */, + CE85B3191F3655DD0014857D /* JavaMap.swift */, + CE4A25001F34B37C003AF384 /* Runnable.swift */, BBC13DBA1D48FDCE0035A039 /* Info.plist */, ); - path = org_genie; + path = org_swiftjava; sourceTree = ""; }; BBC13E5C1D49954A0035A039 /* Products */ = { @@ -460,12 +517,48 @@ children = ( BB0543FE1D41F38C00F9B367 /* libjvm.dylib */, BB8AC46E1D3F217D00BD5B0F /* libjvm.dylib */, + CE75236D1F33E9A3003795CA /* libjvm.dylib */, BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */, BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */, ); name = Frameworks; sourceTree = ""; }; + CE3185051F368C37002046A6 /* Bindings */ = { + isa = PBXGroup; + children = ( + CE3185091F368C55002046A6 /* SwiftHelloTypes.java */, + CE3185071F368C55002046A6 /* SwiftHelloBinding.java */, + CE3185081F368C55002046A6 /* SwiftHelloTest.java */, + ); + name = Bindings; + sourceTree = ""; + }; + CE31850D1F368C77002046A6 /* Scripts */ = { + isa = PBXGroup; + children = ( + BBCD9F871D3CD05900DF5E47 /* genswift.sh */, + BBCD6EBC1D383E3700DF5E47 /* genswift.java */, + BBCD75371D38DC4200DF5E47 /* overrides.pl */, + BBC13DC71D49149A0035A039 /* gentests.rb */, + BB9CF8921D619D1C004781B9 /* genhello.sh */, + BB31E20E1D4FF13400779860 /* genpkg.sh */, + BBAD3EE31D5A84700091D139 /* genall.sh */, + BB0544041D42D55200F9B367 /* genjar.sh */, + ); + name = Scripts; + sourceTree = ""; + }; + CE8102371F3693260069563B /* Android */ = { + isa = PBXGroup; + children = ( + CE81023D1F369D8D0069563B /* SwiftHello.java */, + CE8102391F3693510069563B /* MainActivity.kt */, + CE81023B1F3693790069563B /* main.swift */, + ); + name = Android; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -516,9 +609,9 @@ productReference = BB8AC4621D3F11E600BD5B0F /* examples */; productType = "com.apple.product-type.tool"; }; - BBC13DB51D48FDCE0035A039 /* org_genie_tests */ = { + BBC13DB51D48FDCE0035A039 /* org_swiftjava_tests */ = { isa = PBXNativeTarget; - buildConfigurationList = BBC13DBE1D48FDCE0035A039 /* Build configuration list for PBXNativeTarget "org_genie_tests" */; + buildConfigurationList = BBC13DBE1D48FDCE0035A039 /* Build configuration list for PBXNativeTarget "org_swiftjava_tests" */; buildPhases = ( BBC13DB21D48FDCE0035A039 /* Sources */, BBC13DB31D48FDCE0035A039 /* Frameworks */, @@ -528,9 +621,9 @@ ); dependencies = ( ); - name = org_genie_tests; + name = org_swiftjava_tests; productName = org_genie; - productReference = BBC13DB61D48FDCE0035A039 /* org_genie_tests.xctest */; + productReference = BBC13DB61D48FDCE0035A039 /* org_swiftjava_tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ @@ -614,7 +707,7 @@ targets = ( BB5ACFDA1D35B09900E2386A /* JDBC */, BB8AC4611D3F11E600BD5B0F /* examples */, - BBC13DB51D48FDCE0035A039 /* org_genie_tests */, + BBC13DB51D48FDCE0035A039 /* org_swiftjava_tests */, ); }; /* End PBXProject section */ @@ -684,6 +777,7 @@ buildActionMask = 2147483647; files = ( BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */, + CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, BBAD3EE41D5A84700091D139 /* genall.sh in Resources */, BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */, @@ -692,6 +786,7 @@ BBF280D91D64BC6100A7AF5D /* src in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */, + CE81023A1F3693510069563B /* MainActivity.kt in Resources */, BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -710,7 +805,23 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + CE85B31C1F3655DD0014857D /* JavaMap.swift in Sources */, + CE31850C1F368C55002046A6 /* SwiftHelloTypes.java in Sources */, + CE4A25041F34B37C003AF384 /* JNIType.swift in Sources */, + CE4A25031F34B37C003AF384 /* JNIMethod.swift in Sources */, + CE4A25051F34B37C003AF384 /* JNICore.swift in Sources */, + CE31850A1F368C55002046A6 /* SwiftHelloBinding.java in Sources */, BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */, + CE31850B1F368C55002046A6 /* SwiftHelloTest.java in Sources */, + CE4A25091F34B37C003AF384 /* JavaObject.swift in Sources */, + CE85B31E1F3655DD0014857D /* JavaSet.swift in Sources */, + CE81023C1F3693790069563B /* main.swift in Sources */, + CE85B31D1F3655DD0014857D /* HashMap.swift in Sources */, + CE4A250A1F34B37C003AF384 /* JNIField.swift in Sources */, + CE4A25071F34B37C003AF384 /* JNIObject.swift in Sources */, + CE4A25061F34B37C003AF384 /* JavaClass.swift in Sources */, + CE4A25081F34B37C003AF384 /* Runnable.swift in Sources */, + CE81023E1F369D8D0069563B /* SwiftHello.java in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -738,8 +849,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + CE4A25211F355CAC003AF384 /* SwiftHelloTest_TestListener.swift in Sources */, + CE4A25191F355910003AF384 /* SwiftHelloTest_SwiftTestListener.swift in Sources */, BBC13DC21D4900AA0035A039 /* SwiftTest.swift in Sources */, - BBC13DB91D48FDCE0035A039 /* org_genie.swift in Sources */, + BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */, + CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */, + CE4A251A1F355914003AF384 /* SwiftHelloTest_TestResponderAdapter.swift in Sources */, + CE4A251B1F355918003AF384 /* SwiftHelloTestImpl.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -978,9 +1094,13 @@ buildSettings = { CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = org_genie/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.genie.org-genie"; + INFOPLIST_FILE = org_swiftjava/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/server"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LOCAL_LIBRARY_DIR)/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/server", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.swiftjava.org-swiftjava"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; }; @@ -991,9 +1111,13 @@ buildSettings = { CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = org_genie/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.genie.org-genie"; + INFOPLIST_FILE = org_swiftjava/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/server"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LOCAL_LIBRARY_DIR)/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/server", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.swiftjava.org-swiftjava"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; }; @@ -1029,7 +1153,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BBC13DBE1D48FDCE0035A039 /* Build configuration list for PBXNativeTarget "org_genie_tests" */ = { + BBC13DBE1D48FDCE0035A039 /* Build configuration list for PBXNativeTarget "org_swiftjava_tests" */ = { isa = XCConfigurationList; buildConfigurations = ( BBC13DBF1D48FDCE0035A039 /* Debug */, diff --git a/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint b/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint index f6ecde2..1940367 100644 --- a/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint +++ b/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint @@ -4,32 +4,36 @@ }, "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { - "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : 9223372036854775807, - "975F9120751D6C438E9A5C85C38DE132AC6185DA" : 9223372036854775807, - "34073D21618405EACC233186A25025AB1438DB71" : 9223372036854775807, - "D69ED636B0A47DAAE52D01130A54526F3F08576F" : 9223372036854775807, - "F35EB971E2A3FAC98274059126C5879BB91B08C3" : 9223372036854775807, - "88C7909D14364BE1B34BD9FA7515C938F2799EDA" : 9223372036854775807, - "F5602BE39D3BC51A40E8B26B29F3243856A652CB" : 9223372036854775807, - "878C2603E03822D160043D9D16A36206CED4E0CA" : 9223372036854775807, - "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" : 9223372036854775807, - "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : 9223372036854775807, - "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" : 9223372036854775807, - "685A538D4847A574735DC1EA392743F80472F6DF" : 9223372036854775807 + "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : 0, + "975F9120751D6C438E9A5C85C38DE132AC6185DA" : 0, + "34073D21618405EACC233186A25025AB1438DB71" : 0, + "D69ED636B0A47DAAE52D01130A54526F3F08576F" : 0, + "2448595CDB5ED36D9EAF6DDDED0F943FA508C747" : 0, + "F35EB971E2A3FAC98274059126C5879BB91B08C3" : 0, + "88C7909D14364BE1B34BD9FA7515C938F2799EDA" : 0, + "F5602BE39D3BC51A40E8B26B29F3243856A652CB" : 0, + "878C2603E03822D160043D9D16A36206CED4E0CA" : 0, + "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" : 0, + "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : 0, + "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" : 0, + "A4A5B9FFE9560298D43F77C6A13830755B45E233" : 0, + "685A538D4847A574735DC1EA392743F80472F6DF" : 0 }, - "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6BFDE20B-CFCB-4CEC-B3D1-A0DEAE5DDDC0", + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6E889BEB-D486-40E6-9542-259D7175A4E2", "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { - "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : "SwiftJava\/java_swift\/", + "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : "SwiftJava\/swift-android-kotlin\/app\/src\/main\/swift\/.build\/checkouts\/java_swift.git-9082904271628832338\/", "975F9120751D6C438E9A5C85C38DE132AC6185DA" : "SwiftJava\/java_sql\/", "34073D21618405EACC233186A25025AB1438DB71" : "SwiftJava\/javax_swing\/", "D69ED636B0A47DAAE52D01130A54526F3F08576F" : "SwiftJava\/swift-android-samples\/", - "F35EB971E2A3FAC98274059126C5879BB91B08C3" : "SwiftJava\/java_lang\/", + "2448595CDB5ED36D9EAF6DDDED0F943FA508C747" : "SwiftJava\/android_toolchain\/", + "F35EB971E2A3FAC98274059126C5879BB91B08C3" : "SwiftJava\/swift-android-samples\/swifthello\/src\/main\/swift\/.build\/checkouts\/java_lang.git-938659873749723846\/", "88C7909D14364BE1B34BD9FA7515C938F2799EDA" : "SwiftJava\/com_apple\/", "F5602BE39D3BC51A40E8B26B29F3243856A652CB" : "SwiftJava\/java_awt\/", "878C2603E03822D160043D9D16A36206CED4E0CA" : "SwiftJava\/", "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" : "SwiftJava\/examples\/", - "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : "SwiftJava\/CJavaVM\/", + "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : "SwiftJava\/swift-android-kotlin\/app\/src\/main\/swift\/.build\/checkouts\/CJavaVM.git--1521134582023321205\/", "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" : "SwiftJava\/swift-android-gradle\/", + "A4A5B9FFE9560298D43F77C6A13830755B45E233" : "SwiftJava\/swift-android-kotlin\/", "685A538D4847A574735DC1EA392743F80472F6DF" : "SwiftJava\/java_util\/" }, "DVTSourceControlWorkspaceBlueprintNameKey" : "SwiftJava", @@ -41,6 +45,11 @@ "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "03D674EFBA86A077C658C74B9BF7405C80AD6E58" }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/android_toolchain", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "2448595CDB5ED36D9EAF6DDDED0F943FA508C747" + }, { "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/javax_swing.git", "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", @@ -57,7 +66,7 @@ "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" }, { - "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "http:\/\/github.com\/SwiftJava\/SwiftJava", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "http:\/\/github.com\/SwiftJava\/SwiftJava.git", "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "878C2603E03822D160043D9D16A36206CED4E0CA" }, @@ -81,6 +90,11 @@ "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "975F9120751D6C438E9A5C85C38DE132AC6185DA" }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/swift-android-kotlin", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "A4A5B9FFE9560298D43F77C6A13830755B45E233" + }, { "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/SwiftJava\/swift-android-samples.git", "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", diff --git a/com_apple b/com_apple index 2c039ee..21768ef 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 2c039ee6e263a843e3cd813516d35fe3f2ff9bd6 +Subproject commit 21768ef1b6d484b2ccac471b2b88352406e51f41 diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding.swift b/com_johnholdsworth/Sources/SwiftHelloBinding.swift new file mode 100644 index 0000000..a6fef46 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloBinding.swift @@ -0,0 +1,22 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloBinding /// + +public protocol SwiftHelloBinding: JavaProtocol { + +} + + +open class SwiftHelloBindingForward: JNIObjectForward, SwiftHelloBinding { + + private static var SwiftHelloBindingJNIClass: jclass? + +} + + diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift new file mode 100644 index 0000000..5bbb7c8 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift @@ -0,0 +1,298 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloBinding$Listener /// + +public protocol SwiftHelloBinding_Listener: JavaProtocol { + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + func setCacheDir( cacheDir: String? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + + func processNumber( number: Double ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + + func processText( text: String? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + + func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! + +} + + +open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBinding_Listener { + + private static var SwiftHelloBinding_ListenerJNIClass: jclass? + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + private static var setCacheDir_MethodID_7: jmethodID? + + open func setCacheDir( cacheDir: String? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: cacheDir, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_7, args: &__args, locals: &__locals ) + } + + open func setCacheDir( _ _cacheDir: String? ) { + setCacheDir( cacheDir: _cacheDir ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + + private static var processNumber_MethodID_8: jmethodID? + + open func processNumber( number: Double ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_8, args: &__args, locals: &__locals ) + } + + open func processNumber( _ _number: Double ) { + processNumber( number: _number ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + + private static var processText_MethodID_9: jmethodID? + + open func processText( text: String? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.processText_MethodID_9, args: &__args, locals: &__locals ) + } + + open func processText( _ _text: String? ) { + processText( text: _text ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + private static var processedMap_MethodID_10: jmethodID? + + open func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMap_MethodID_10, args: &__args, locals: &__locals ) + } + + open func processedMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { + processedMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + private static var processedMapList_MethodID_11: jmethodID? + + open func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMapList_MethodID_11, args: &__args, locals: &__locals ) + } + + open func processedMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { + processedMapList( map: _map ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + + private static var testResponder_MethodID_12: jmethodID? + + open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ListenerForward.testResponder_MethodID_12, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + } + + open func testResponder( _ _loopback: Int ) -> SwiftHelloTest_TestListener! { + return testResponder( loopback: _loopback ) + } + +} + + +private typealias SwiftHelloBinding_Listener_setCacheDir_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_setCacheDir_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ cacheDir: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setCacheDir( cacheDir: JNIType.toSwift( type: String(), from: cacheDir ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> () + +private func SwiftHelloBinding_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ number: jdouble ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processNumber( number: JNIType.toSwift( type: Double(), from: number ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_processText_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_processText_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ text: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processText( text: JNIType.toSwift( type: String(), from: text ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_processedMap_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_processedMap_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMap( map: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: map ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_processedMapList_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_processedMapList_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMapList( map: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: map ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_testResponder_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jobject? + +private func SwiftHelloBinding_Listener_testResponder_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jint ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testResponder( loopback: JNIType.toSwift( type: Int(), from: loopback ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +fileprivate class SwiftHelloBinding_ListenerLocal_: JNILocalProxy { + + fileprivate static let _proxyClass: jclass = { + var natives = [JNINativeMethod]() + + let SwiftHelloBinding_Listener_setCacheDir_0_thunk: SwiftHelloBinding_Listener_setCacheDir_0_type = SwiftHelloBinding_Listener_setCacheDir_0 + natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(JLjava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_processNumber_1_thunk: SwiftHelloBinding_Listener_processNumber_1_type = SwiftHelloBinding_Listener_processNumber_1 + natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(JD)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_processText_2_thunk: SwiftHelloBinding_Listener_processText_2_type = SwiftHelloBinding_Listener_processText_2 + natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(JLjava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_processedMap_3_thunk: SwiftHelloBinding_Listener_processedMap_3_type = SwiftHelloBinding_Listener_processedMap_3 + natives.append( JNINativeMethod( name: strdup("__processedMap"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processedMap_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_processedMapList_4_thunk: SwiftHelloBinding_Listener_processedMapList_4_type = SwiftHelloBinding_Listener_processedMapList_4 + natives.append( JNINativeMethod( name: strdup("__processedMapList"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processedMapList_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloBinding_Listener_testResponder_5_thunk: SwiftHelloBinding_Listener_testResponder_5_type = SwiftHelloBinding_Listener_testResponder_5 + natives.append( JNINativeMethod( name: strdup("__testResponder"), signature: strdup("(JI)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_testResponder_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + natives.append( JNINativeMethod( name: strdup("__finalize"), signature: strdup("(J)V"), fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let clazz = JNI.FindClass( proxyClassName() ) + withUnsafePointer(to: &natives[0]) { + nativesPtr in + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) + } + } + + defer { JNI.DeleteLocalRef( clazz ) } + return JNI.api.NewGlobalRef( JNI.env, clazz )! + }() + + override open class func proxyClassName() -> String { return "org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy" } + override open class func proxyClass() -> jclass? { return _proxyClass } + +} + +extension SwiftHelloBinding_Listener { + + public func localJavaObject( _ locals: UnsafeMutablePointer<[jobject]> ) -> jobject? { + return SwiftHelloBinding_ListenerLocal_( owned: self, proto: self ).localJavaObject( locals ) + } + +} + +open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { + + public init() {} + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + open func setCacheDir( cacheDir: String? ) /**/ { + } + + open func setCacheDir( _ _cacheDir: String? ) /**/ { + setCacheDir( cacheDir: _cacheDir ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + + open func processNumber( number: Double ) /**/ { + } + + open func processNumber( _ _number: Double ) /**/ { + processNumber( number: _number ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + + open func processText( text: String? ) /**/ { + } + + open func processText( _ _text: String? ) /**/ { + processText( text: _text ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + open func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) /**/ { + } + + open func processedMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) /**/ { + processedMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + open func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) /**/ { + } + + open func processedMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) /**/ { + processedMapList( map: _map ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + + open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! /**/ { + return nil + } + + open func testResponder( _ _loopback: Int ) -> SwiftHelloTest_TestListener! /**/ { + return testResponder( loopback: _loopback ) + } + +} diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift new file mode 100644 index 0000000..985a847 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift @@ -0,0 +1,78 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Aug 05 18:45:58 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMap /// + +open class SwiftHelloBinding_ListenerMap: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloBinding_ListenerMapJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMap() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMap", classCache: &SwiftHelloBinding_ListenerMap.SwiftHelloBinding_ListenerMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloBinding_ListenerMap.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMap.valueClass() + + private static var valueClass_MethodID_2: jmethodID? + + open class func valueClass() -> java_swift.JavaClass! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMap", classCache: &SwiftHelloBinding_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil + } + + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift new file mode 100644 index 0000000..73404a1 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift @@ -0,0 +1,78 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Aug 05 18:45:58 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMapList /// + +open class SwiftHelloBinding_ListenerMapList: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloBinding_ListenerMapListJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMapList() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMapList", classCache: &SwiftHelloBinding_ListenerMapList.SwiftHelloBinding_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloBinding_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMapList.valueClass() + + private static var valueClass_MethodID_2: jmethodID? + + open class func valueClass() -> java_swift.JavaClass! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMapList", classCache: &SwiftHelloBinding_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil + } + + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift new file mode 100644 index 0000000..02232ac --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift @@ -0,0 +1,196 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloBinding$Responder /// + +public protocol SwiftHelloBinding_Responder: JavaProtocol { + + /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloBinding$Responder.debug(java.lang.String) + + func debug( msg: String? ) -> [String]! + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Responder.testResponder(int) + + func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) + + func processedTextListener( text: SwiftHelloTypes_TextListener? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedText(java.lang.String) + + func processedText( text: String? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) + + func processedNumber( number: Double ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[]) + + func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + func processMap( map: [String:SwiftHelloTypes_TextListener]? ) + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[][]) + + func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) + +} + + +open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBinding_Responder { + + private static var SwiftHelloBinding_ResponderJNIClass: jclass? + + /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloBinding$Responder.debug(java.lang.String) + + private static var debug_MethodID_10: jmethodID? + + open func debug( msg: String? ) -> [String]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: msg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_10, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String](), from: __return ) + } + + open func debug( _ _msg: String? ) -> [String]! { + return debug( msg: _msg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Responder.testResponder(int) + + private static var testResponder_MethodID_11: jmethodID? + + open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_11, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + } + + open func testResponder( _ _loopback: Int ) -> SwiftHelloTest_TestListener! { + return testResponder( loopback: _loopback ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) + + private static var processedTextListener_MethodID_12: jmethodID? + + open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_12, args: &__args, locals: &__locals ) + } + + open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { + processedTextListener( text: _text ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + private static var processMapList_MethodID_13: jmethodID? + + open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_13, args: &__args, locals: &__locals ) + } + + open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { + processMapList( map: _map ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedText(java.lang.String) + + private static var processedText_MethodID_14: jmethodID? + + open func processedText( text: String? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_14, args: &__args, locals: &__locals ) + } + + open func processedText( _ _text: String? ) { + processedText( text: _text ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) + + private static var processedNumber_MethodID_15: jmethodID? + + open func processedNumber( number: Double ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_15, args: &__args, locals: &__locals ) + } + + open func processedNumber( _ _number: Double ) { + processedNumber( number: _number ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[]) + + private static var processedTextListenerArray_MethodID_16: jmethodID? + + open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_16, args: &__args, locals: &__locals ) + } + + open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { + processedTextListenerArray( text: _text ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + private static var processMap_MethodID_17: jmethodID? + + open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_17, args: &__args, locals: &__locals ) + } + + open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { + processMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[][]) + + private static var processedTextListener2dArray_MethodID_18: jmethodID? + + open func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_18, args: &__args, locals: &__locals ) + } + + open func processedTextListener2dArray( _ _text: [[SwiftHelloTypes_TextListener]]? ) { + processedTextListener2dArray( text: _text ) + } + +} + + diff --git a/com_johnholdsworth/Sources/SwiftHelloTest.swift b/com_johnholdsworth/Sources/SwiftHelloTest.swift new file mode 100644 index 0000000..f9b289e --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest.swift @@ -0,0 +1,22 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloTest /// + +public protocol SwiftHelloTest: JavaProtocol { + +} + + +open class SwiftHelloTestForward: JNIObjectForward, SwiftHelloTest { + + private static var SwiftHelloTestJNIClass: jclass? + +} + + diff --git a/com_johnholdsworth/Sources/SwiftHelloTestImpl.swift b/com_johnholdsworth/Sources/SwiftHelloTestImpl.swift new file mode 100644 index 0000000..4a6b5b9 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTestImpl.swift @@ -0,0 +1,315 @@ + +// auto generated by ../../gentests.rb + +import java_swift +import Foundation + +public class SwiftTestListener: SwiftHelloTest_TestListenerBase { + + var loopback: SwiftHelloTest_TestListener? + + override public func booleanMethod( arg: Bool ) -> Bool { + return loopback?.booleanMethod( arg: arg ) ?? arg + } + + override public func booleanArrayMethod( arg: [Bool]? ) -> [Bool]? { + return loopback?.booleanArrayMethod( arg: arg ) ?? arg + } + + override public func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]? { + return loopback?.boolean2dArrayMethod( arg: arg ) ?? arg + } + + override public func byteMethod( arg: Int8 ) -> Int8 { + return loopback?.byteMethod( arg: arg ) ?? arg + } + + override public func byteArrayMethod( arg: [Int8]? ) -> [Int8]? { + return loopback?.byteArrayMethod( arg: arg ) ?? arg + } + + override public func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]? { + return loopback?.byte2dArrayMethod( arg: arg ) ?? arg + } + + override public func charMethod( arg: UInt16 ) -> UInt16 { + return loopback?.charMethod( arg: arg ) ?? arg + } + + override public func charArrayMethod( arg: [UInt16]? ) -> [UInt16]? { + return loopback?.charArrayMethod( arg: arg ) ?? arg + } + + override public func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]? { + return loopback?.char2dArrayMethod( arg: arg ) ?? arg + } + + override public func shortMethod( arg: Int16 ) -> Int16 { + return loopback?.shortMethod( arg: arg ) ?? arg + } + + override public func shortArrayMethod( arg: [Int16]? ) -> [Int16]? { + return loopback?.shortArrayMethod( arg: arg ) ?? arg + } + + override public func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]? { + return loopback?.short2dArrayMethod( arg: arg ) ?? arg + } + + override public func intMethod( arg: Int ) -> Int { + return loopback?.intMethod( arg: arg ) ?? arg + } + + override public func intArrayMethod( arg: [Int32]? ) -> [Int32]? { + return loopback?.intArrayMethod( arg: arg ) ?? arg + } + + override public func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]? { + return loopback?.int2dArrayMethod( arg: arg ) ?? arg + } + + override public func longMethod( arg: Int64 ) -> Int64 { + return loopback?.longMethod( arg: arg ) ?? arg + } + + override public func longArrayMethod( arg: [Int64]? ) -> [Int64]? { + return loopback?.longArrayMethod( arg: arg ) ?? arg + } + + override public func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]? { + return loopback?.long2dArrayMethod( arg: arg ) ?? arg + } + + override public func floatMethod( arg: Float ) -> Float { + return loopback?.floatMethod( arg: arg ) ?? arg + } + + override public func floatArrayMethod( arg: [Float]? ) -> [Float]? { + return loopback?.floatArrayMethod( arg: arg ) ?? arg + } + + override public func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]? { + return loopback?.float2dArrayMethod( arg: arg ) ?? arg + } + + override public func doubleMethod( arg: Double ) -> Double { + return loopback?.doubleMethod( arg: arg ) ?? arg + } + + override public func doubleArrayMethod( arg: [Double]? ) -> [Double]? { + return loopback?.doubleArrayMethod( arg: arg ) ?? arg + } + + override public func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]? { + return loopback?.double2dArrayMethod( arg: arg ) ?? arg + } + + override public func StringMethod( arg: String? ) -> String? { + return loopback?.StringMethod( arg: arg ) ?? arg + } + + override public func StringArrayMethod( arg: [String]? ) -> [String]? { + return loopback?.StringArrayMethod( arg: arg ) ?? arg + } + + override public func String2dArrayMethod( arg: [[String]]? ) -> [[String]]? { + return loopback?.String2dArrayMethod( arg: arg ) ?? arg + } + + override public func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener? { + return loopback?.TestListenerMethod( arg: arg ) ?? arg + } + + override public func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]? { + return loopback?.TestListenerArrayMethod( arg: arg ) ?? arg + } + + override public func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]? { + return loopback?.TestListener2dArrayMethod( arg: arg ) ?? arg + } + +} + +public class SwiftTestResponder { + + static var tcount = 0 + + public func respond( to responder: SwiftHelloTest_TestListener ) { + SwiftTestResponder.tcount += 1 + NSLog("Swift -> Java \(SwiftTestResponder.tcount)...") + + if true { + let reference: Bool = true + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.booleanMethod( arg: reference ) + let responseArray = responder.booleanArrayMethod( arg: referenceArray )! + _ = responder.boolean2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Bool: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Bool: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: Int8 = 123 + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.byteMethod( arg: reference ) + let responseArray = responder.byteArrayMethod( arg: referenceArray )! + _ = responder.byte2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Int8: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Int8: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: UInt16 = 123 + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.charMethod( arg: reference ) + let responseArray = responder.charArrayMethod( arg: referenceArray )! + _ = responder.char2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("UInt16: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("UInt16: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: Int16 = 123 + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.shortMethod( arg: reference ) + let responseArray = responder.shortArrayMethod( arg: referenceArray )! + _ = responder.short2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Int16: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Int16: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: Int = 123 + let referenceArray = [Int32(reference)] + let reference2dArray = [referenceArray] + + let response = responder.intMethod( arg: reference ) + let responseArray = responder.intArrayMethod( arg: referenceArray )! + _ = responder.int2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Int: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Int: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: Int64 = 123 + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.longMethod( arg: reference ) + let responseArray = responder.longArrayMethod( arg: referenceArray )! + _ = responder.long2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Int64: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Int64: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: Float = 123 + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.floatMethod( arg: reference ) + let responseArray = responder.floatArrayMethod( arg: referenceArray )! + _ = responder.float2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Float: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Float: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: Double = 123 + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.doubleMethod( arg: reference ) + let responseArray = responder.doubleArrayMethod( arg: referenceArray )! + _ = responder.double2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("Double: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("Double: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: String = "123" + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.StringMethod( arg: reference ) + let responseArray = responder.StringArrayMethod( arg: referenceArray )! + _ = responder.String2dArrayMethod( arg: reference2dArray ) + + if response != reference { + NSLog("String: \(String(describing: response)) != \(reference)") + } + if responseArray != referenceArray { + NSLog("String: \(responseArray) != \(referenceArray)") + } + } + + + if true { + let reference: SwiftHelloTest_TestListener = SwiftTestListener() + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + let response = responder.TestListenerMethod( arg: reference ) + let responseArray = responder.TestListenerArrayMethod( arg: referenceArray )! + _ = responder.TestListener2dArrayMethod( arg: reference2dArray ) + } + + } + +} diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_John.swift b/com_johnholdsworth/Sources/SwiftHelloTest_John.swift new file mode 100644 index 0000000..0dbddb0 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest_John.swift @@ -0,0 +1,65 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Aug 05 09:49:23 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTest$John /// + +open class SwiftHelloTest_John: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTest_JohnJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloTest$John() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$John", classCache: &SwiftHelloTest_John.SwiftHelloTest_JohnJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_John.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift b/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift new file mode 100644 index 0000000..5909fbd --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift @@ -0,0 +1,78 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Aug 05 17:49:33 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMap /// + +open class SwiftHelloTest_ListenerMap: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTest_ListenerMapJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloTest$ListenerMap() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMap", classCache: &SwiftHelloTest_ListenerMap.SwiftHelloTest_ListenerMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_ListenerMap.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMap.valueClass() + + private static var valueClass_MethodID_2: jmethodID? + + open class func valueClass() -> java_swift.JavaClass! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMap", classCache: &SwiftHelloTest_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil + } + + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift new file mode 100644 index 0000000..3bd7376 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift @@ -0,0 +1,78 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sat Aug 05 17:49:33 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMapList /// + +open class SwiftHelloTest_ListenerMapList: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTest_ListenerMapListJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloTest$ListenerMapList() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMapList", classCache: &SwiftHelloTest_ListenerMapList.SwiftHelloTest_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMapList.valueClass() + + private static var valueClass_MethodID_2: jmethodID? + + open class func valueClass() -> java_swift.JavaClass! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMapList", classCache: &SwiftHelloTest_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil + } + + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift new file mode 100644 index 0000000..a6c7d70 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift @@ -0,0 +1,69 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener /// + +open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTest_SwiftTestListenerJNIClass: jclass? + + /// static int com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener.tcount + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.loopback + + private static var loopback_FieldID: jfieldID? + + override open var loopback: SwiftHelloTest_TestListener! { + get { + var __locals = [jobject]() + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, locals: &__locals ) + return __value != nil ? SwiftHelloTest_TestListenerForward( javaObject: __value ) : nil + } + set(newValue) { + var __locals = [jobject]() + let __value = JNIType.toJava( value: newValue, locals: &__locals ) + JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + } + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$SwiftTestListener", classCache: &SwiftHelloTest_SwiftTestListener.SwiftHelloTest_SwiftTestListenerJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_SwiftTestListener.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public void com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener.respond(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var respond_MethodID_2: jmethodID? + + open func respond( responder: SwiftHelloTest_TestListener? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: responder, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "respond", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_SwiftTestListener.respond_MethodID_2, args: &__args, locals: &__locals ) + } + + open func respond( _ _responder: SwiftHelloTest_TestListener? ) { + respond( responder: _responder ) + } + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift new file mode 100644 index 0000000..cf09039 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift @@ -0,0 +1,1477 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloTest$TestListener /// + +public protocol SwiftHelloTest_TestListener: JavaProtocol { + + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! + + /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + + func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! + + /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + + func byteMethod( arg: Int8 ) -> Int8 + + /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + func byteArrayMethod( arg: [Int8]? ) -> [Int8]! + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + func setLoopback( loopback: SwiftHelloTest_TestListener? ) + + /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + func booleanMethod( arg: Bool ) -> Bool + + /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! + + /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + + func charMethod( arg: UInt16 ) -> UInt16 + + /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + + func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! + + /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + + func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! + + /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + + func shortMethod( arg: Int16 ) -> Int16 + + /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + + func shortArrayMethod( arg: [Int16]? ) -> [Int16]! + + /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + + func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! + + /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + + func intMethod( arg: Int ) -> Int + + /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + + func intArrayMethod( arg: [Int32]? ) -> [Int32]! + + /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + + func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! + + /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + + func longMethod( arg: Int64 ) -> Int64 + + /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + + func longArrayMethod( arg: [Int64]? ) -> [Int64]! + + /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + + func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! + + /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + + func floatMethod( arg: Float ) -> Float + + /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + + func floatArrayMethod( arg: [Float]? ) -> [Float]! + + /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + + func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! + + /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + + func doubleMethod( arg: Double ) -> Double + + /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + + func doubleArrayMethod( arg: [Double]? ) -> [Double]! + + /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + + func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + + func StringMethod( arg: String? ) -> String! + + /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + + func StringArrayMethod( arg: [String]? ) -> [String]! + + /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + + func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! + +} + + +open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_TestListener { + + private static var SwiftHelloTest_TestListenerJNIClass: jclass? + + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + private static var booleanArrayMethod_MethodID_34: jmethodID? + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_34, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool](), from: __return ) + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) + } + + /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + + private static var boolean2dArrayMethod_MethodID_35: jmethodID? + + open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_35, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]](), from: __return ) + } + + open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { + return boolean2dArrayMethod( arg: _arg ) + } + + /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + + private static var byteMethod_MethodID_36: jmethodID? + + open func byteMethod( arg: Int8 ) -> Int8 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_36, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int8(), from: __return ) + } + + open func byteMethod( _ _arg: Int8 ) -> Int8 { + return byteMethod( arg: _arg ) + } + + /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + private static var byteArrayMethod_MethodID_37: jmethodID? + + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_37, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8](), from: __return ) + } + + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var setLoopback_MethodID_38: jmethodID? + + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_38, args: &__args, locals: &__locals ) + } + + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { + setLoopback( loopback: _loopback ) + } + + /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + private static var booleanMethod_MethodID_39: jmethodID? + + open func booleanMethod( arg: Bool ) -> Bool { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_39, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Bool(), from: __return ) + } + + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + + /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + private static var byte2dArrayMethod_MethodID_40: jmethodID? + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestListenerForward.byte2dArrayMethod_MethodID_40, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]](), from: __return ) + } + + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg: _arg ) + } + + /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + + private static var charMethod_MethodID_41: jmethodID? + + open func charMethod( arg: UInt16 ) -> UInt16 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestListenerForward.charMethod_MethodID_41, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: UInt16(), from: __return ) + } + + open func charMethod( _ _arg: UInt16 ) -> UInt16 { + return charMethod( arg: _arg ) + } + + /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + + private static var charArrayMethod_MethodID_42: jmethodID? + + open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestListenerForward.charArrayMethod_MethodID_42, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16](), from: __return ) + } + + open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { + return charArrayMethod( arg: _arg ) + } + + /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + + private static var char2dArrayMethod_MethodID_43: jmethodID? + + open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestListenerForward.char2dArrayMethod_MethodID_43, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]](), from: __return ) + } + + open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { + return char2dArrayMethod( arg: _arg ) + } + + /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + + private static var shortMethod_MethodID_44: jmethodID? + + open func shortMethod( arg: Int16 ) -> Int16 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestListenerForward.shortMethod_MethodID_44, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int16(), from: __return ) + } + + open func shortMethod( _ _arg: Int16 ) -> Int16 { + return shortMethod( arg: _arg ) + } + + /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + + private static var shortArrayMethod_MethodID_45: jmethodID? + + open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestListenerForward.shortArrayMethod_MethodID_45, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16](), from: __return ) + } + + open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { + return shortArrayMethod( arg: _arg ) + } + + /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + + private static var short2dArrayMethod_MethodID_46: jmethodID? + + open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestListenerForward.short2dArrayMethod_MethodID_46, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]](), from: __return ) + } + + open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { + return short2dArrayMethod( arg: _arg ) + } + + /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + + private static var intMethod_MethodID_47: jmethodID? + + open func intMethod( arg: Int ) -> Int { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestListenerForward.intMethod_MethodID_47, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int(), from: __return ) + } + + open func intMethod( _ _arg: Int ) -> Int { + return intMethod( arg: _arg ) + } + + /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + + private static var intArrayMethod_MethodID_48: jmethodID? + + open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestListenerForward.intArrayMethod_MethodID_48, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32](), from: __return ) + } + + open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { + return intArrayMethod( arg: _arg ) + } + + /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + + private static var int2dArrayMethod_MethodID_49: jmethodID? + + open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestListenerForward.int2dArrayMethod_MethodID_49, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]](), from: __return ) + } + + open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { + return int2dArrayMethod( arg: _arg ) + } + + /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + + private static var longMethod_MethodID_50: jmethodID? + + open func longMethod( arg: Int64 ) -> Int64 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestListenerForward.longMethod_MethodID_50, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int64(), from: __return ) + } + + open func longMethod( _ _arg: Int64 ) -> Int64 { + return longMethod( arg: _arg ) + } + + /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + + private static var longArrayMethod_MethodID_51: jmethodID? + + open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestListenerForward.longArrayMethod_MethodID_51, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64](), from: __return ) + } + + open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { + return longArrayMethod( arg: _arg ) + } + + /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + + private static var long2dArrayMethod_MethodID_52: jmethodID? + + open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestListenerForward.long2dArrayMethod_MethodID_52, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]](), from: __return ) + } + + open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { + return long2dArrayMethod( arg: _arg ) + } + + /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + + private static var floatMethod_MethodID_53: jmethodID? + + open func floatMethod( arg: Float ) -> Float { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestListenerForward.floatMethod_MethodID_53, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Float(), from: __return ) + } + + open func floatMethod( _ _arg: Float ) -> Float { + return floatMethod( arg: _arg ) + } + + /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + + private static var floatArrayMethod_MethodID_54: jmethodID? + + open func floatArrayMethod( arg: [Float]? ) -> [Float]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestListenerForward.floatArrayMethod_MethodID_54, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float](), from: __return ) + } + + open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! { + return floatArrayMethod( arg: _arg ) + } + + /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + + private static var float2dArrayMethod_MethodID_55: jmethodID? + + open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestListenerForward.float2dArrayMethod_MethodID_55, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]](), from: __return ) + } + + open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { + return float2dArrayMethod( arg: _arg ) + } + + /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + + private static var doubleMethod_MethodID_56: jmethodID? + + open func doubleMethod( arg: Double ) -> Double { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestListenerForward.doubleMethod_MethodID_56, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Double(), from: __return ) + } + + open func doubleMethod( _ _arg: Double ) -> Double { + return doubleMethod( arg: _arg ) + } + + /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + + private static var doubleArrayMethod_MethodID_57: jmethodID? + + open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestListenerForward.doubleArrayMethod_MethodID_57, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double](), from: __return ) + } + + open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { + return doubleArrayMethod( arg: _arg ) + } + + /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + + private static var double2dArrayMethod_MethodID_58: jmethodID? + + open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestListenerForward.double2dArrayMethod_MethodID_58, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]](), from: __return ) + } + + open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { + return double2dArrayMethod( arg: _arg ) + } + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + + private static var StringMethod_MethodID_59: jmethodID? + + open func StringMethod( arg: String? ) -> String! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringMethod_MethodID_59, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: String(), from: __return ) + } + + open func StringMethod( _ _arg: String? ) -> String! { + return StringMethod( arg: _arg ) + } + + /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + + private static var StringArrayMethod_MethodID_60: jmethodID? + + open func StringArrayMethod( arg: [String]? ) -> [String]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringArrayMethod_MethodID_60, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String](), from: __return ) + } + + open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { + return StringArrayMethod( arg: _arg ) + } + + /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + + private static var String2dArrayMethod_MethodID_61: jmethodID? + + open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.String2dArrayMethod_MethodID_61, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]](), from: __return ) + } + + open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { + return String2dArrayMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var TestListenerMethod_MethodID_62: jmethodID? + + open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerMethod_MethodID_62, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + } + + open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + return TestListenerMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + private static var TestListenerArrayMethod_MethodID_63: jmethodID? + + open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerArrayMethod_MethodID_63, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: __return ) + } + + open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { + return TestListenerArrayMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + private static var TestListener2dArrayMethod_MethodID_64: jmethodID? + + open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListener2dArrayMethod_MethodID_64, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: __return ) + } + + open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { + return TestListener2dArrayMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + private static var testMap_MethodID_65: jmethodID? + + open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestListenerForward.testMap_MethodID_65, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: __return ) + } + + open func testMap( _ _arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { + return testMap( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + private static var testMapList_MethodID_66: jmethodID? + + open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestListenerForward.testMapList_MethodID_66, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: __return ) + } + + open func testMapList( _ _arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { + return testMapList( arg: _arg ) + } + +} + + +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_booleanArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_byteMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte + +private func SwiftHelloTest_TestListener_byteMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_byteArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_byteArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_setLoopback_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloTest_TestListener_setLoopback_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) + JNI.inNative = false; +} + +private typealias SwiftHelloTest_TestListener_booleanMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean + +private func SwiftHelloTest_TestListener_booleanMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_byte2dArrayMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byte2dArrayMethod( arg: JNIType.toSwift( type: [[Int8]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_charMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jchar ) -> jchar + +private func SwiftHelloTest_TestListener_charMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jchar ) -> jchar { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charMethod( arg: JNIType.toSwift( type: UInt16(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).c, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_charArrayMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_charArrayMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charArrayMethod( arg: JNIType.toSwift( type: [UInt16](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_char2dArrayMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_char2dArrayMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).char2dArrayMethod( arg: JNIType.toSwift( type: [[UInt16]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_shortMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jshort ) -> jshort + +private func SwiftHelloTest_TestListener_shortMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jshort ) -> jshort { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortMethod( arg: JNIType.toSwift( type: Int16(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).s, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_shortArrayMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_shortArrayMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortArrayMethod( arg: JNIType.toSwift( type: [Int16](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_short2dArrayMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_short2dArrayMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).short2dArrayMethod( arg: JNIType.toSwift( type: [[Int16]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_intMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jint + +private func SwiftHelloTest_TestListener_intMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jint ) -> jint { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intMethod( arg: JNIType.toSwift( type: Int(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).i, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_intArrayMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_intArrayMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intArrayMethod( arg: JNIType.toSwift( type: [Int32](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_int2dArrayMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_int2dArrayMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).int2dArrayMethod( arg: JNIType.toSwift( type: [[Int32]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_longMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jlong ) -> jlong + +private func SwiftHelloTest_TestListener_longMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jlong ) -> jlong { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longMethod( arg: JNIType.toSwift( type: Int64(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).j, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_longArrayMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_longArrayMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longArrayMethod( arg: JNIType.toSwift( type: [Int64](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_long2dArrayMethod_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_long2dArrayMethod_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).long2dArrayMethod( arg: JNIType.toSwift( type: [[Int64]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_floatMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jfloat ) -> jfloat + +private func SwiftHelloTest_TestListener_floatMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jfloat ) -> jfloat { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatMethod( arg: JNIType.toSwift( type: Float(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).f, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_floatArrayMethod_20_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_floatArrayMethod_20( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatArrayMethod( arg: JNIType.toSwift( type: [Float](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_float2dArrayMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_float2dArrayMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).float2dArrayMethod( arg: JNIType.toSwift( type: [[Float]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_doubleMethod_22_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> jdouble + +private func SwiftHelloTest_TestListener_doubleMethod_22( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jdouble ) -> jdouble { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleMethod( arg: JNIType.toSwift( type: Double(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).d, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_doubleArrayMethod_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_doubleArrayMethod_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleArrayMethod( arg: JNIType.toSwift( type: [Double](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_double2dArrayMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_double2dArrayMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).double2dArrayMethod( arg: JNIType.toSwift( type: [[Double]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_StringMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_StringMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringMethod( arg: JNIType.toSwift( type: String(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_StringArrayMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_StringArrayMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringArrayMethod( arg: JNIType.toSwift( type: [String](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_String2dArrayMethod_27_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_String2dArrayMethod_27( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).String2dArrayMethod( arg: JNIType.toSwift( type: [[String]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_TestListenerMethod_28_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_TestListenerMethod_28( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerMethod( arg: arg != nil ? SwiftHelloTest_TestListenerForward( javaObject: arg ) : nil ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_TestListenerArrayMethod_29_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_TestListenerArrayMethod_29( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerArrayMethod( arg: JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_TestListener2dArrayMethod_30_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_TestListener2dArrayMethod_30( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListener2dArrayMethod( arg: JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_testMap_31_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_testMap_31( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestListener_testMapList_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestListener_testMapList_32( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) +} + +fileprivate class SwiftHelloTest_TestListenerLocal_: JNILocalProxy { + + fileprivate static let _proxyClass: jclass = { + var natives = [JNINativeMethod]() + + let SwiftHelloTest_TestListener_booleanArrayMethod_0_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_0_type = SwiftHelloTest_TestListener_booleanArrayMethod_0 + natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("(J[Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_1 + natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("(J[[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_byteMethod_2_thunk: SwiftHelloTest_TestListener_byteMethod_2_type = SwiftHelloTest_TestListener_byteMethod_2 + natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(JB)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_byteArrayMethod_3_thunk: SwiftHelloTest_TestListener_byteArrayMethod_3_type = SwiftHelloTest_TestListener_byteArrayMethod_3 + natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("(J[B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_setLoopback_4_thunk: SwiftHelloTest_TestListener_setLoopback_4_type = SwiftHelloTest_TestListener_setLoopback_4 + natives.append( JNINativeMethod( name: strdup("__setLoopback"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_setLoopback_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_booleanMethod_5_thunk: SwiftHelloTest_TestListener_booleanMethod_5_type = SwiftHelloTest_TestListener_booleanMethod_5 + natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(JZ)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_byte2dArrayMethod_6_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_6_type = SwiftHelloTest_TestListener_byte2dArrayMethod_6 + natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("(J[[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_6_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_charMethod_7_thunk: SwiftHelloTest_TestListener_charMethod_7_type = SwiftHelloTest_TestListener_charMethod_7 + natives.append( JNINativeMethod( name: strdup("__charMethod"), signature: strdup("(JC)C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charMethod_7_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_charArrayMethod_8_thunk: SwiftHelloTest_TestListener_charArrayMethod_8_type = SwiftHelloTest_TestListener_charArrayMethod_8 + natives.append( JNINativeMethod( name: strdup("__charArrayMethod"), signature: strdup("(J[C)[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charArrayMethod_8_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_char2dArrayMethod_9_thunk: SwiftHelloTest_TestListener_char2dArrayMethod_9_type = SwiftHelloTest_TestListener_char2dArrayMethod_9 + natives.append( JNINativeMethod( name: strdup("__char2dArrayMethod"), signature: strdup("(J[[C)[[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_char2dArrayMethod_9_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_shortMethod_10_thunk: SwiftHelloTest_TestListener_shortMethod_10_type = SwiftHelloTest_TestListener_shortMethod_10 + natives.append( JNINativeMethod( name: strdup("__shortMethod"), signature: strdup("(JS)S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortMethod_10_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_shortArrayMethod_11_thunk: SwiftHelloTest_TestListener_shortArrayMethod_11_type = SwiftHelloTest_TestListener_shortArrayMethod_11 + natives.append( JNINativeMethod( name: strdup("__shortArrayMethod"), signature: strdup("(J[S)[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortArrayMethod_11_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_short2dArrayMethod_12_thunk: SwiftHelloTest_TestListener_short2dArrayMethod_12_type = SwiftHelloTest_TestListener_short2dArrayMethod_12 + natives.append( JNINativeMethod( name: strdup("__short2dArrayMethod"), signature: strdup("(J[[S)[[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_short2dArrayMethod_12_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_intMethod_13_thunk: SwiftHelloTest_TestListener_intMethod_13_type = SwiftHelloTest_TestListener_intMethod_13 + natives.append( JNINativeMethod( name: strdup("__intMethod"), signature: strdup("(JI)I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intMethod_13_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_intArrayMethod_14_thunk: SwiftHelloTest_TestListener_intArrayMethod_14_type = SwiftHelloTest_TestListener_intArrayMethod_14 + natives.append( JNINativeMethod( name: strdup("__intArrayMethod"), signature: strdup("(J[I)[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intArrayMethod_14_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_int2dArrayMethod_15_thunk: SwiftHelloTest_TestListener_int2dArrayMethod_15_type = SwiftHelloTest_TestListener_int2dArrayMethod_15 + natives.append( JNINativeMethod( name: strdup("__int2dArrayMethod"), signature: strdup("(J[[I)[[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_int2dArrayMethod_15_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_longMethod_16_thunk: SwiftHelloTest_TestListener_longMethod_16_type = SwiftHelloTest_TestListener_longMethod_16 + natives.append( JNINativeMethod( name: strdup("__longMethod"), signature: strdup("(JJ)J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longMethod_16_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_longArrayMethod_17_thunk: SwiftHelloTest_TestListener_longArrayMethod_17_type = SwiftHelloTest_TestListener_longArrayMethod_17 + natives.append( JNINativeMethod( name: strdup("__longArrayMethod"), signature: strdup("(J[J)[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longArrayMethod_17_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_long2dArrayMethod_18_thunk: SwiftHelloTest_TestListener_long2dArrayMethod_18_type = SwiftHelloTest_TestListener_long2dArrayMethod_18 + natives.append( JNINativeMethod( name: strdup("__long2dArrayMethod"), signature: strdup("(J[[J)[[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_long2dArrayMethod_18_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_floatMethod_19_thunk: SwiftHelloTest_TestListener_floatMethod_19_type = SwiftHelloTest_TestListener_floatMethod_19 + natives.append( JNINativeMethod( name: strdup("__floatMethod"), signature: strdup("(JF)F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatMethod_19_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_floatArrayMethod_20_thunk: SwiftHelloTest_TestListener_floatArrayMethod_20_type = SwiftHelloTest_TestListener_floatArrayMethod_20 + natives.append( JNINativeMethod( name: strdup("__floatArrayMethod"), signature: strdup("(J[F)[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatArrayMethod_20_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_float2dArrayMethod_21_thunk: SwiftHelloTest_TestListener_float2dArrayMethod_21_type = SwiftHelloTest_TestListener_float2dArrayMethod_21 + natives.append( JNINativeMethod( name: strdup("__float2dArrayMethod"), signature: strdup("(J[[F)[[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_float2dArrayMethod_21_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_doubleMethod_22_thunk: SwiftHelloTest_TestListener_doubleMethod_22_type = SwiftHelloTest_TestListener_doubleMethod_22 + natives.append( JNINativeMethod( name: strdup("__doubleMethod"), signature: strdup("(JD)D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleMethod_22_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_doubleArrayMethod_23_thunk: SwiftHelloTest_TestListener_doubleArrayMethod_23_type = SwiftHelloTest_TestListener_doubleArrayMethod_23 + natives.append( JNINativeMethod( name: strdup("__doubleArrayMethod"), signature: strdup("(J[D)[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleArrayMethod_23_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_double2dArrayMethod_24_thunk: SwiftHelloTest_TestListener_double2dArrayMethod_24_type = SwiftHelloTest_TestListener_double2dArrayMethod_24 + natives.append( JNINativeMethod( name: strdup("__double2dArrayMethod"), signature: strdup("(J[[D)[[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_double2dArrayMethod_24_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_StringMethod_25_thunk: SwiftHelloTest_TestListener_StringMethod_25_type = SwiftHelloTest_TestListener_StringMethod_25 + natives.append( JNINativeMethod( name: strdup("__StringMethod"), signature: strdup("(JLjava/lang/String;)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringMethod_25_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_StringArrayMethod_26_thunk: SwiftHelloTest_TestListener_StringArrayMethod_26_type = SwiftHelloTest_TestListener_StringArrayMethod_26 + natives.append( JNINativeMethod( name: strdup("__StringArrayMethod"), signature: strdup("(J[Ljava/lang/String;)[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringArrayMethod_26_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_String2dArrayMethod_27_thunk: SwiftHelloTest_TestListener_String2dArrayMethod_27_type = SwiftHelloTest_TestListener_String2dArrayMethod_27 + natives.append( JNINativeMethod( name: strdup("__String2dArrayMethod"), signature: strdup("(J[[Ljava/lang/String;)[[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_String2dArrayMethod_27_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_TestListenerMethod_28_thunk: SwiftHelloTest_TestListener_TestListenerMethod_28_type = SwiftHelloTest_TestListener_TestListenerMethod_28 + natives.append( JNINativeMethod( name: strdup("__TestListenerMethod"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_TestListenerMethod_28_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_TestListenerArrayMethod_29_thunk: SwiftHelloTest_TestListener_TestListenerArrayMethod_29_type = SwiftHelloTest_TestListener_TestListenerArrayMethod_29 + natives.append( JNINativeMethod( name: strdup("__TestListenerArrayMethod"), signature: strdup("(J[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_TestListenerArrayMethod_29_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_TestListener2dArrayMethod_30_thunk: SwiftHelloTest_TestListener_TestListener2dArrayMethod_30_type = SwiftHelloTest_TestListener_TestListener2dArrayMethod_30 + natives.append( JNINativeMethod( name: strdup("__TestListener2dArrayMethod"), signature: strdup("(J[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_TestListener2dArrayMethod_30_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_testMap_31_thunk: SwiftHelloTest_TestListener_testMap_31_type = SwiftHelloTest_TestListener_testMap_31 + natives.append( JNINativeMethod( name: strdup("__testMap"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_testMap_31_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestListener_testMapList_32_thunk: SwiftHelloTest_TestListener_testMapList_32_type = SwiftHelloTest_TestListener_testMapList_32 + natives.append( JNINativeMethod( name: strdup("__testMapList"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_testMapList_32_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + natives.append( JNINativeMethod( name: strdup("__finalize"), signature: strdup("(J)V"), fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let clazz = JNI.FindClass( proxyClassName() ) + withUnsafePointer(to: &natives[0]) { + nativesPtr in + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) + } + } + + defer { JNI.DeleteLocalRef( clazz ) } + return JNI.api.NewGlobalRef( JNI.env, clazz )! + }() + + override open class func proxyClassName() -> String { return "org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy" } + override open class func proxyClass() -> jclass? { return _proxyClass } + +} + +extension SwiftHelloTest_TestListener { + + public func localJavaObject( _ locals: UnsafeMutablePointer<[jobject]> ) -> jobject? { + return SwiftHelloTest_TestListenerLocal_( owned: self, proto: self ).localJavaObject( locals ) + } + +} + +open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { + + public init() {} + + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { + return nil + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { + return booleanArrayMethod( arg: _arg ) + } + + /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + + open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! /**/ { + return nil + } + + open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! /**/ { + return boolean2dArrayMethod( arg: _arg ) + } + + /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + + open func byteMethod( arg: Int8 ) -> Int8 /**/ { + return 0 + } + + open func byteMethod( _ _arg: Int8 ) -> Int8 /**/ { + return byteMethod( arg: _arg ) + } + + /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { + return nil + } + + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { + return byteArrayMethod( arg: _arg ) + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) /**/ { + } + + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) /**/ { + setLoopback( loopback: _loopback ) + } + + /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + open func booleanMethod( arg: Bool ) -> Bool /**/ { + return false + } + + open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { + return booleanMethod( arg: _arg ) + } + + /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { + return nil + } + + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! /**/ { + return byte2dArrayMethod( arg: _arg ) + } + + /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + + open func charMethod( arg: UInt16 ) -> UInt16 /**/ { + return 0 + } + + open func charMethod( _ _arg: UInt16 ) -> UInt16 /**/ { + return charMethod( arg: _arg ) + } + + /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + + open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! /**/ { + return nil + } + + open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! /**/ { + return charArrayMethod( arg: _arg ) + } + + /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + + open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { + return nil + } + + open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { + return char2dArrayMethod( arg: _arg ) + } + + /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + + open func shortMethod( arg: Int16 ) -> Int16 /**/ { + return 0 + } + + open func shortMethod( _ _arg: Int16 ) -> Int16 /**/ { + return shortMethod( arg: _arg ) + } + + /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + + open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! /**/ { + return nil + } + + open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! /**/ { + return shortArrayMethod( arg: _arg ) + } + + /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + + open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! /**/ { + return nil + } + + open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! /**/ { + return short2dArrayMethod( arg: _arg ) + } + + /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + + open func intMethod( arg: Int ) -> Int /**/ { + return 0 + } + + open func intMethod( _ _arg: Int ) -> Int /**/ { + return intMethod( arg: _arg ) + } + + /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + + open func intArrayMethod( arg: [Int32]? ) -> [Int32]! /**/ { + return nil + } + + open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! /**/ { + return intArrayMethod( arg: _arg ) + } + + /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + + open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! /**/ { + return nil + } + + open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! /**/ { + return int2dArrayMethod( arg: _arg ) + } + + /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + + open func longMethod( arg: Int64 ) -> Int64 /**/ { + return 0 + } + + open func longMethod( _ _arg: Int64 ) -> Int64 /**/ { + return longMethod( arg: _arg ) + } + + /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + + open func longArrayMethod( arg: [Int64]? ) -> [Int64]! /**/ { + return nil + } + + open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! /**/ { + return longArrayMethod( arg: _arg ) + } + + /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + + open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! /**/ { + return nil + } + + open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! /**/ { + return long2dArrayMethod( arg: _arg ) + } + + /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + + open func floatMethod( arg: Float ) -> Float /**/ { + return 0 + } + + open func floatMethod( _ _arg: Float ) -> Float /**/ { + return floatMethod( arg: _arg ) + } + + /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + + open func floatArrayMethod( arg: [Float]? ) -> [Float]! /**/ { + return nil + } + + open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! /**/ { + return floatArrayMethod( arg: _arg ) + } + + /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + + open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! /**/ { + return nil + } + + open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! /**/ { + return float2dArrayMethod( arg: _arg ) + } + + /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + + open func doubleMethod( arg: Double ) -> Double /**/ { + return 0 + } + + open func doubleMethod( _ _arg: Double ) -> Double /**/ { + return doubleMethod( arg: _arg ) + } + + /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + + open func doubleArrayMethod( arg: [Double]? ) -> [Double]! /**/ { + return nil + } + + open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! /**/ { + return doubleArrayMethod( arg: _arg ) + } + + /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + + open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! /**/ { + return nil + } + + open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! /**/ { + return double2dArrayMethod( arg: _arg ) + } + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + + open func StringMethod( arg: String? ) -> String! /**/ { + return nil + } + + open func StringMethod( _ _arg: String? ) -> String! /**/ { + return StringMethod( arg: _arg ) + } + + /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + + open func StringArrayMethod( arg: [String]? ) -> [String]! /**/ { + return nil + } + + open func StringArrayMethod( _ _arg: [String]? ) -> [String]! /**/ { + return StringArrayMethod( arg: _arg ) + } + + /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + + open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! /**/ { + return nil + } + + open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! /**/ { + return String2dArrayMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /**/ { + return nil + } + + open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /**/ { + return TestListenerMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! /**/ { + return nil + } + + open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! /**/ { + return TestListenerArrayMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! /**/ { + return nil + } + + open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! /**/ { + return TestListener2dArrayMethod( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! /**/ { + return nil + } + + open func testMap( _ _arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! /**/ { + return testMap( arg: _arg ) + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! /**/ { + return nil + } + + open func testMapList( _ _arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! /**/ { + return testMapList( arg: _arg ) + } + +} diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift new file mode 100644 index 0000000..c0d8ea2 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift @@ -0,0 +1,1106 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter /// + +open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHelloTest_TestListener { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTest_TestResponderAdapterJNIClass: jclass? + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.loopback + + private static var loopback_FieldID: jfieldID? + + open var loopback: SwiftHelloTest_TestListener! { + get { + var __locals = [jobject]() + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, locals: &__locals ) + return __value != nil ? SwiftHelloTest_TestListenerForward( javaObject: __value ) : nil + } + set(newValue) { + var __locals = [jobject]() + let __value = JNIType.toJava( value: newValue, locals: &__locals ) + JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + } + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$TestResponderAdapter", classCache: &SwiftHelloTest_TestResponderAdapter.SwiftHelloTest_TestResponderAdapterJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_TestResponderAdapter.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) + + private static var booleanArrayMethod_MethodID_2: jmethodID? + + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanArrayMethod_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool](), from: __return ) + } + + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) + } + + /// public boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) + + private static var boolean2dArrayMethod_MethodID_3: jmethodID? + + open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.boolean2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]](), from: __return ) + } + + open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { + return boolean2dArrayMethod( arg: _arg ) + } + + /// public byte com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) + + private static var byteMethod_MethodID_4: jmethodID? + + open func byteMethod( arg: Int8 ) -> Int8 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteMethod_MethodID_4, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int8(), from: __return ) + } + + open func byteMethod( _ _arg: Int8 ) -> Int8 { + return byteMethod( arg: _arg ) + } + + /// public byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) + + private static var byteArrayMethod_MethodID_5: jmethodID? + + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteArrayMethod_MethodID_5, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8](), from: __return ) + } + + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) + } + + /// public void com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var setLoopback_MethodID_6: jmethodID? + + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_6, args: &__args, locals: &__locals ) + } + + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { + setLoopback( loopback: _loopback ) + } + + /// public boolean com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) + + private static var booleanMethod_MethodID_7: jmethodID? + + open func booleanMethod( arg: Bool ) -> Bool { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanMethod_MethodID_7, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Bool(), from: __return ) + } + + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + + /// public byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) + + private static var byte2dArrayMethod_MethodID_8: jmethodID? + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byte2dArrayMethod_MethodID_8, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]](), from: __return ) + } + + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg: _arg ) + } + + /// public char com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) + + private static var charMethod_MethodID_9: jmethodID? + + open func charMethod( arg: UInt16 ) -> UInt16 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestResponderAdapter.charMethod_MethodID_9, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: UInt16(), from: __return ) + } + + open func charMethod( _ _arg: UInt16 ) -> UInt16 { + return charMethod( arg: _arg ) + } + + /// public char[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) + + private static var charArrayMethod_MethodID_10: jmethodID? + + open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestResponderAdapter.charArrayMethod_MethodID_10, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16](), from: __return ) + } + + open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { + return charArrayMethod( arg: _arg ) + } + + /// public char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) + + private static var char2dArrayMethod_MethodID_11: jmethodID? + + open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestResponderAdapter.char2dArrayMethod_MethodID_11, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]](), from: __return ) + } + + open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { + return char2dArrayMethod( arg: _arg ) + } + + /// public short com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) + + private static var shortMethod_MethodID_12: jmethodID? + + open func shortMethod( arg: Int16 ) -> Int16 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestResponderAdapter.shortMethod_MethodID_12, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int16(), from: __return ) + } + + open func shortMethod( _ _arg: Int16 ) -> Int16 { + return shortMethod( arg: _arg ) + } + + /// public short[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) + + private static var shortArrayMethod_MethodID_13: jmethodID? + + open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestResponderAdapter.shortArrayMethod_MethodID_13, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16](), from: __return ) + } + + open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { + return shortArrayMethod( arg: _arg ) + } + + /// public short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + + private static var short2dArrayMethod_MethodID_14: jmethodID? + + open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestResponderAdapter.short2dArrayMethod_MethodID_14, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]](), from: __return ) + } + + open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { + return short2dArrayMethod( arg: _arg ) + } + + /// public int com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) + + private static var intMethod_MethodID_15: jmethodID? + + open func intMethod( arg: Int ) -> Int { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestResponderAdapter.intMethod_MethodID_15, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int(), from: __return ) + } + + open func intMethod( _ _arg: Int ) -> Int { + return intMethod( arg: _arg ) + } + + /// public int[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) + + private static var intArrayMethod_MethodID_16: jmethodID? + + open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestResponderAdapter.intArrayMethod_MethodID_16, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32](), from: __return ) + } + + open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { + return intArrayMethod( arg: _arg ) + } + + /// public int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) + + private static var int2dArrayMethod_MethodID_17: jmethodID? + + open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestResponderAdapter.int2dArrayMethod_MethodID_17, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]](), from: __return ) + } + + open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { + return int2dArrayMethod( arg: _arg ) + } + + /// public long com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) + + private static var longMethod_MethodID_18: jmethodID? + + open func longMethod( arg: Int64 ) -> Int64 { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestResponderAdapter.longMethod_MethodID_18, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int64(), from: __return ) + } + + open func longMethod( _ _arg: Int64 ) -> Int64 { + return longMethod( arg: _arg ) + } + + /// public long[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) + + private static var longArrayMethod_MethodID_19: jmethodID? + + open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestResponderAdapter.longArrayMethod_MethodID_19, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64](), from: __return ) + } + + open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { + return longArrayMethod( arg: _arg ) + } + + /// public long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) + + private static var long2dArrayMethod_MethodID_20: jmethodID? + + open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestResponderAdapter.long2dArrayMethod_MethodID_20, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]](), from: __return ) + } + + open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { + return long2dArrayMethod( arg: _arg ) + } + + /// public float com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) + + private static var floatMethod_MethodID_21: jmethodID? + + open func floatMethod( arg: Float ) -> Float { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestResponderAdapter.floatMethod_MethodID_21, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Float(), from: __return ) + } + + open func floatMethod( _ _arg: Float ) -> Float { + return floatMethod( arg: _arg ) + } + + /// public float[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) + + private static var floatArrayMethod_MethodID_22: jmethodID? + + open func floatArrayMethod( arg: [Float]? ) -> [Float]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestResponderAdapter.floatArrayMethod_MethodID_22, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float](), from: __return ) + } + + open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! { + return floatArrayMethod( arg: _arg ) + } + + /// public float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) + + private static var float2dArrayMethod_MethodID_23: jmethodID? + + open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestResponderAdapter.float2dArrayMethod_MethodID_23, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]](), from: __return ) + } + + open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { + return float2dArrayMethod( arg: _arg ) + } + + /// public double com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) + + private static var doubleMethod_MethodID_24: jmethodID? + + open func doubleMethod( arg: Double ) -> Double { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestResponderAdapter.doubleMethod_MethodID_24, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Double(), from: __return ) + } + + open func doubleMethod( _ _arg: Double ) -> Double { + return doubleMethod( arg: _arg ) + } + + /// public double[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) + + private static var doubleArrayMethod_MethodID_25: jmethodID? + + open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestResponderAdapter.doubleArrayMethod_MethodID_25, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double](), from: __return ) + } + + open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { + return doubleArrayMethod( arg: _arg ) + } + + /// public double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) + + private static var double2dArrayMethod_MethodID_26: jmethodID? + + open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestResponderAdapter.double2dArrayMethod_MethodID_26, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]](), from: __return ) + } + + open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { + return double2dArrayMethod( arg: _arg ) + } + + /// public java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) + + private static var StringMethod_MethodID_27: jmethodID? + + open func StringMethod( arg: String? ) -> String! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.StringMethod_MethodID_27, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: String(), from: __return ) + } + + open func StringMethod( _ _arg: String? ) -> String! { + return StringMethod( arg: _arg ) + } + + /// public java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) + + private static var StringArrayMethod_MethodID_28: jmethodID? + + open func StringArrayMethod( arg: [String]? ) -> [String]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.StringArrayMethod_MethodID_28, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String](), from: __return ) + } + + open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { + return StringArrayMethod( arg: _arg ) + } + + /// public java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) + + private static var String2dArrayMethod_MethodID_29: jmethodID? + + open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.String2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]](), from: __return ) + } + + open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { + return String2dArrayMethod( arg: _arg ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var TestListenerMethod_MethodID_30: jmethodID? + + open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerMethod_MethodID_30, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + } + + open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + return TestListenerMethod( arg: _arg ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + private static var TestListenerArrayMethod_MethodID_31: jmethodID? + + open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerArrayMethod_MethodID_31, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: __return ) + } + + open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { + return TestListenerArrayMethod( arg: _arg ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + private static var TestListener2dArrayMethod_MethodID_32: jmethodID? + + open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListener2dArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: __return ) + } + + open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { + return TestListener2dArrayMethod( arg: _arg ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + private static var testMap_MethodID_33: jmethodID? + + open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMap_MethodID_33, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: __return ) + } + + open func testMap( _ _arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { + return testMap( arg: _arg ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + private static var testMapList_MethodID_34: jmethodID? + + open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMapList_MethodID_34, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: __return ) + } + + open func testMapList( _ _arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { + return testMapList( arg: _arg ) + } + +} + +private typealias SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_byteMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte + +private func SwiftHelloTest_TestResponderAdapter_byteMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_setLoopback_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloTest_TestResponderAdapter_setLoopback_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) + JNI.inNative = false; +} + +private typealias SwiftHelloTest_TestResponderAdapter_booleanMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean + +private func SwiftHelloTest_TestResponderAdapter_booleanMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byte2dArrayMethod( arg: JNIType.toSwift( type: [[Int8]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_charMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jchar ) -> jchar + +private func SwiftHelloTest_TestResponderAdapter_charMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jchar ) -> jchar { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charMethod( arg: JNIType.toSwift( type: UInt16(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).c, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_charArrayMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_charArrayMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charArrayMethod( arg: JNIType.toSwift( type: [UInt16](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).char2dArrayMethod( arg: JNIType.toSwift( type: [[UInt16]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_shortMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jshort ) -> jshort + +private func SwiftHelloTest_TestResponderAdapter_shortMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jshort ) -> jshort { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortMethod( arg: JNIType.toSwift( type: Int16(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).s, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortArrayMethod( arg: JNIType.toSwift( type: [Int16](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).short2dArrayMethod( arg: JNIType.toSwift( type: [[Int16]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_intMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jint + +private func SwiftHelloTest_TestResponderAdapter_intMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jint ) -> jint { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intMethod( arg: JNIType.toSwift( type: Int(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).i, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_intArrayMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_intArrayMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intArrayMethod( arg: JNIType.toSwift( type: [Int32](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).int2dArrayMethod( arg: JNIType.toSwift( type: [[Int32]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_longMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jlong ) -> jlong + +private func SwiftHelloTest_TestResponderAdapter_longMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jlong ) -> jlong { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longMethod( arg: JNIType.toSwift( type: Int64(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).j, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_longArrayMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_longArrayMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longArrayMethod( arg: JNIType.toSwift( type: [Int64](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).long2dArrayMethod( arg: JNIType.toSwift( type: [[Int64]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_floatMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jfloat ) -> jfloat + +private func SwiftHelloTest_TestResponderAdapter_floatMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jfloat ) -> jfloat { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatMethod( arg: JNIType.toSwift( type: Float(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).f, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatArrayMethod( arg: JNIType.toSwift( type: [Float](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).float2dArrayMethod( arg: JNIType.toSwift( type: [[Float]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_doubleMethod_22_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> jdouble + +private func SwiftHelloTest_TestResponderAdapter_doubleMethod_22( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jdouble ) -> jdouble { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleMethod( arg: JNIType.toSwift( type: Double(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).d, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleArrayMethod( arg: JNIType.toSwift( type: [Double](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).double2dArrayMethod( arg: JNIType.toSwift( type: [[Double]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_StringMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_StringMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringMethod( arg: JNIType.toSwift( type: String(), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringArrayMethod( arg: JNIType.toSwift( type: [String](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).String2dArrayMethod( arg: JNIType.toSwift( type: [[String]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerMethod( arg: arg != nil ? SwiftHelloTest_TestListenerForward( javaObject: arg ) : nil ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerArrayMethod( arg: JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListener2dArrayMethod( arg: JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_testMap_31_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_testMap_31( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_testMapList_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_testMapList_32( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: arg ) ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_equals_36_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jboolean + +private func SwiftHelloTest_TestResponderAdapter_equals_36( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg0: jobject? ) -> jboolean { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).equals( arg0: arg0 != nil ? java_swift.JavaObject( javaObject: arg0 ) : nil ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_toString_37_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jobject? + +private func SwiftHelloTest_TestResponderAdapter_toString_37( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).toString( ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +private typealias SwiftHelloTest_TestResponderAdapter_hashCode_38_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jint + +private func SwiftHelloTest_TestResponderAdapter_hashCode_38( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jint { + JNI.inNative = true; + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).hashCode( ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).i, &locals, removeLast: true ) +} + +fileprivate class SwiftHelloTest_TestResponderAdapterLocal_: JNIObjectProxy { + + fileprivate static let _proxyClass: jclass = { + var natives = [JNINativeMethod]() + + let SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0_thunk: SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0_type = SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0 + natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("(J[Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1_thunk: SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1_type = SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1 + natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("(J[[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_byteMethod_2_thunk: SwiftHelloTest_TestResponderAdapter_byteMethod_2_type = SwiftHelloTest_TestResponderAdapter_byteMethod_2 + natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(JB)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_byteMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3_thunk: SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3_type = SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3 + natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("(J[B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_setLoopback_4_thunk: SwiftHelloTest_TestResponderAdapter_setLoopback_4_type = SwiftHelloTest_TestResponderAdapter_setLoopback_4 + natives.append( JNINativeMethod( name: strdup("__setLoopback"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_setLoopback_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_booleanMethod_5_thunk: SwiftHelloTest_TestResponderAdapter_booleanMethod_5_type = SwiftHelloTest_TestResponderAdapter_booleanMethod_5 + natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(JZ)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_booleanMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6_thunk: SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6_type = SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6 + natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("(J[[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_charMethod_7_thunk: SwiftHelloTest_TestResponderAdapter_charMethod_7_type = SwiftHelloTest_TestResponderAdapter_charMethod_7 + natives.append( JNINativeMethod( name: strdup("__charMethod"), signature: strdup("(JC)C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_charMethod_7_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_charArrayMethod_8_thunk: SwiftHelloTest_TestResponderAdapter_charArrayMethod_8_type = SwiftHelloTest_TestResponderAdapter_charArrayMethod_8 + natives.append( JNINativeMethod( name: strdup("__charArrayMethod"), signature: strdup("(J[C)[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_charArrayMethod_8_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9_thunk: SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9_type = SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9 + natives.append( JNINativeMethod( name: strdup("__char2dArrayMethod"), signature: strdup("(J[[C)[[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_shortMethod_10_thunk: SwiftHelloTest_TestResponderAdapter_shortMethod_10_type = SwiftHelloTest_TestResponderAdapter_shortMethod_10 + natives.append( JNINativeMethod( name: strdup("__shortMethod"), signature: strdup("(JS)S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_shortMethod_10_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11_thunk: SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11_type = SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11 + natives.append( JNINativeMethod( name: strdup("__shortArrayMethod"), signature: strdup("(J[S)[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12_thunk: SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12_type = SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12 + natives.append( JNINativeMethod( name: strdup("__short2dArrayMethod"), signature: strdup("(J[[S)[[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_intMethod_13_thunk: SwiftHelloTest_TestResponderAdapter_intMethod_13_type = SwiftHelloTest_TestResponderAdapter_intMethod_13 + natives.append( JNINativeMethod( name: strdup("__intMethod"), signature: strdup("(JI)I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_intMethod_13_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_intArrayMethod_14_thunk: SwiftHelloTest_TestResponderAdapter_intArrayMethod_14_type = SwiftHelloTest_TestResponderAdapter_intArrayMethod_14 + natives.append( JNINativeMethod( name: strdup("__intArrayMethod"), signature: strdup("(J[I)[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_intArrayMethod_14_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15_thunk: SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15_type = SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15 + natives.append( JNINativeMethod( name: strdup("__int2dArrayMethod"), signature: strdup("(J[[I)[[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_longMethod_16_thunk: SwiftHelloTest_TestResponderAdapter_longMethod_16_type = SwiftHelloTest_TestResponderAdapter_longMethod_16 + natives.append( JNINativeMethod( name: strdup("__longMethod"), signature: strdup("(JJ)J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_longMethod_16_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_longArrayMethod_17_thunk: SwiftHelloTest_TestResponderAdapter_longArrayMethod_17_type = SwiftHelloTest_TestResponderAdapter_longArrayMethod_17 + natives.append( JNINativeMethod( name: strdup("__longArrayMethod"), signature: strdup("(J[J)[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_longArrayMethod_17_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18_thunk: SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18_type = SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18 + natives.append( JNINativeMethod( name: strdup("__long2dArrayMethod"), signature: strdup("(J[[J)[[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_floatMethod_19_thunk: SwiftHelloTest_TestResponderAdapter_floatMethod_19_type = SwiftHelloTest_TestResponderAdapter_floatMethod_19 + natives.append( JNINativeMethod( name: strdup("__floatMethod"), signature: strdup("(JF)F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_floatMethod_19_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20_thunk: SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20_type = SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20 + natives.append( JNINativeMethod( name: strdup("__floatArrayMethod"), signature: strdup("(J[F)[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21_thunk: SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21_type = SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21 + natives.append( JNINativeMethod( name: strdup("__float2dArrayMethod"), signature: strdup("(J[[F)[[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_doubleMethod_22_thunk: SwiftHelloTest_TestResponderAdapter_doubleMethod_22_type = SwiftHelloTest_TestResponderAdapter_doubleMethod_22 + natives.append( JNINativeMethod( name: strdup("__doubleMethod"), signature: strdup("(JD)D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_doubleMethod_22_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23_thunk: SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23_type = SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23 + natives.append( JNINativeMethod( name: strdup("__doubleArrayMethod"), signature: strdup("(J[D)[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24_thunk: SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24_type = SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24 + natives.append( JNINativeMethod( name: strdup("__double2dArrayMethod"), signature: strdup("(J[[D)[[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_StringMethod_25_thunk: SwiftHelloTest_TestResponderAdapter_StringMethod_25_type = SwiftHelloTest_TestResponderAdapter_StringMethod_25 + natives.append( JNINativeMethod( name: strdup("__StringMethod"), signature: strdup("(JLjava/lang/String;)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_StringMethod_25_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26_thunk: SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26_type = SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26 + natives.append( JNINativeMethod( name: strdup("__StringArrayMethod"), signature: strdup("(J[Ljava/lang/String;)[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27_thunk: SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27_type = SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27 + natives.append( JNINativeMethod( name: strdup("__String2dArrayMethod"), signature: strdup("(J[[Ljava/lang/String;)[[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28_thunk: SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28_type = SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28 + natives.append( JNINativeMethod( name: strdup("__TestListenerMethod"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29_thunk: SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29_type = SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29 + natives.append( JNINativeMethod( name: strdup("__TestListenerArrayMethod"), signature: strdup("(J[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30_thunk: SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30_type = SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30 + natives.append( JNINativeMethod( name: strdup("__TestListener2dArrayMethod"), signature: strdup("(J[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_testMap_31_thunk: SwiftHelloTest_TestResponderAdapter_testMap_31_type = SwiftHelloTest_TestResponderAdapter_testMap_31 + natives.append( JNINativeMethod( name: strdup("__testMap"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_testMap_31_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_testMapList_32_thunk: SwiftHelloTest_TestResponderAdapter_testMapList_32_type = SwiftHelloTest_TestResponderAdapter_testMapList_32 + natives.append( JNINativeMethod( name: strdup("__testMapList"), signature: strdup("(JLcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_testMapList_32_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_equals_36_thunk: SwiftHelloTest_TestResponderAdapter_equals_36_type = SwiftHelloTest_TestResponderAdapter_equals_36 + natives.append( JNINativeMethod( name: strdup("__equals"), signature: strdup("(JLjava/lang/Object;)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_equals_36_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_toString_37_thunk: SwiftHelloTest_TestResponderAdapter_toString_37_type = SwiftHelloTest_TestResponderAdapter_toString_37 + natives.append( JNINativeMethod( name: strdup("__toString"), signature: strdup("(J)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_toString_37_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let SwiftHelloTest_TestResponderAdapter_hashCode_38_thunk: SwiftHelloTest_TestResponderAdapter_hashCode_38_type = SwiftHelloTest_TestResponderAdapter_hashCode_38 + natives.append( JNINativeMethod( name: strdup("__hashCode"), signature: strdup("(J)I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestResponderAdapter_hashCode_38_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + natives.append( JNINativeMethod( name: strdup("__finalize"), signature: strdup("(J)V"), fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let clazz = JNI.FindClass( proxyClassName() ) + withUnsafePointer(to: &natives[0]) { + nativesPtr in + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) + } + } + + defer { JNI.DeleteLocalRef( clazz ) } + return JNI.api.NewGlobalRef( JNI.env, clazz )! + }() + + override open class func proxyClassName() -> String { return "org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy" } + override open class func proxyClass() -> jclass? { return _proxyClass } + +} + +open class SwiftHelloTest_TestResponderAdapterBase: SwiftHelloTest_TestResponderAdapter { + + private static var SwiftHelloTest_TestResponderAdapterBaseJNIClass: jclass? = SwiftHelloTest_TestResponderAdapterLocal_.proxyClass() + + private lazy var __local: SwiftHelloTest_TestResponderAdapterLocal_? = SwiftHelloTest_TestResponderAdapterLocal_( owned: self, proto: self ) + + override open func clearLocal() { + __local = nil + } + + open func inherit( _ parent: JNIObjectProtocol ) { + parent.withJavaObject { + self.javaObject = $0 + self.__local?.takeOwnership(javaObject: $0) + } + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter() + + private static var new_MethodID_35: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + + self.init( javaObject: nil ) + __args[0] = __local!.swiftValue() + + let __object = JNIMethod.NewObject( className: "org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy", classCache: &SwiftHelloTest_TestResponderAdapterBase.SwiftHelloTest_TestResponderAdapterBaseJNIClass, methodSig: "(J)V", methodCache: &SwiftHelloTest_TestResponderAdapterBase.new_MethodID_35, args: &__args, locals: &__locals ) + self.javaObject = __object + JNI.DeleteLocalRef( __object ) + } + +} diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes.swift b/com_johnholdsworth/Sources/SwiftHelloTypes.swift new file mode 100644 index 0000000..b8984fa --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTypes.swift @@ -0,0 +1,22 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloTypes /// + +public protocol SwiftHelloTypes: JavaProtocol { + +} + + +open class SwiftHelloTypesForward: JNIObjectForward, SwiftHelloTypes { + + private static var SwiftHelloTypesJNIClass: jclass? + +} + + diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMap.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMap.swift new file mode 100644 index 0000000..0b4557d --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMap.swift @@ -0,0 +1,78 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap /// + +open class SwiftHelloTypes_ListenerMap: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTypes_ListenerMapJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", classCache: &SwiftHelloTypes_ListenerMap.SwiftHelloTypes_ListenerMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_ListenerMap.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap.valueClass() + + private static var valueClass_MethodID_2: jmethodID? + + open class func valueClass() -> java_swift.JavaClass! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", classCache: &SwiftHelloTypes_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil + } + + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift new file mode 100644 index 0000000..2e49c01 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift @@ -0,0 +1,78 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// class com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList /// + +open class SwiftHelloTypes_ListenerMapList: java_swift.HashMap { + + public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { + self.init( javaObject: nil ) + object.withJavaObject { + self.javaObject = $0 + } + } + + private static var SwiftHelloTypes_ListenerMapListJNIClass: jclass? + + /// private static final long java.util.HashMap.serialVersionUID + + /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + /// transient java.util.Set java.util.HashMap.entrySet + + /// transient int java.util.HashMap.size + + /// transient int java.util.HashMap.modCount + + /// int java.util.HashMap.threshold + + /// final float java.util.HashMap.loadFactor + + /// transient java.util.Set java.util.AbstractMap.keySet + + /// transient java.util.Collection java.util.AbstractMap.values + + /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList() + + private static var new_MethodID_1: jmethodID? + + public convenience init() { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapList.SwiftHelloTypes_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList.valueClass() + + private static var valueClass_MethodID_2: jmethodID? + + open class func valueClass() -> java_swift.JavaClass! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil + } + + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift new file mode 100644 index 0000000..f166995 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift @@ -0,0 +1,95 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// +/// Sun Aug 06 01:21:22 BST 2017 /// + +/// interface com.johnholdsworth.bindings.SwiftHelloTypes$TextListener /// + +public protocol SwiftHelloTypes_TextListener: JavaProtocol { + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + + func getText() -> String! + +} + + +open class SwiftHelloTypes_TextListenerForward: JNIObjectForward, SwiftHelloTypes_TextListener { + + private static var SwiftHelloTypes_TextListenerJNIClass: jclass? + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + + private static var getText_MethodID_2: jmethodID? + + open func getText() -> String! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "getText", methodSig: "()Ljava/lang/String;", methodCache: &SwiftHelloTypes_TextListenerForward.getText_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: String(), from: __return ) + } + + +} + + +private typealias SwiftHelloTypes_TextListener_getText_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jobject? + +private func SwiftHelloTypes_TextListener_getText_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jobject? { + JNI.inNative = true; + let __return = SwiftHelloTypes_TextListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).getText( ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +} + +fileprivate class SwiftHelloTypes_TextListenerLocal_: JNILocalProxy { + + fileprivate static let _proxyClass: jclass = { + var natives = [JNINativeMethod]() + + let SwiftHelloTypes_TextListener_getText_0_thunk: SwiftHelloTypes_TextListener_getText_0_type = SwiftHelloTypes_TextListener_getText_0 + natives.append( JNINativeMethod( name: strdup("__getText"), signature: strdup("(J)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTypes_TextListener_getText_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + natives.append( JNINativeMethod( name: strdup("__finalize"), signature: strdup("(J)V"), fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) ) + + let clazz = JNI.FindClass( proxyClassName() ) + withUnsafePointer(to: &natives[0]) { + nativesPtr in + if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { + JNI.report( "Unable to register java natives" ) + } + } + + defer { JNI.DeleteLocalRef( clazz ) } + return JNI.api.NewGlobalRef( JNI.env, clazz )! + }() + + override open class func proxyClassName() -> String { return "org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy" } + override open class func proxyClass() -> jclass? { return _proxyClass } + +} + +extension SwiftHelloTypes_TextListener { + + public func localJavaObject( _ locals: UnsafeMutablePointer<[jobject]> ) -> jobject? { + return SwiftHelloTypes_TextListenerLocal_( owned: self, proto: self ).localJavaObject( locals ) + } + +} + +open class SwiftHelloTypes_TextListenerBase: SwiftHelloTypes_TextListener { + + public init() {} + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + + open func getText() -> String! /**/ { + return nil + } + + +} diff --git a/examples b/examples index d3dd11a..fe798d4 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit d3dd11a2907313c7ce9d9092987ffe3b8d14bbe9 +Subproject commit fe798d437a187fc67a236056a5a2987078af6afd diff --git a/genall.sh b/genall.sh index 562348e..7a9256b 100755 --- a/genall.sh +++ b/genall.sh @@ -1,9 +1,9 @@ #!/bin/bash # -# Regenerate all bridge sources +# Regenerate all bridge sources - if only it was this simple! # -cd `dirname $0` +cd "$(dirname "$0")" && for i in java_lang java_util java_sql java_awt javax_swing com_apple; do ./genswift.sh $i diff --git a/genhello.sh b/genhello.sh index 51bce19..8c8dcd9 100755 --- a/genhello.sh +++ b/genhello.sh @@ -1,31 +1,40 @@ #!/bin/bash # # Generates Proxy and Swift sources for swifthello Android sample -# Note use of -parameters option when compiling to record names +# Note: use of -parameters option when compiling to record names # -cd `dirname $0`/src && +cd "$(dirname "$0")/src" && -\rm `find com/jh -name '*.class'` 2>/dev/null +export JAVA_HOME=${JAVA_HOME?-Please export JAVA_HOME} -\rm `find ../com_jh -name '*.swift'` 2>/dev/null +# clear out any generated swift files +\rm `find ../{swift-android-samples,swift-android-kotlin} -name 'SwiftHello*.swift'` 2>/dev/null -\rm `find ../swift-android-samples/swifthello/src/main/swift/Sources -name 'SwiftHello*.swift'` 2>/dev/null +# clear out generated Java proxy files +\rm -rf ../{swift-android-samples,swift-android-kotlin}/*/src/main/java/org/swiftjava/com_johnholdsworth -$JAVA_HOME/bin/javac -parameters com/jh/*.java && +# compile bindings and package them into for jar for genswift.sh +$JAVA_HOME/bin/javac -parameters com/johnholdsworth/bindings/*.java && -$JAVA_HOME/bin/jar cf /tmp/hello.jar com/jh/*.class && +$JAVA_HOME/bin/jar cf /tmp/swifthello.jar com/johnholdsworth/bindings/*.class && # The last argument is the frameworks the project # is dependent on. java_lang for example will add # about 2mb to the app's apk and needs to be added # to the project's src/main/swift/Package.swift -cd .. && ./genswift.sh com.jh /tmp/hello.jar "" && +cd .. && ./genswift.sh com.johnholdsworth.bindings /tmp/swifthello.jar "" && -mkdir -p swift-android-samples/swifthello/src/main/java/{com/jh,org/genie/com_jh} && +# copy newly generated sources derived from the bindings into the example projects -\cp -v src/com/jh/*.java swift-android-samples/swifthello/src/main/java/com/jh && -\cp -v src/org/genie/com_jh/*.java swift-android-samples/swifthello/src/main/java/org/genie/com_jh && +mkdir -p swift-android-samples/swifthello/src/main/java/{com/johnholdsworth/bindings,org/swiftjava/com_johnholdsworth} swift-android-kotlin/app/src/main/java/{com/johnholdsworth/bindings,org/swiftjava/com_johnholdsworth} && -\cp -v com_jh/Sources/SwiftHello*.swift swift-android-samples/swifthello/src/main/swift/Sources +\cp -v src/com/johnholdsworth/bindings/*.java swift-android-samples/swifthello/src/main/java/com/johnholdsworth/bindings && +\cp -v src/com/johnholdsworth/bindings/*.java swift-android-kotlin/app/src/main/java/com/johnholdsworth/bindings && + +\cp -v src/org/swiftjava/com_johnholdsworth/*.java swift-android-samples/swifthello/src/main/java/org/swiftjava/com_johnholdsworth && +\cp -v src/org/swiftjava/com_johnholdsworth/*.java swift-android-kotlin/app/src/main/java/org/swiftjava/com_johnholdsworth && + +\cp -v com_johnholdsworth/Sources/SwiftHello*.swift swift-android-samples/swifthello/src/main/swift/Sources +\cp -v com_johnholdsworth/Sources/SwiftHello*.swift swift-android-kotlin/app/src/main/swift/Sources diff --git a/genie.jar b/genie.jar deleted file mode 100644 index dfb202826722bf3078f05ac03ffd798238ab0b1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71991 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/dev/null -$JAVA_HOME/bin/javac org/genie/{*,*/*}.java && +$JAVA_HOME/bin/javac org/swiftjava/{*,*/*}.java com/johnholdsworth/bindings/*.java && -$JAVA_HOME/bin/jar cfv ../genie.jar org/genie/{*,*/*}.class && +$JAVA_HOME/bin/jar cfv ../swiftjava.jar org/swiftjava/{*,*/*}.class com/johnholdsworth/bindings/*.class && -\cp ../genie.jar ~/.genie.jar +\cp ../swiftjava.jar ~/.swiftjava.jar diff --git a/genpkg.sh b/genpkg.sh index 14f44a0..2ef8807 100755 --- a/genpkg.sh +++ b/genpkg.sh @@ -3,15 +3,15 @@ # Build until all overrides are captured in build.log and there are no errors # -cd `dirname $0` +cd "$(dirname "$0")" && XCODEBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild # downloadable from https://support.apple.com/kb/dl1572?locale=en_US -JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home +export JAVA_HOME=${JAVA_HOME:-/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home} for i in $*; do - ./genswift.sh $i $JAVA_HOME/../Classes/ui.jar + ./genswift.sh $i $JAVA_HOME/jre/lib/rt.jar ./overrides.pl $i while true; do ($XCODEBUILD SYMROOT=/tmp -config Debug -target examples -project SwiftJava.xcodeproj; STATUS=$?) | tee -a $i/build.log diff --git a/genswift.sh b/genswift.sh index 4de2cc2..d68e7c8 100755 --- a/genswift.sh +++ b/genswift.sh @@ -10,6 +10,8 @@ # need to compile with the new-to-Java8 option -parameters. # +export JAVA_HOME=${JAVA_HOME?-Please export JAVA_HOME} + FILTER=${1:-java/lang|java/util|java/sql|java/awt|javax/swing} FILTER=$(echo $FILTER | sed s@[._]@/@) @@ -18,6 +20,6 @@ TARGET_JAR=${2:-$JAVA_HOME/jre/lib/rt.jar} PACKAGE_ORDER=${3:-java/lang|java/util|java/sql|java/awt|javax/swing} -cd `dirname $0` && cd src && $JAVA_HOME/bin/javac genswift.java && cd - && +cd "$(dirname "$0")/src" && $JAVA_HOME/bin/javac -d ../bin genswift.java && cd - && -$JAVA_HOME/bin/jar tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | $JAVA_HOME/bin/java -cp "src:$TARGET_JAR" genswift "$PACKAGE_ORDER" +$JAVA_HOME/bin/jar tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | $JAVA_HOME/bin/java -cp "$TARGET_JAR:bin" genswift "$PACKAGE_ORDER" diff --git a/gentests.rb b/gentests.rb index 7aba45a..9a0aa2c 100755 --- a/gentests.rb +++ b/gentests.rb @@ -1,6 +1,13 @@ #!/usr/bin/env ruby +# +# Generates bindings and implementions for test cde. +# +# This file is a bit of a mess frankly and you may need +# to alternate between running this and genhello.sh +# a few times to get new types to compile cleanly. +# -types = ["boolean", "byte", "char", "short", "int", "long", "float", "double", "String"]; +types = ["boolean", "byte", "char", "short", "int", "long", "float", "double", "String", "TestListener"]; swiftTypes = { 'boolean' => 'Bool', @@ -11,7 +18,8 @@ 'long' => 'Int64', 'float' => 'Float', 'double' => 'Double', - 'String' => 'String' + 'String' => 'String', + 'TestListener' => 'SwiftHelloTest_TestListener' } arrayException = { @@ -20,18 +28,31 @@ referenceException = { 'boolean' => 'true', - 'String' => '"123"' + 'String' => '"123"', + 'TestListener' => 'SwiftTestListener()' } -java = File.open( "src/org/genie/SwiftTest.java", "w" ) -java2 = File.open( "src/com/jh/SwiftHelloTest.java", "w" ) +referenceExceptionJava = { + 'boolean' => 'true', + 'String' => '"123"', + 'TestListener' => 'new SwiftTestListener()' +} + +java = File.open( "src/org/swiftjava/SwiftTest.java", "w" ) +java2 = File.open( "src/com/johnholdsworth/bindings/SwiftHelloTest.java", "w" ) java.puts( < #{swiftTypes[type]}#{opt} { - return arg + return loopback?.#{type}Method( arg: arg ) ?? arg } override public func #{type}ArrayMethod( arg: [#{atype}]? ) -> [#{atype}]? { - return arg + return loopback?.#{type}ArrayMethod( arg: arg ) ?? arg } override public func #{type}2dArrayMethod( arg: [[#{atype}]]? ) -> [[#{atype}]]? { - return arg + return loopback?.#{type}2dArrayMethod( arg: arg ) ?? arg } SWIFT end java2.puts( < Java \\(SwiftTestResponder.tcount)...") SWIFT for type in types java2.puts( < Swift "+tcount+"..."); + +JAVA + +for type in types + java2.puts( < Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticBooleanMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanMethodStatic", methodSig: "(Z)Z", methodCache: &booleanMethodStatic_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticBooleanMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanMethodStatic", methodSig: "(Z)Z", methodCache: &booleanMethodStatic_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Bool(), from: __return ) } open class func booleanMethodStatic( _ _arg0: Bool ) -> Bool { return booleanMethodStatic( arg0: _arg0 ) } - /// public boolean org.genie.SwiftTest.booleanMethod(boolean) + /// public boolean org.swiftjava.SwiftTest.booleanMethod(boolean) private static var booleanMethod_MethodID_3: jmethodID? open func booleanMethod( arg0: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftTest.booleanMethod_MethodID_3, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) + return JNIType.toSwift( type: Bool(), from: __return ) } open func booleanMethod( _ _arg0: Bool ) -> Bool { return booleanMethod( arg0: _arg0 ) } - /// public static boolean[] org.genie.SwiftTest.booleanArrayMethodStatic(boolean[]) + /// public static boolean[] org.swiftjava.SwiftTest.booleanArrayMethodStatic(boolean[]) private static var booleanArrayMethodStatic_MethodID_4: jmethodID? open class func booleanArrayMethodStatic( arg0: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanArrayMethodStatic", methodSig: "([Z)[Z", methodCache: &booleanArrayMethodStatic_MethodID_4, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanArrayMethodStatic", methodSig: "([Z)[Z", methodCache: &booleanArrayMethodStatic_MethodID_4, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool](), from: __return ) } open class func booleanArrayMethodStatic( _ _arg0: [Bool]? ) -> [Bool]! { return booleanArrayMethodStatic( arg0: _arg0 ) } - /// public boolean[] org.genie.SwiftTest.booleanArrayMethod(boolean[]) + /// public boolean[] org.swiftjava.SwiftTest.booleanArrayMethod(boolean[]) private static var booleanArrayMethod_MethodID_5: jmethodID? open func booleanArrayMethod( arg0: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftTest.booleanArrayMethod_MethodID_5, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) + return JNIType.toSwift( type: [Bool](), from: __return ) } open func booleanArrayMethod( _ _arg0: [Bool]? ) -> [Bool]! { return booleanArrayMethod( arg0: _arg0 ) } - /// public static boolean[][] org.genie.SwiftTest.boolean2dArrayMethodStatic(boolean[][]) + /// public static boolean[][] org.swiftjava.SwiftTest.boolean2dArrayMethodStatic(boolean[][]) private static var boolean2dArrayMethodStatic_MethodID_6: jmethodID? open class func boolean2dArrayMethodStatic( arg0: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "boolean2dArrayMethodStatic", methodSig: "([[Z)[[Z", methodCache: &boolean2dArrayMethodStatic_MethodID_6, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Bool]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "boolean2dArrayMethodStatic", methodSig: "([[Z)[[Z", methodCache: &boolean2dArrayMethodStatic_MethodID_6, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]](), from: __return ) } open class func boolean2dArrayMethodStatic( _ _arg0: [[Bool]]? ) -> [[Bool]]! { return boolean2dArrayMethodStatic( arg0: _arg0 ) } - /// public boolean[][] org.genie.SwiftTest.boolean2dArrayMethod(boolean[][]) + /// public boolean[][] org.swiftjava.SwiftTest.boolean2dArrayMethod(boolean[][]) private static var boolean2dArrayMethod_MethodID_7: jmethodID? open func boolean2dArrayMethod( arg0: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftTest.boolean2dArrayMethod_MethodID_7, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Bool]](), from: __return ) + return JNIType.toSwift( type: [[Bool]](), from: __return ) } open func boolean2dArrayMethod( _ _arg0: [[Bool]]? ) -> [[Bool]]! { return boolean2dArrayMethod( arg0: _arg0 ) } - /// public static byte org.genie.SwiftTest.byteMethodStatic(byte) + /// public static byte org.swiftjava.SwiftTest.byteMethodStatic(byte) private static var byteMethodStatic_MethodID_8: jmethodID? open class func byteMethodStatic( arg0: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticByteMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteMethodStatic", methodSig: "(B)B", methodCache: &byteMethodStatic_MethodID_8, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int8(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticByteMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteMethodStatic", methodSig: "(B)B", methodCache: &byteMethodStatic_MethodID_8, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int8(), from: __return ) } open class func byteMethodStatic( _ _arg0: Int8 ) -> Int8 { return byteMethodStatic( arg0: _arg0 ) } - /// public byte org.genie.SwiftTest.byteMethod(byte) + /// public byte org.swiftjava.SwiftTest.byteMethod(byte) private static var byteMethod_MethodID_9: jmethodID? open func byteMethod( arg0: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftTest.byteMethod_MethodID_9, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int8(), from: __return ) + return JNIType.toSwift( type: Int8(), from: __return ) } open func byteMethod( _ _arg0: Int8 ) -> Int8 { return byteMethod( arg0: _arg0 ) } - /// public static byte[] org.genie.SwiftTest.byteArrayMethodStatic(byte[]) + /// public static byte[] org.swiftjava.SwiftTest.byteArrayMethodStatic(byte[]) private static var byteArrayMethodStatic_MethodID_10: jmethodID? open class func byteArrayMethodStatic( arg0: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteArrayMethodStatic", methodSig: "([B)[B", methodCache: &byteArrayMethodStatic_MethodID_10, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteArrayMethodStatic", methodSig: "([B)[B", methodCache: &byteArrayMethodStatic_MethodID_10, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8](), from: __return ) } open class func byteArrayMethodStatic( _ _arg0: [Int8]? ) -> [Int8]! { return byteArrayMethodStatic( arg0: _arg0 ) } - /// public byte[] org.genie.SwiftTest.byteArrayMethod(byte[]) + /// public byte[] org.swiftjava.SwiftTest.byteArrayMethod(byte[]) private static var byteArrayMethod_MethodID_11: jmethodID? open func byteArrayMethod( arg0: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftTest.byteArrayMethod_MethodID_11, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) + return JNIType.toSwift( type: [Int8](), from: __return ) } open func byteArrayMethod( _ _arg0: [Int8]? ) -> [Int8]! { return byteArrayMethod( arg0: _arg0 ) } - /// public static byte[][] org.genie.SwiftTest.byte2dArrayMethodStatic(byte[][]) + /// public static byte[][] org.swiftjava.SwiftTest.byte2dArrayMethodStatic(byte[][]) private static var byte2dArrayMethodStatic_MethodID_12: jmethodID? open class func byte2dArrayMethodStatic( arg0: [[Int8]]? ) -> [[Int8]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byte2dArrayMethodStatic", methodSig: "([[B)[[B", methodCache: &byte2dArrayMethodStatic_MethodID_12, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int8]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byte2dArrayMethodStatic", methodSig: "([[B)[[B", methodCache: &byte2dArrayMethodStatic_MethodID_12, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]](), from: __return ) } open class func byte2dArrayMethodStatic( _ _arg0: [[Int8]]? ) -> [[Int8]]! { return byte2dArrayMethodStatic( arg0: _arg0 ) } - /// public byte[][] org.genie.SwiftTest.byte2dArrayMethod(byte[][]) + /// public byte[][] org.swiftjava.SwiftTest.byte2dArrayMethod(byte[][]) private static var byte2dArrayMethod_MethodID_13: jmethodID? open func byte2dArrayMethod( arg0: [[Int8]]? ) -> [[Int8]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftTest.byte2dArrayMethod_MethodID_13, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int8]](), from: __return ) + return JNIType.toSwift( type: [[Int8]](), from: __return ) } open func byte2dArrayMethod( _ _arg0: [[Int8]]? ) -> [[Int8]]! { return byte2dArrayMethod( arg0: _arg0 ) } - /// public static char org.genie.SwiftTest.charMethodStatic(char) + /// public static char org.swiftjava.SwiftTest.charMethodStatic(char) private static var charMethodStatic_MethodID_14: jmethodID? open class func charMethodStatic( arg0: UInt16 ) -> UInt16 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticCharMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charMethodStatic", methodSig: "(C)C", methodCache: &charMethodStatic_MethodID_14, args: &__args, locals: &__locals ) - return JNIType.decode( type: UInt16(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticCharMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charMethodStatic", methodSig: "(C)C", methodCache: &charMethodStatic_MethodID_14, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: UInt16(), from: __return ) } open class func charMethodStatic( _ _arg0: UInt16 ) -> UInt16 { return charMethodStatic( arg0: _arg0 ) } - /// public char org.genie.SwiftTest.charMethod(char) + /// public char org.swiftjava.SwiftTest.charMethod(char) private static var charMethod_MethodID_15: jmethodID? open func charMethod( arg0: UInt16 ) -> UInt16 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftTest.charMethod_MethodID_15, args: &__args, locals: &__locals ) - return JNIType.decode( type: UInt16(), from: __return ) + return JNIType.toSwift( type: UInt16(), from: __return ) } open func charMethod( _ _arg0: UInt16 ) -> UInt16 { return charMethod( arg0: _arg0 ) } - /// public static char[] org.genie.SwiftTest.charArrayMethodStatic(char[]) + /// public static char[] org.swiftjava.SwiftTest.charArrayMethodStatic(char[]) private static var charArrayMethodStatic_MethodID_16: jmethodID? open class func charArrayMethodStatic( arg0: [UInt16]? ) -> [UInt16]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charArrayMethodStatic", methodSig: "([C)[C", methodCache: &charArrayMethodStatic_MethodID_16, args: &__args, locals: &__locals ) - return JNIType.decode( type: [UInt16](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charArrayMethodStatic", methodSig: "([C)[C", methodCache: &charArrayMethodStatic_MethodID_16, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16](), from: __return ) } open class func charArrayMethodStatic( _ _arg0: [UInt16]? ) -> [UInt16]! { return charArrayMethodStatic( arg0: _arg0 ) } - /// public char[] org.genie.SwiftTest.charArrayMethod(char[]) + /// public char[] org.swiftjava.SwiftTest.charArrayMethod(char[]) private static var charArrayMethod_MethodID_17: jmethodID? open func charArrayMethod( arg0: [UInt16]? ) -> [UInt16]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftTest.charArrayMethod_MethodID_17, args: &__args, locals: &__locals ) - return JNIType.decode( type: [UInt16](), from: __return ) + return JNIType.toSwift( type: [UInt16](), from: __return ) } open func charArrayMethod( _ _arg0: [UInt16]? ) -> [UInt16]! { return charArrayMethod( arg0: _arg0 ) } - /// public static char[][] org.genie.SwiftTest.char2dArrayMethodStatic(char[][]) + /// public static char[][] org.swiftjava.SwiftTest.char2dArrayMethodStatic(char[][]) private static var char2dArrayMethodStatic_MethodID_18: jmethodID? open class func char2dArrayMethodStatic( arg0: [[UInt16]]? ) -> [[UInt16]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "char2dArrayMethodStatic", methodSig: "([[C)[[C", methodCache: &char2dArrayMethodStatic_MethodID_18, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[UInt16]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "char2dArrayMethodStatic", methodSig: "([[C)[[C", methodCache: &char2dArrayMethodStatic_MethodID_18, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]](), from: __return ) } open class func char2dArrayMethodStatic( _ _arg0: [[UInt16]]? ) -> [[UInt16]]! { return char2dArrayMethodStatic( arg0: _arg0 ) } - /// public char[][] org.genie.SwiftTest.char2dArrayMethod(char[][]) + /// public char[][] org.swiftjava.SwiftTest.char2dArrayMethod(char[][]) private static var char2dArrayMethod_MethodID_19: jmethodID? open func char2dArrayMethod( arg0: [[UInt16]]? ) -> [[UInt16]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftTest.char2dArrayMethod_MethodID_19, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[UInt16]](), from: __return ) + return JNIType.toSwift( type: [[UInt16]](), from: __return ) } open func char2dArrayMethod( _ _arg0: [[UInt16]]? ) -> [[UInt16]]! { return char2dArrayMethod( arg0: _arg0 ) } - /// public static short org.genie.SwiftTest.shortMethodStatic(short) + /// public static short org.swiftjava.SwiftTest.shortMethodStatic(short) private static var shortMethodStatic_MethodID_20: jmethodID? open class func shortMethodStatic( arg0: Int16 ) -> Int16 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticShortMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortMethodStatic", methodSig: "(S)S", methodCache: &shortMethodStatic_MethodID_20, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int16(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticShortMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortMethodStatic", methodSig: "(S)S", methodCache: &shortMethodStatic_MethodID_20, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int16(), from: __return ) } open class func shortMethodStatic( _ _arg0: Int16 ) -> Int16 { return shortMethodStatic( arg0: _arg0 ) } - /// public short org.genie.SwiftTest.shortMethod(short) + /// public short org.swiftjava.SwiftTest.shortMethod(short) private static var shortMethod_MethodID_21: jmethodID? open func shortMethod( arg0: Int16 ) -> Int16 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftTest.shortMethod_MethodID_21, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int16(), from: __return ) + return JNIType.toSwift( type: Int16(), from: __return ) } open func shortMethod( _ _arg0: Int16 ) -> Int16 { return shortMethod( arg0: _arg0 ) } - /// public static short[] org.genie.SwiftTest.shortArrayMethodStatic(short[]) + /// public static short[] org.swiftjava.SwiftTest.shortArrayMethodStatic(short[]) private static var shortArrayMethodStatic_MethodID_22: jmethodID? open class func shortArrayMethodStatic( arg0: [Int16]? ) -> [Int16]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortArrayMethodStatic", methodSig: "([S)[S", methodCache: &shortArrayMethodStatic_MethodID_22, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int16](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortArrayMethodStatic", methodSig: "([S)[S", methodCache: &shortArrayMethodStatic_MethodID_22, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16](), from: __return ) } open class func shortArrayMethodStatic( _ _arg0: [Int16]? ) -> [Int16]! { return shortArrayMethodStatic( arg0: _arg0 ) } - /// public short[] org.genie.SwiftTest.shortArrayMethod(short[]) + /// public short[] org.swiftjava.SwiftTest.shortArrayMethod(short[]) private static var shortArrayMethod_MethodID_23: jmethodID? open func shortArrayMethod( arg0: [Int16]? ) -> [Int16]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftTest.shortArrayMethod_MethodID_23, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int16](), from: __return ) + return JNIType.toSwift( type: [Int16](), from: __return ) } open func shortArrayMethod( _ _arg0: [Int16]? ) -> [Int16]! { return shortArrayMethod( arg0: _arg0 ) } - /// public static short[][] org.genie.SwiftTest.short2dArrayMethodStatic(short[][]) + /// public static short[][] org.swiftjava.SwiftTest.short2dArrayMethodStatic(short[][]) private static var short2dArrayMethodStatic_MethodID_24: jmethodID? open class func short2dArrayMethodStatic( arg0: [[Int16]]? ) -> [[Int16]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "short2dArrayMethodStatic", methodSig: "([[S)[[S", methodCache: &short2dArrayMethodStatic_MethodID_24, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int16]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "short2dArrayMethodStatic", methodSig: "([[S)[[S", methodCache: &short2dArrayMethodStatic_MethodID_24, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]](), from: __return ) } open class func short2dArrayMethodStatic( _ _arg0: [[Int16]]? ) -> [[Int16]]! { return short2dArrayMethodStatic( arg0: _arg0 ) } - /// public short[][] org.genie.SwiftTest.short2dArrayMethod(short[][]) + /// public short[][] org.swiftjava.SwiftTest.short2dArrayMethod(short[][]) private static var short2dArrayMethod_MethodID_25: jmethodID? open func short2dArrayMethod( arg0: [[Int16]]? ) -> [[Int16]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftTest.short2dArrayMethod_MethodID_25, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int16]](), from: __return ) + return JNIType.toSwift( type: [[Int16]](), from: __return ) } open func short2dArrayMethod( _ _arg0: [[Int16]]? ) -> [[Int16]]! { return short2dArrayMethod( arg0: _arg0 ) } - /// public static int org.genie.SwiftTest.intMethodStatic(int) + /// public static int org.swiftjava.SwiftTest.intMethodStatic(int) private static var intMethodStatic_MethodID_26: jmethodID? open class func intMethodStatic( arg0: Int ) -> Int { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticIntMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intMethodStatic", methodSig: "(I)I", methodCache: &intMethodStatic_MethodID_26, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticIntMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intMethodStatic", methodSig: "(I)I", methodCache: &intMethodStatic_MethodID_26, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int(), from: __return ) } open class func intMethodStatic( _ _arg0: Int ) -> Int { return intMethodStatic( arg0: _arg0 ) } - /// public int org.genie.SwiftTest.intMethod(int) + /// public int org.swiftjava.SwiftTest.intMethod(int) private static var intMethod_MethodID_27: jmethodID? open func intMethod( arg0: Int ) -> Int { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftTest.intMethod_MethodID_27, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int(), from: __return ) + return JNIType.toSwift( type: Int(), from: __return ) } open func intMethod( _ _arg0: Int ) -> Int { return intMethod( arg0: _arg0 ) } - /// public static int[] org.genie.SwiftTest.intArrayMethodStatic(int[]) + /// public static int[] org.swiftjava.SwiftTest.intArrayMethodStatic(int[]) private static var intArrayMethodStatic_MethodID_28: jmethodID? open class func intArrayMethodStatic( arg0: [Int32]? ) -> [Int32]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intArrayMethodStatic", methodSig: "([I)[I", methodCache: &intArrayMethodStatic_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int32](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intArrayMethodStatic", methodSig: "([I)[I", methodCache: &intArrayMethodStatic_MethodID_28, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32](), from: __return ) } open class func intArrayMethodStatic( _ _arg0: [Int32]? ) -> [Int32]! { return intArrayMethodStatic( arg0: _arg0 ) } - /// public int[] org.genie.SwiftTest.intArrayMethod(int[]) + /// public int[] org.swiftjava.SwiftTest.intArrayMethod(int[]) private static var intArrayMethod_MethodID_29: jmethodID? open func intArrayMethod( arg0: [Int32]? ) -> [Int32]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftTest.intArrayMethod_MethodID_29, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int32](), from: __return ) + return JNIType.toSwift( type: [Int32](), from: __return ) } open func intArrayMethod( _ _arg0: [Int32]? ) -> [Int32]! { return intArrayMethod( arg0: _arg0 ) } - /// public static int[][] org.genie.SwiftTest.int2dArrayMethodStatic(int[][]) + /// public static int[][] org.swiftjava.SwiftTest.int2dArrayMethodStatic(int[][]) private static var int2dArrayMethodStatic_MethodID_30: jmethodID? open class func int2dArrayMethodStatic( arg0: [[Int32]]? ) -> [[Int32]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "int2dArrayMethodStatic", methodSig: "([[I)[[I", methodCache: &int2dArrayMethodStatic_MethodID_30, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int32]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "int2dArrayMethodStatic", methodSig: "([[I)[[I", methodCache: &int2dArrayMethodStatic_MethodID_30, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]](), from: __return ) } open class func int2dArrayMethodStatic( _ _arg0: [[Int32]]? ) -> [[Int32]]! { return int2dArrayMethodStatic( arg0: _arg0 ) } - /// public int[][] org.genie.SwiftTest.int2dArrayMethod(int[][]) + /// public int[][] org.swiftjava.SwiftTest.int2dArrayMethod(int[][]) private static var int2dArrayMethod_MethodID_31: jmethodID? open func int2dArrayMethod( arg0: [[Int32]]? ) -> [[Int32]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftTest.int2dArrayMethod_MethodID_31, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int32]](), from: __return ) + return JNIType.toSwift( type: [[Int32]](), from: __return ) } open func int2dArrayMethod( _ _arg0: [[Int32]]? ) -> [[Int32]]! { return int2dArrayMethod( arg0: _arg0 ) } - /// public static long org.genie.SwiftTest.longMethodStatic(long) + /// public static long org.swiftjava.SwiftTest.longMethodStatic(long) private static var longMethodStatic_MethodID_32: jmethodID? open class func longMethodStatic( arg0: Int64 ) -> Int64 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticLongMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longMethodStatic", methodSig: "(J)J", methodCache: &longMethodStatic_MethodID_32, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int64(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticLongMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longMethodStatic", methodSig: "(J)J", methodCache: &longMethodStatic_MethodID_32, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Int64(), from: __return ) } open class func longMethodStatic( _ _arg0: Int64 ) -> Int64 { return longMethodStatic( arg0: _arg0 ) } - /// public long org.genie.SwiftTest.longMethod(long) + /// public long org.swiftjava.SwiftTest.longMethod(long) private static var longMethod_MethodID_33: jmethodID? open func longMethod( arg0: Int64 ) -> Int64 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftTest.longMethod_MethodID_33, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int64(), from: __return ) + return JNIType.toSwift( type: Int64(), from: __return ) } open func longMethod( _ _arg0: Int64 ) -> Int64 { return longMethod( arg0: _arg0 ) } - /// public static long[] org.genie.SwiftTest.longArrayMethodStatic(long[]) + /// public static long[] org.swiftjava.SwiftTest.longArrayMethodStatic(long[]) private static var longArrayMethodStatic_MethodID_34: jmethodID? open class func longArrayMethodStatic( arg0: [Int64]? ) -> [Int64]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longArrayMethodStatic", methodSig: "([J)[J", methodCache: &longArrayMethodStatic_MethodID_34, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int64](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longArrayMethodStatic", methodSig: "([J)[J", methodCache: &longArrayMethodStatic_MethodID_34, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64](), from: __return ) } open class func longArrayMethodStatic( _ _arg0: [Int64]? ) -> [Int64]! { return longArrayMethodStatic( arg0: _arg0 ) } - /// public long[] org.genie.SwiftTest.longArrayMethod(long[]) + /// public long[] org.swiftjava.SwiftTest.longArrayMethod(long[]) private static var longArrayMethod_MethodID_35: jmethodID? open func longArrayMethod( arg0: [Int64]? ) -> [Int64]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftTest.longArrayMethod_MethodID_35, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int64](), from: __return ) + return JNIType.toSwift( type: [Int64](), from: __return ) } open func longArrayMethod( _ _arg0: [Int64]? ) -> [Int64]! { return longArrayMethod( arg0: _arg0 ) } - /// public static long[][] org.genie.SwiftTest.long2dArrayMethodStatic(long[][]) + /// public static long[][] org.swiftjava.SwiftTest.long2dArrayMethodStatic(long[][]) private static var long2dArrayMethodStatic_MethodID_36: jmethodID? open class func long2dArrayMethodStatic( arg0: [[Int64]]? ) -> [[Int64]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "long2dArrayMethodStatic", methodSig: "([[J)[[J", methodCache: &long2dArrayMethodStatic_MethodID_36, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int64]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "long2dArrayMethodStatic", methodSig: "([[J)[[J", methodCache: &long2dArrayMethodStatic_MethodID_36, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]](), from: __return ) } open class func long2dArrayMethodStatic( _ _arg0: [[Int64]]? ) -> [[Int64]]! { return long2dArrayMethodStatic( arg0: _arg0 ) } - /// public long[][] org.genie.SwiftTest.long2dArrayMethod(long[][]) + /// public long[][] org.swiftjava.SwiftTest.long2dArrayMethod(long[][]) private static var long2dArrayMethod_MethodID_37: jmethodID? open func long2dArrayMethod( arg0: [[Int64]]? ) -> [[Int64]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftTest.long2dArrayMethod_MethodID_37, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int64]](), from: __return ) + return JNIType.toSwift( type: [[Int64]](), from: __return ) } open func long2dArrayMethod( _ _arg0: [[Int64]]? ) -> [[Int64]]! { return long2dArrayMethod( arg0: _arg0 ) } - /// public static float org.genie.SwiftTest.floatMethodStatic(float) + /// public static float org.swiftjava.SwiftTest.floatMethodStatic(float) private static var floatMethodStatic_MethodID_38: jmethodID? open class func floatMethodStatic( arg0: Float ) -> Float { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticFloatMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatMethodStatic", methodSig: "(F)F", methodCache: &floatMethodStatic_MethodID_38, args: &__args, locals: &__locals ) - return JNIType.decode( type: Float(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticFloatMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatMethodStatic", methodSig: "(F)F", methodCache: &floatMethodStatic_MethodID_38, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Float(), from: __return ) } open class func floatMethodStatic( _ _arg0: Float ) -> Float { return floatMethodStatic( arg0: _arg0 ) } - /// public float org.genie.SwiftTest.floatMethod(float) + /// public float org.swiftjava.SwiftTest.floatMethod(float) private static var floatMethod_MethodID_39: jmethodID? open func floatMethod( arg0: Float ) -> Float { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftTest.floatMethod_MethodID_39, args: &__args, locals: &__locals ) - return JNIType.decode( type: Float(), from: __return ) + return JNIType.toSwift( type: Float(), from: __return ) } open func floatMethod( _ _arg0: Float ) -> Float { return floatMethod( arg0: _arg0 ) } - /// public static float[] org.genie.SwiftTest.floatArrayMethodStatic(float[]) + /// public static float[] org.swiftjava.SwiftTest.floatArrayMethodStatic(float[]) private static var floatArrayMethodStatic_MethodID_40: jmethodID? open class func floatArrayMethodStatic( arg0: [Float]? ) -> [Float]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatArrayMethodStatic", methodSig: "([F)[F", methodCache: &floatArrayMethodStatic_MethodID_40, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Float](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatArrayMethodStatic", methodSig: "([F)[F", methodCache: &floatArrayMethodStatic_MethodID_40, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float](), from: __return ) } open class func floatArrayMethodStatic( _ _arg0: [Float]? ) -> [Float]! { return floatArrayMethodStatic( arg0: _arg0 ) } - /// public float[] org.genie.SwiftTest.floatArrayMethod(float[]) + /// public float[] org.swiftjava.SwiftTest.floatArrayMethod(float[]) private static var floatArrayMethod_MethodID_41: jmethodID? open func floatArrayMethod( arg0: [Float]? ) -> [Float]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftTest.floatArrayMethod_MethodID_41, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Float](), from: __return ) + return JNIType.toSwift( type: [Float](), from: __return ) } open func floatArrayMethod( _ _arg0: [Float]? ) -> [Float]! { return floatArrayMethod( arg0: _arg0 ) } - /// public static float[][] org.genie.SwiftTest.float2dArrayMethodStatic(float[][]) + /// public static float[][] org.swiftjava.SwiftTest.float2dArrayMethodStatic(float[][]) private static var float2dArrayMethodStatic_MethodID_42: jmethodID? open class func float2dArrayMethodStatic( arg0: [[Float]]? ) -> [[Float]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "float2dArrayMethodStatic", methodSig: "([[F)[[F", methodCache: &float2dArrayMethodStatic_MethodID_42, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Float]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "float2dArrayMethodStatic", methodSig: "([[F)[[F", methodCache: &float2dArrayMethodStatic_MethodID_42, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]](), from: __return ) } open class func float2dArrayMethodStatic( _ _arg0: [[Float]]? ) -> [[Float]]! { return float2dArrayMethodStatic( arg0: _arg0 ) } - /// public float[][] org.genie.SwiftTest.float2dArrayMethod(float[][]) + /// public float[][] org.swiftjava.SwiftTest.float2dArrayMethod(float[][]) private static var float2dArrayMethod_MethodID_43: jmethodID? open func float2dArrayMethod( arg0: [[Float]]? ) -> [[Float]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftTest.float2dArrayMethod_MethodID_43, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Float]](), from: __return ) + return JNIType.toSwift( type: [[Float]](), from: __return ) } open func float2dArrayMethod( _ _arg0: [[Float]]? ) -> [[Float]]! { return float2dArrayMethod( arg0: _arg0 ) } - /// public static double org.genie.SwiftTest.doubleMethodStatic(double) + /// public static double org.swiftjava.SwiftTest.doubleMethodStatic(double) private static var doubleMethodStatic_MethodID_44: jmethodID? open class func doubleMethodStatic( arg0: Double ) -> Double { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticDoubleMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleMethodStatic", methodSig: "(D)D", methodCache: &doubleMethodStatic_MethodID_44, args: &__args, locals: &__locals ) - return JNIType.decode( type: Double(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticDoubleMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleMethodStatic", methodSig: "(D)D", methodCache: &doubleMethodStatic_MethodID_44, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Double(), from: __return ) } open class func doubleMethodStatic( _ _arg0: Double ) -> Double { return doubleMethodStatic( arg0: _arg0 ) } - /// public double org.genie.SwiftTest.doubleMethod(double) + /// public double org.swiftjava.SwiftTest.doubleMethod(double) private static var doubleMethod_MethodID_45: jmethodID? open func doubleMethod( arg0: Double ) -> Double { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftTest.doubleMethod_MethodID_45, args: &__args, locals: &__locals ) - return JNIType.decode( type: Double(), from: __return ) + return JNIType.toSwift( type: Double(), from: __return ) } open func doubleMethod( _ _arg0: Double ) -> Double { return doubleMethod( arg0: _arg0 ) } - /// public static double[] org.genie.SwiftTest.doubleArrayMethodStatic(double[]) + /// public static double[] org.swiftjava.SwiftTest.doubleArrayMethodStatic(double[]) private static var doubleArrayMethodStatic_MethodID_46: jmethodID? open class func doubleArrayMethodStatic( arg0: [Double]? ) -> [Double]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleArrayMethodStatic", methodSig: "([D)[D", methodCache: &doubleArrayMethodStatic_MethodID_46, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Double](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleArrayMethodStatic", methodSig: "([D)[D", methodCache: &doubleArrayMethodStatic_MethodID_46, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double](), from: __return ) } open class func doubleArrayMethodStatic( _ _arg0: [Double]? ) -> [Double]! { return doubleArrayMethodStatic( arg0: _arg0 ) } - /// public double[] org.genie.SwiftTest.doubleArrayMethod(double[]) + /// public double[] org.swiftjava.SwiftTest.doubleArrayMethod(double[]) private static var doubleArrayMethod_MethodID_47: jmethodID? open func doubleArrayMethod( arg0: [Double]? ) -> [Double]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftTest.doubleArrayMethod_MethodID_47, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Double](), from: __return ) + return JNIType.toSwift( type: [Double](), from: __return ) } open func doubleArrayMethod( _ _arg0: [Double]? ) -> [Double]! { return doubleArrayMethod( arg0: _arg0 ) } - /// public static double[][] org.genie.SwiftTest.double2dArrayMethodStatic(double[][]) + /// public static double[][] org.swiftjava.SwiftTest.double2dArrayMethodStatic(double[][]) private static var double2dArrayMethodStatic_MethodID_48: jmethodID? open class func double2dArrayMethodStatic( arg0: [[Double]]? ) -> [[Double]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "double2dArrayMethodStatic", methodSig: "([[D)[[D", methodCache: &double2dArrayMethodStatic_MethodID_48, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Double]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "double2dArrayMethodStatic", methodSig: "([[D)[[D", methodCache: &double2dArrayMethodStatic_MethodID_48, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]](), from: __return ) } open class func double2dArrayMethodStatic( _ _arg0: [[Double]]? ) -> [[Double]]! { return double2dArrayMethodStatic( arg0: _arg0 ) } - /// public double[][] org.genie.SwiftTest.double2dArrayMethod(double[][]) + /// public double[][] org.swiftjava.SwiftTest.double2dArrayMethod(double[][]) private static var double2dArrayMethod_MethodID_49: jmethodID? open func double2dArrayMethod( arg0: [[Double]]? ) -> [[Double]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftTest.double2dArrayMethod_MethodID_49, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Double]](), from: __return ) + return JNIType.toSwift( type: [[Double]](), from: __return ) } open func double2dArrayMethod( _ _arg0: [[Double]]? ) -> [[Double]]! { return double2dArrayMethod( arg0: _arg0 ) } - /// public static java.lang.String org.genie.SwiftTest.StringMethodStatic(java.lang.String) + /// public static java.lang.String org.swiftjava.SwiftTest.StringMethodStatic(java.lang.String) private static var StringMethodStatic_MethodID_50: jmethodID? open class func StringMethodStatic( arg0: String? ) -> String! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringMethodStatic", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &StringMethodStatic_MethodID_50, args: &__args, locals: &__locals ) - return JNIType.decode( type: String(), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringMethodStatic", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &StringMethodStatic_MethodID_50, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: String(), from: __return ) } open class func StringMethodStatic( _ _arg0: String? ) -> String! { return StringMethodStatic( arg0: _arg0 ) } - /// public java.lang.String org.genie.SwiftTest.StringMethod(java.lang.String) + /// public java.lang.String org.swiftjava.SwiftTest.StringMethod(java.lang.String) private static var StringMethod_MethodID_51: jmethodID? open func StringMethod( arg0: String? ) -> String! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftTest.StringMethod_MethodID_51, args: &__args, locals: &__locals ) - return JNIType.decode( type: String(), from: __return ) + return JNIType.toSwift( type: String(), from: __return ) } open func StringMethod( _ _arg0: String? ) -> String! { return StringMethod( arg0: _arg0 ) } - /// public static java.lang.String[] org.genie.SwiftTest.StringArrayMethodStatic(java.lang.String[]) + /// public static java.lang.String[] org.swiftjava.SwiftTest.StringArrayMethodStatic(java.lang.String[]) private static var StringArrayMethodStatic_MethodID_52: jmethodID? open class func StringArrayMethodStatic( arg0: [String]? ) -> [String]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringArrayMethodStatic", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &StringArrayMethodStatic_MethodID_52, args: &__args, locals: &__locals ) - return JNIType.decode( type: [String](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringArrayMethodStatic", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &StringArrayMethodStatic_MethodID_52, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String](), from: __return ) } open class func StringArrayMethodStatic( _ _arg0: [String]? ) -> [String]! { return StringArrayMethodStatic( arg0: _arg0 ) } - /// public java.lang.String[] org.genie.SwiftTest.StringArrayMethod(java.lang.String[]) + /// public java.lang.String[] org.swiftjava.SwiftTest.StringArrayMethod(java.lang.String[]) private static var StringArrayMethod_MethodID_53: jmethodID? open func StringArrayMethod( arg0: [String]? ) -> [String]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftTest.StringArrayMethod_MethodID_53, args: &__args, locals: &__locals ) - return JNIType.decode( type: [String](), from: __return ) + return JNIType.toSwift( type: [String](), from: __return ) } open func StringArrayMethod( _ _arg0: [String]? ) -> [String]! { return StringArrayMethod( arg0: _arg0 ) } - /// public static java.lang.String[][] org.genie.SwiftTest.String2dArrayMethodStatic(java.lang.String[][]) + /// public static java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayMethodStatic(java.lang.String[][]) private static var String2dArrayMethodStatic_MethodID_54: jmethodID? open class func String2dArrayMethodStatic( arg0: [[String]]? ) -> [[String]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/genie/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "String2dArrayMethodStatic", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &String2dArrayMethodStatic_MethodID_54, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[String]](), from: __return ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "String2dArrayMethodStatic", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &String2dArrayMethodStatic_MethodID_54, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]](), from: __return ) } open class func String2dArrayMethodStatic( _ _arg0: [[String]]? ) -> [[String]]! { return String2dArrayMethodStatic( arg0: _arg0 ) } - /// public java.lang.String[][] org.genie.SwiftTest.String2dArrayMethod(java.lang.String[][]) + /// public java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayMethod(java.lang.String[][]) private static var String2dArrayMethod_MethodID_55: jmethodID? open func String2dArrayMethod( arg0: [[String]]? ) -> [[String]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg0, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftTest.String2dArrayMethod_MethodID_55, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[String]](), from: __return ) + return JNIType.toSwift( type: [[String]](), from: __return ) } open func String2dArrayMethod( _ _arg0: [[String]]? ) -> [[String]]! { return String2dArrayMethod( arg0: _arg0 ) } + /// public static com.johnholdsworth.bindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethodStatic(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var TestListenerMethodStatic_MethodID_56: jmethodID? + + open class func TestListenerMethodStatic( arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerMethodStatic", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerMethodStatic_MethodID_56, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil + } + + open class func TestListenerMethodStatic( _ _arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + return TestListenerMethodStatic( arg0: _arg0 ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var TestListenerMethod_MethodID_57: jmethodID? + + open func TestListenerMethod( arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerMethod_MethodID_57, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil + } + + open func TestListenerMethod( _ _arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + return TestListenerMethod( arg0: _arg0 ) + } + + /// public static com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethodStatic(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + private static var TestListenerArrayMethodStatic_MethodID_58: jmethodID? + + open class func TestListenerArrayMethodStatic( arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerArrayMethodStatic", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerArrayMethodStatic_MethodID_58, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) + } + + open class func TestListenerArrayMethodStatic( _ _arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + return TestListenerArrayMethodStatic( arg0: _arg0 ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + private static var TestListenerArrayMethod_MethodID_59: jmethodID? + + open func TestListenerArrayMethod( arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerArrayMethod_MethodID_59, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) + } + + open func TestListenerArrayMethod( _ _arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + return TestListenerArrayMethod( arg0: _arg0 ) + } + + /// public static com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethodStatic(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + private static var TestListener2dArrayMethodStatic_MethodID_60: jmethodID? + + open class func TestListener2dArrayMethodStatic( arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListener2dArrayMethodStatic", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &TestListener2dArrayMethodStatic_MethodID_60, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) + } + + open class func TestListener2dArrayMethodStatic( _ _arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + return TestListener2dArrayMethodStatic( arg0: _arg0 ) + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + private static var TestListener2dArrayMethod_MethodID_61: jmethodID? + + open func TestListener2dArrayMethod( arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListener2dArrayMethod_MethodID_61, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) + } + + open func TestListener2dArrayMethod( _ _arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + return TestListener2dArrayMethod( arg0: _arg0 ) + } + } + diff --git a/org_genie/org_genie.swift b/org_swiftjava/org_swiftjava.swift similarity index 54% rename from org_genie/org_genie.swift rename to org_swiftjava/org_swiftjava.swift index 9705da1..8ee7089 100644 --- a/org_genie/org_genie.swift +++ b/org_swiftjava/org_swiftjava.swift @@ -1,6 +1,6 @@ // -// org_genie.swift -// org_genie +// org_swiftjava.swift +// org_swiftjava // // Created by John Holdsworth on 27/07/2016. // Copyright © 2016 John Holdsworth. All rights reserved. @@ -8,7 +8,7 @@ import XCTest -class org_genie: XCTestCase { +class org_swiftjava: XCTestCase { override func setUp() { super.setUp() @@ -24,7 +24,11 @@ class org_genie: XCTestCase { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. - let instance = SwiftTest() +// SwiftHelloTest_TestListenerLocal_.proxyClass() + let instance = SwiftHelloTest_TestResponderAdapter() + + instance.loopback = SwiftTestListener() + instance.loopback.setLoopback(loopback: SwiftHelloTest_TestResponderAdapter()) if true { let reference: Bool = true @@ -33,26 +37,26 @@ class org_genie: XCTestCase { SwiftTest.booleanFieldStatic = reference XCTAssertEqual( SwiftTest.booleanFieldStatic, reference ) - instance.booleanField = reference - XCTAssertEqual( instance.booleanField, reference ) +// instance.booleanField = reference +// XCTAssertEqual( instance.booleanField, reference ) SwiftTest.booleanArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.booleanArrayFieldStatic, referenceArray ) - instance.booleanArrayField = referenceArray - XCTAssertEqual( instance.booleanArrayField, referenceArray ) +// instance.booleanArrayField = referenceArray +// XCTAssertEqual( instance.booleanArrayField, referenceArray ) SwiftTest.boolean2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.boolean2dArrayFieldStatic[0], reference2dArray[0] ) - instance.boolean2dArrayField = reference2dArray - XCTAssertEqual( instance.boolean2dArrayField[0], reference2dArray[0] ) +// instance.boolean2dArrayField = reference2dArray +// XCTAssertEqual( instance.boolean2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.booleanMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.booleanMethodStatic( reference ), reference ) XCTAssertEqual( instance.booleanMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.booleanArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.booleanArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.booleanArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.boolean2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.boolean2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.boolean2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -63,26 +67,26 @@ class org_genie: XCTestCase { SwiftTest.byteFieldStatic = reference XCTAssertEqual( SwiftTest.byteFieldStatic, reference ) - instance.byteField = reference - XCTAssertEqual( instance.byteField, reference ) +// instance.byteField = reference +// XCTAssertEqual( instance.byteField, reference ) SwiftTest.byteArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.byteArrayFieldStatic, referenceArray ) - instance.byteArrayField = referenceArray - XCTAssertEqual( instance.byteArrayField, referenceArray ) +// instance.byteArrayField = referenceArray +// XCTAssertEqual( instance.byteArrayField, referenceArray ) SwiftTest.byte2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.byte2dArrayFieldStatic[0], reference2dArray[0] ) - instance.byte2dArrayField = reference2dArray - XCTAssertEqual( instance.byte2dArrayField[0], reference2dArray[0] ) +// instance.byte2dArrayField = reference2dArray +// XCTAssertEqual( instance.byte2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.byteMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.byteMethodStatic( reference ), reference ) XCTAssertEqual( instance.byteMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.byteArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.byteArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.byteArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.byte2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.byte2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.byte2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -93,26 +97,26 @@ class org_genie: XCTestCase { SwiftTest.charFieldStatic = reference XCTAssertEqual( SwiftTest.charFieldStatic, reference ) - instance.charField = reference - XCTAssertEqual( instance.charField, reference ) +// instance.charField = reference +// XCTAssertEqual( instance.charField, reference ) SwiftTest.charArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.charArrayFieldStatic, referenceArray ) - instance.charArrayField = referenceArray - XCTAssertEqual( instance.charArrayField, referenceArray ) +// instance.charArrayField = referenceArray +// XCTAssertEqual( instance.charArrayField, referenceArray ) SwiftTest.char2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.char2dArrayFieldStatic[0], reference2dArray[0] ) - instance.char2dArrayField = reference2dArray - XCTAssertEqual( instance.char2dArrayField[0], reference2dArray[0] ) +// instance.char2dArrayField = reference2dArray +// XCTAssertEqual( instance.char2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.charMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.charMethodStatic( reference ), reference ) XCTAssertEqual( instance.charMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.charArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.charArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.charArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.char2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.char2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.char2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -123,26 +127,26 @@ class org_genie: XCTestCase { SwiftTest.shortFieldStatic = reference XCTAssertEqual( SwiftTest.shortFieldStatic, reference ) - instance.shortField = reference - XCTAssertEqual( instance.shortField, reference ) +// instance.shortField = reference +// XCTAssertEqual( instance.shortField, reference ) SwiftTest.shortArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.shortArrayFieldStatic, referenceArray ) - instance.shortArrayField = referenceArray - XCTAssertEqual( instance.shortArrayField, referenceArray ) +// instance.shortArrayField = referenceArray +// XCTAssertEqual( instance.shortArrayField, referenceArray ) SwiftTest.short2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.short2dArrayFieldStatic[0], reference2dArray[0] ) - instance.short2dArrayField = reference2dArray - XCTAssertEqual( instance.short2dArrayField[0], reference2dArray[0] ) +// instance.short2dArrayField = reference2dArray +// XCTAssertEqual( instance.short2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.shortMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.shortMethodStatic( reference ), reference ) XCTAssertEqual( instance.shortMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.shortArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.shortArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.shortArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.short2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.short2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.short2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -153,26 +157,26 @@ class org_genie: XCTestCase { SwiftTest.intFieldStatic = reference XCTAssertEqual( SwiftTest.intFieldStatic, reference ) - instance.intField = reference - XCTAssertEqual( instance.intField, reference ) +// instance.intField = reference +// XCTAssertEqual( instance.intField, reference ) SwiftTest.intArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.intArrayFieldStatic, referenceArray ) - instance.intArrayField = referenceArray - XCTAssertEqual( instance.intArrayField, referenceArray ) +// instance.intArrayField = referenceArray +// XCTAssertEqual( instance.intArrayField, referenceArray ) SwiftTest.int2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.int2dArrayFieldStatic[0], reference2dArray[0] ) - instance.int2dArrayField = reference2dArray - XCTAssertEqual( instance.int2dArrayField[0], reference2dArray[0] ) +// instance.int2dArrayField = reference2dArray +// XCTAssertEqual( instance.int2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.intMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.intMethodStatic( reference ), reference ) XCTAssertEqual( instance.intMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.intArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.intArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.intArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.int2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.int2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.int2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -183,26 +187,26 @@ class org_genie: XCTestCase { SwiftTest.longFieldStatic = reference XCTAssertEqual( SwiftTest.longFieldStatic, reference ) - instance.longField = reference - XCTAssertEqual( instance.longField, reference ) +// instance.longField = reference +// XCTAssertEqual( instance.longField, reference ) SwiftTest.longArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.longArrayFieldStatic, referenceArray ) - instance.longArrayField = referenceArray - XCTAssertEqual( instance.longArrayField, referenceArray ) +// instance.longArrayField = referenceArray +// XCTAssertEqual( instance.longArrayField, referenceArray ) SwiftTest.long2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.long2dArrayFieldStatic[0], reference2dArray[0] ) - instance.long2dArrayField = reference2dArray - XCTAssertEqual( instance.long2dArrayField[0], reference2dArray[0] ) +// instance.long2dArrayField = reference2dArray +// XCTAssertEqual( instance.long2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.longMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.longMethodStatic( reference ), reference ) XCTAssertEqual( instance.longMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.longArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.longArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.longArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.long2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.long2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.long2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -213,26 +217,26 @@ class org_genie: XCTestCase { SwiftTest.floatFieldStatic = reference XCTAssertEqual( SwiftTest.floatFieldStatic, reference ) - instance.floatField = reference - XCTAssertEqual( instance.floatField, reference ) +// instance.floatField = reference +// XCTAssertEqual( instance.floatField, reference ) SwiftTest.floatArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.floatArrayFieldStatic, referenceArray ) - instance.floatArrayField = referenceArray - XCTAssertEqual( instance.floatArrayField, referenceArray ) +// instance.floatArrayField = referenceArray +// XCTAssertEqual( instance.floatArrayField, referenceArray ) SwiftTest.float2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.float2dArrayFieldStatic[0], reference2dArray[0] ) - instance.float2dArrayField = reference2dArray - XCTAssertEqual( instance.float2dArrayField[0], reference2dArray[0] ) +// instance.float2dArrayField = reference2dArray +// XCTAssertEqual( instance.float2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.floatMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.floatMethodStatic( reference ), reference ) XCTAssertEqual( instance.floatMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.floatArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.floatArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.floatArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.float2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.float2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.float2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -243,26 +247,26 @@ class org_genie: XCTestCase { SwiftTest.doubleFieldStatic = reference XCTAssertEqual( SwiftTest.doubleFieldStatic, reference ) - instance.doubleField = reference - XCTAssertEqual( instance.doubleField, reference ) +// instance.doubleField = reference +// XCTAssertEqual( instance.doubleField, reference ) SwiftTest.doubleArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.doubleArrayFieldStatic, referenceArray ) - instance.doubleArrayField = referenceArray - XCTAssertEqual( instance.doubleArrayField, referenceArray ) +// instance.doubleArrayField = referenceArray +// XCTAssertEqual( instance.doubleArrayField, referenceArray ) SwiftTest.double2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.double2dArrayFieldStatic[0], reference2dArray[0] ) - instance.double2dArrayField = reference2dArray - XCTAssertEqual( instance.double2dArrayField[0], reference2dArray[0] ) +// instance.double2dArrayField = reference2dArray +// XCTAssertEqual( instance.double2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.doubleMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.doubleMethodStatic( reference ), reference ) XCTAssertEqual( instance.doubleMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.doubleArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.doubleArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.doubleArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.double2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.double2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.double2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -273,34 +277,67 @@ class org_genie: XCTestCase { SwiftTest.StringFieldStatic = reference XCTAssertEqual( SwiftTest.StringFieldStatic, reference ) - instance.StringField = reference - XCTAssertEqual( instance.StringField, reference ) +// instance.StringField = reference +// XCTAssertEqual( instance.StringField, reference ) SwiftTest.StringArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.StringArrayFieldStatic, referenceArray ) - instance.StringArrayField = referenceArray - XCTAssertEqual( instance.StringArrayField, referenceArray ) +// instance.StringArrayField = referenceArray +// XCTAssertEqual( instance.StringArrayField, referenceArray ) SwiftTest.String2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.String2dArrayFieldStatic[0], reference2dArray[0] ) - instance.String2dArrayField = reference2dArray - XCTAssertEqual( instance.String2dArrayField[0], reference2dArray[0] ) +// instance.String2dArrayField = reference2dArray +// XCTAssertEqual( instance.String2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.StringMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.StringMethodStatic( reference ), reference ) XCTAssertEqual( instance.StringMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.StringArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.StringArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.StringArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.String2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.String2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.String2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } + + if true { + let reference: SwiftHelloTest_TestListener = SwiftTestListener() + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + +// SwiftTest.TestListenerFieldStatic = reference +// XCTAssertEqual( SwiftTest.TestListenerFieldStatic, reference ) +//// instance.TestListenerField = reference +//// XCTAssertEqual( instance.TestListenerField, reference ) +// +// SwiftTest.TestListenerArrayFieldStatic = referenceArray +// XCTAssertEqual( SwiftTest.TestListenerArrayFieldStatic, referenceArray ) +//// instance.TestListenerArrayField = referenceArray +//// XCTAssertEqual( instance.TestListenerArrayField, referenceArray ) +// +// SwiftTest.TestListener2dArrayFieldStatic = reference2dArray +// XCTAssertEqual( SwiftTest.TestListener2dArrayFieldStatic[0], reference2dArray[0] ) +//// instance.TestListener2dArrayField = reference2dArray +//// XCTAssertEqual( instance.TestListener2dArrayField[0], reference2dArray[0] ) +// +//// XCTAssertEqual( SwiftTest.TestListenerMethodStatic( reference ), reference ) +// XCTAssertEqual( instance.TestListenerMethod( reference ), reference ) +// +//// XCTAssertEqual( SwiftTest.TestListenerArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( instance.TestListenerArrayMethod( referenceArray ), referenceArray ) +// +//// XCTAssertEqual( SwiftTest.TestListener2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( instance.TestListener2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) + } } func testPerformanceExample() { // This is an example of a performance test case. self.measure { // Put the code you want to measure the time of here. + for _ in 0..<100 { + self.testExample() + } } } diff --git a/org_genie/test_body.swift b/org_swiftjava/test_body.swift similarity index 53% rename from org_genie/test_body.swift rename to org_swiftjava/test_body.swift index 71f9be7..c8564c4 100644 --- a/org_genie/test_body.swift +++ b/org_swiftjava/test_body.swift @@ -6,26 +6,26 @@ SwiftTest.booleanFieldStatic = reference XCTAssertEqual( SwiftTest.booleanFieldStatic, reference ) - instance.booleanField = reference - XCTAssertEqual( instance.booleanField, reference ) +// instance.booleanField = reference +// XCTAssertEqual( instance.booleanField, reference ) SwiftTest.booleanArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.booleanArrayFieldStatic, referenceArray ) - instance.booleanArrayField = referenceArray - XCTAssertEqual( instance.booleanArrayField, referenceArray ) +// instance.booleanArrayField = referenceArray +// XCTAssertEqual( instance.booleanArrayField, referenceArray ) SwiftTest.boolean2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.boolean2dArrayFieldStatic[0], reference2dArray[0] ) - instance.boolean2dArrayField = reference2dArray - XCTAssertEqual( instance.boolean2dArrayField[0], reference2dArray[0] ) +// instance.boolean2dArrayField = reference2dArray +// XCTAssertEqual( instance.boolean2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.booleanMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.booleanMethodStatic( reference ), reference ) XCTAssertEqual( instance.booleanMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.booleanArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.booleanArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.booleanArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.boolean2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.boolean2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.boolean2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -36,26 +36,26 @@ SwiftTest.byteFieldStatic = reference XCTAssertEqual( SwiftTest.byteFieldStatic, reference ) - instance.byteField = reference - XCTAssertEqual( instance.byteField, reference ) +// instance.byteField = reference +// XCTAssertEqual( instance.byteField, reference ) SwiftTest.byteArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.byteArrayFieldStatic, referenceArray ) - instance.byteArrayField = referenceArray - XCTAssertEqual( instance.byteArrayField, referenceArray ) +// instance.byteArrayField = referenceArray +// XCTAssertEqual( instance.byteArrayField, referenceArray ) SwiftTest.byte2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.byte2dArrayFieldStatic[0], reference2dArray[0] ) - instance.byte2dArrayField = reference2dArray - XCTAssertEqual( instance.byte2dArrayField[0], reference2dArray[0] ) +// instance.byte2dArrayField = reference2dArray +// XCTAssertEqual( instance.byte2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.byteMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.byteMethodStatic( reference ), reference ) XCTAssertEqual( instance.byteMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.byteArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.byteArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.byteArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.byte2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.byte2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.byte2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -66,26 +66,26 @@ SwiftTest.charFieldStatic = reference XCTAssertEqual( SwiftTest.charFieldStatic, reference ) - instance.charField = reference - XCTAssertEqual( instance.charField, reference ) +// instance.charField = reference +// XCTAssertEqual( instance.charField, reference ) SwiftTest.charArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.charArrayFieldStatic, referenceArray ) - instance.charArrayField = referenceArray - XCTAssertEqual( instance.charArrayField, referenceArray ) +// instance.charArrayField = referenceArray +// XCTAssertEqual( instance.charArrayField, referenceArray ) SwiftTest.char2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.char2dArrayFieldStatic[0], reference2dArray[0] ) - instance.char2dArrayField = reference2dArray - XCTAssertEqual( instance.char2dArrayField[0], reference2dArray[0] ) +// instance.char2dArrayField = reference2dArray +// XCTAssertEqual( instance.char2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.charMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.charMethodStatic( reference ), reference ) XCTAssertEqual( instance.charMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.charArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.charArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.charArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.char2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.char2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.char2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -96,26 +96,26 @@ SwiftTest.shortFieldStatic = reference XCTAssertEqual( SwiftTest.shortFieldStatic, reference ) - instance.shortField = reference - XCTAssertEqual( instance.shortField, reference ) +// instance.shortField = reference +// XCTAssertEqual( instance.shortField, reference ) SwiftTest.shortArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.shortArrayFieldStatic, referenceArray ) - instance.shortArrayField = referenceArray - XCTAssertEqual( instance.shortArrayField, referenceArray ) +// instance.shortArrayField = referenceArray +// XCTAssertEqual( instance.shortArrayField, referenceArray ) SwiftTest.short2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.short2dArrayFieldStatic[0], reference2dArray[0] ) - instance.short2dArrayField = reference2dArray - XCTAssertEqual( instance.short2dArrayField[0], reference2dArray[0] ) +// instance.short2dArrayField = reference2dArray +// XCTAssertEqual( instance.short2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.shortMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.shortMethodStatic( reference ), reference ) XCTAssertEqual( instance.shortMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.shortArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.shortArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.shortArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.short2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.short2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.short2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -126,26 +126,26 @@ SwiftTest.intFieldStatic = reference XCTAssertEqual( SwiftTest.intFieldStatic, reference ) - instance.intField = reference - XCTAssertEqual( instance.intField, reference ) +// instance.intField = reference +// XCTAssertEqual( instance.intField, reference ) SwiftTest.intArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.intArrayFieldStatic, referenceArray ) - instance.intArrayField = referenceArray - XCTAssertEqual( instance.intArrayField, referenceArray ) +// instance.intArrayField = referenceArray +// XCTAssertEqual( instance.intArrayField, referenceArray ) SwiftTest.int2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.int2dArrayFieldStatic[0], reference2dArray[0] ) - instance.int2dArrayField = reference2dArray - XCTAssertEqual( instance.int2dArrayField[0], reference2dArray[0] ) +// instance.int2dArrayField = reference2dArray +// XCTAssertEqual( instance.int2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.intMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.intMethodStatic( reference ), reference ) XCTAssertEqual( instance.intMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.intArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.intArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.intArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.int2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.int2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.int2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -156,26 +156,26 @@ SwiftTest.longFieldStatic = reference XCTAssertEqual( SwiftTest.longFieldStatic, reference ) - instance.longField = reference - XCTAssertEqual( instance.longField, reference ) +// instance.longField = reference +// XCTAssertEqual( instance.longField, reference ) SwiftTest.longArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.longArrayFieldStatic, referenceArray ) - instance.longArrayField = referenceArray - XCTAssertEqual( instance.longArrayField, referenceArray ) +// instance.longArrayField = referenceArray +// XCTAssertEqual( instance.longArrayField, referenceArray ) SwiftTest.long2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.long2dArrayFieldStatic[0], reference2dArray[0] ) - instance.long2dArrayField = reference2dArray - XCTAssertEqual( instance.long2dArrayField[0], reference2dArray[0] ) +// instance.long2dArrayField = reference2dArray +// XCTAssertEqual( instance.long2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.longMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.longMethodStatic( reference ), reference ) XCTAssertEqual( instance.longMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.longArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.longArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.longArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.long2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.long2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.long2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -186,26 +186,26 @@ SwiftTest.floatFieldStatic = reference XCTAssertEqual( SwiftTest.floatFieldStatic, reference ) - instance.floatField = reference - XCTAssertEqual( instance.floatField, reference ) +// instance.floatField = reference +// XCTAssertEqual( instance.floatField, reference ) SwiftTest.floatArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.floatArrayFieldStatic, referenceArray ) - instance.floatArrayField = referenceArray - XCTAssertEqual( instance.floatArrayField, referenceArray ) +// instance.floatArrayField = referenceArray +// XCTAssertEqual( instance.floatArrayField, referenceArray ) SwiftTest.float2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.float2dArrayFieldStatic[0], reference2dArray[0] ) - instance.float2dArrayField = reference2dArray - XCTAssertEqual( instance.float2dArrayField[0], reference2dArray[0] ) +// instance.float2dArrayField = reference2dArray +// XCTAssertEqual( instance.float2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.floatMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.floatMethodStatic( reference ), reference ) XCTAssertEqual( instance.floatMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.floatArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.floatArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.floatArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.float2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.float2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.float2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -216,26 +216,26 @@ SwiftTest.doubleFieldStatic = reference XCTAssertEqual( SwiftTest.doubleFieldStatic, reference ) - instance.doubleField = reference - XCTAssertEqual( instance.doubleField, reference ) +// instance.doubleField = reference +// XCTAssertEqual( instance.doubleField, reference ) SwiftTest.doubleArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.doubleArrayFieldStatic, referenceArray ) - instance.doubleArrayField = referenceArray - XCTAssertEqual( instance.doubleArrayField, referenceArray ) +// instance.doubleArrayField = referenceArray +// XCTAssertEqual( instance.doubleArrayField, referenceArray ) SwiftTest.double2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.double2dArrayFieldStatic[0], reference2dArray[0] ) - instance.double2dArrayField = reference2dArray - XCTAssertEqual( instance.double2dArrayField[0], reference2dArray[0] ) +// instance.double2dArrayField = reference2dArray +// XCTAssertEqual( instance.double2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.doubleMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.doubleMethodStatic( reference ), reference ) XCTAssertEqual( instance.doubleMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.doubleArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.doubleArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.doubleArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.double2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.double2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.double2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } @@ -246,25 +246,55 @@ SwiftTest.StringFieldStatic = reference XCTAssertEqual( SwiftTest.StringFieldStatic, reference ) - instance.StringField = reference - XCTAssertEqual( instance.StringField, reference ) +// instance.StringField = reference +// XCTAssertEqual( instance.StringField, reference ) SwiftTest.StringArrayFieldStatic = referenceArray XCTAssertEqual( SwiftTest.StringArrayFieldStatic, referenceArray ) - instance.StringArrayField = referenceArray - XCTAssertEqual( instance.StringArrayField, referenceArray ) +// instance.StringArrayField = referenceArray +// XCTAssertEqual( instance.StringArrayField, referenceArray ) SwiftTest.String2dArrayFieldStatic = reference2dArray XCTAssertEqual( SwiftTest.String2dArrayFieldStatic[0], reference2dArray[0] ) - instance.String2dArrayField = reference2dArray - XCTAssertEqual( instance.String2dArrayField[0], reference2dArray[0] ) +// instance.String2dArrayField = reference2dArray +// XCTAssertEqual( instance.String2dArrayField[0], reference2dArray[0] ) - XCTAssertEqual( SwiftTest.StringMethodStatic( reference ), reference ) +// XCTAssertEqual( SwiftTest.StringMethodStatic( reference ), reference ) XCTAssertEqual( instance.StringMethod( reference ), reference ) - XCTAssertEqual( SwiftTest.StringArrayMethodStatic( referenceArray ), referenceArray ) +// XCTAssertEqual( SwiftTest.StringArrayMethodStatic( referenceArray ), referenceArray ) XCTAssertEqual( instance.StringArrayMethod( referenceArray ), referenceArray ) - XCTAssertEqual( SwiftTest.String2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) +// XCTAssertEqual( SwiftTest.String2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) XCTAssertEqual( instance.String2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) } + + if true { + let reference: SwiftHelloTest_TestListener = SwiftTestListener() + let referenceArray = [(reference)] + let reference2dArray = [referenceArray] + + SwiftTest.TestListenerFieldStatic = reference + XCTAssertEqual( SwiftTest.TestListenerFieldStatic, reference ) +// instance.TestListenerField = reference +// XCTAssertEqual( instance.TestListenerField, reference ) + + SwiftTest.TestListenerArrayFieldStatic = referenceArray + XCTAssertEqual( SwiftTest.TestListenerArrayFieldStatic, referenceArray ) +// instance.TestListenerArrayField = referenceArray +// XCTAssertEqual( instance.TestListenerArrayField, referenceArray ) + + SwiftTest.TestListener2dArrayFieldStatic = reference2dArray + XCTAssertEqual( SwiftTest.TestListener2dArrayFieldStatic[0], reference2dArray[0] ) +// instance.TestListener2dArrayField = reference2dArray +// XCTAssertEqual( instance.TestListener2dArrayField[0], reference2dArray[0] ) + +// XCTAssertEqual( SwiftTest.TestListenerMethodStatic( reference ), reference ) + XCTAssertEqual( instance.TestListenerMethod( reference ), reference ) + +// XCTAssertEqual( SwiftTest.TestListenerArrayMethodStatic( referenceArray ), referenceArray ) + XCTAssertEqual( instance.TestListenerArrayMethod( referenceArray ), referenceArray ) + +// XCTAssertEqual( SwiftTest.TestListener2dArrayMethodStatic( reference2dArray )[0], reference2dArray[0] ) + XCTAssertEqual( instance.TestListener2dArrayMethod( reference2dArray )[0], reference2dArray[0] ) + } diff --git a/overrides.pl b/overrides.pl index a5a0f43..76799ef 100755 --- a/overrides.pl +++ b/overrides.pl @@ -23,12 +23,11 @@ while ( $text =~ /([^\n:]+):.*? error: overriding declaration requires an 'override' keyword\n ([^{]*\{)/gm ) { my ($source, $key) = ($1, $2); - warn ">>$1<<\n"; - warn ">>$2<<\n"; + warn ">>$1 $2<<\n"; next if !-f $source; my $code = join '', IO::File->new( "< $source" )->getlines(); - if ( $code =~ s/(?new( "> $source" )->print( $code ); } } diff --git a/src/com/johnholdsworth/bindings/SwiftHelloBinding.java b/src/com/johnholdsworth/bindings/SwiftHelloBinding.java new file mode 100644 index 0000000..7a77886 --- /dev/null +++ b/src/com/johnholdsworth/bindings/SwiftHelloBinding.java @@ -0,0 +1,50 @@ + +package com.johnholdsworth.bindings; + +import com.johnholdsworth.bindings.SwiftHelloTypes.TextListener; +import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap; +import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList; + +public interface SwiftHelloBinding { + + // Messages from JavaActivity to Swift + public interface Listener { + + public void setCacheDir( String cacheDir ); + + public void processNumber( double number ); + + public void processText( String text ); + + public void processedMap( ListenerMap map ); + + public void processedMapList( ListenerMapList map ); + + public SwiftHelloTest.TestListener testResponder( int loopback ); + + } + + // Messages from Swift back to Activity + public interface Responder { + + public void processedNumber( double number ); + + public void processedText( String text ); + + public void processedTextListener( TextListener text ); + + public void processedTextListenerArray( TextListener text[] ); + + public void processedTextListener2dArray( TextListener text[][] ); + + public void processMap( ListenerMap map ); + + public void processMapList( ListenerMapList map ); + + public String[] debug( String msg ); + + public SwiftHelloTest.TestListener testResponder( int loopback ); + + } + +} diff --git a/src/com/johnholdsworth/bindings/SwiftHelloTest.java b/src/com/johnholdsworth/bindings/SwiftHelloTest.java new file mode 100644 index 0000000..f4ec039 --- /dev/null +++ b/src/com/johnholdsworth/bindings/SwiftHelloTest.java @@ -0,0 +1,391 @@ + +// auto generated by ../../../../gentests.rb + +package com.johnholdsworth.bindings; + +import com.johnholdsworth.bindings.SwiftHelloTypes.TextListener; +import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap; +import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList; + +public interface SwiftHelloTest { + + public interface TestListener { + + public void setLoopback( TestListener loopback ); + + public boolean booleanMethod( boolean arg ); + public boolean[] booleanArrayMethod( boolean arg[] ); + public boolean[][] boolean2dArrayMethod( boolean arg[][] ); + + public byte byteMethod( byte arg ); + public byte[] byteArrayMethod( byte arg[] ); + public byte[][] byte2dArrayMethod( byte arg[][] ); + + public char charMethod( char arg ); + public char[] charArrayMethod( char arg[] ); + public char[][] char2dArrayMethod( char arg[][] ); + + public short shortMethod( short arg ); + public short[] shortArrayMethod( short arg[] ); + public short[][] short2dArrayMethod( short arg[][] ); + + public int intMethod( int arg ); + public int[] intArrayMethod( int arg[] ); + public int[][] int2dArrayMethod( int arg[][] ); + + public long longMethod( long arg ); + public long[] longArrayMethod( long arg[] ); + public long[][] long2dArrayMethod( long arg[][] ); + + public float floatMethod( float arg ); + public float[] floatArrayMethod( float arg[] ); + public float[][] float2dArrayMethod( float arg[][] ); + + public double doubleMethod( double arg ); + public double[] doubleArrayMethod( double arg[] ); + public double[][] double2dArrayMethod( double arg[][] ); + + public String StringMethod( String arg ); + public String[] StringArrayMethod( String arg[] ); + public String[][] String2dArrayMethod( String arg[][] ); + + public TestListener TestListenerMethod( TestListener arg ); + public TestListener[] TestListenerArrayMethod( TestListener arg[] ); + public TestListener[][] TestListener2dArrayMethod( TestListener arg[][] ); + + public ListenerMap testMap( ListenerMap arg ); + public ListenerMapList testMapList( ListenerMapList arg ); + + } + + public static class TestResponderAdapter implements TestListener { + + public TestListener loopback; + + public void setLoopback( TestListener loopback ) { + this.loopback = loopback; + } + + public boolean booleanMethod( boolean arg ) { + return loopback != null ? loopback.booleanMethod( arg ) : arg; + } + + public boolean[] booleanArrayMethod( boolean arg[] ) { + return loopback != null ? loopback.booleanArrayMethod( arg ) : arg; + } + + public boolean[][] boolean2dArrayMethod( boolean arg[][] ) { + return loopback != null ? loopback.boolean2dArrayMethod( arg ) : arg; + } + + public byte byteMethod( byte arg ) { + return loopback != null ? loopback.byteMethod( arg ) : arg; + } + + public byte[] byteArrayMethod( byte arg[] ) { + return loopback != null ? loopback.byteArrayMethod( arg ) : arg; + } + + public byte[][] byte2dArrayMethod( byte arg[][] ) { + return loopback != null ? loopback.byte2dArrayMethod( arg ) : arg; + } + + public char charMethod( char arg ) { + return loopback != null ? loopback.charMethod( arg ) : arg; + } + + public char[] charArrayMethod( char arg[] ) { + return loopback != null ? loopback.charArrayMethod( arg ) : arg; + } + + public char[][] char2dArrayMethod( char arg[][] ) { + return loopback != null ? loopback.char2dArrayMethod( arg ) : arg; + } + + public short shortMethod( short arg ) { + return loopback != null ? loopback.shortMethod( arg ) : arg; + } + + public short[] shortArrayMethod( short arg[] ) { + return loopback != null ? loopback.shortArrayMethod( arg ) : arg; + } + + public short[][] short2dArrayMethod( short arg[][] ) { + return loopback != null ? loopback.short2dArrayMethod( arg ) : arg; + } + + public int intMethod( int arg ) { + return loopback != null ? loopback.intMethod( arg ) : arg; + } + + public int[] intArrayMethod( int arg[] ) { + return loopback != null ? loopback.intArrayMethod( arg ) : arg; + } + + public int[][] int2dArrayMethod( int arg[][] ) { + return loopback != null ? loopback.int2dArrayMethod( arg ) : arg; + } + + public long longMethod( long arg ) { + return loopback != null ? loopback.longMethod( arg ) : arg; + } + + public long[] longArrayMethod( long arg[] ) { + return loopback != null ? loopback.longArrayMethod( arg ) : arg; + } + + public long[][] long2dArrayMethod( long arg[][] ) { + return loopback != null ? loopback.long2dArrayMethod( arg ) : arg; + } + + public float floatMethod( float arg ) { + return loopback != null ? loopback.floatMethod( arg ) : arg; + } + + public float[] floatArrayMethod( float arg[] ) { + return loopback != null ? loopback.floatArrayMethod( arg ) : arg; + } + + public float[][] float2dArrayMethod( float arg[][] ) { + return loopback != null ? loopback.float2dArrayMethod( arg ) : arg; + } + + public double doubleMethod( double arg ) { + return loopback != null ? loopback.doubleMethod( arg ) : arg; + } + + public double[] doubleArrayMethod( double arg[] ) { + return loopback != null ? loopback.doubleArrayMethod( arg ) : arg; + } + + public double[][] double2dArrayMethod( double arg[][] ) { + return loopback != null ? loopback.double2dArrayMethod( arg ) : arg; + } + + public String StringMethod( String arg ) { + return loopback != null ? loopback.StringMethod( arg ) : arg; + } + + public String[] StringArrayMethod( String arg[] ) { + return loopback != null ? loopback.StringArrayMethod( arg ) : arg; + } + + public String[][] String2dArrayMethod( String arg[][] ) { + return loopback != null ? loopback.String2dArrayMethod( arg ) : arg; + } + + public TestListener TestListenerMethod( TestListener arg ) { + return loopback != null ? loopback.TestListenerMethod( arg ) : arg; + } + + public TestListener[] TestListenerArrayMethod( TestListener arg[] ) { + return loopback != null ? loopback.TestListenerArrayMethod( arg ) : arg; + } + + public TestListener[][] TestListener2dArrayMethod( TestListener arg[][] ) { + return loopback != null ? loopback.TestListener2dArrayMethod( arg ) : arg; + } + + public ListenerMap testMap( ListenerMap arg ) { + return loopback != null ? loopback.testMap( arg ) : arg; + } + + public ListenerMapList testMapList( ListenerMapList arg ) { + return loopback != null ? loopback.testMapList( arg ) : arg; + } + + } + + public static class SwiftTestListener extends TestResponderAdapter { + + static int tcount = 0; + + public void respond( TestListener responder ) { + tcount += 1; + System.out.println("Java -> Swift "+tcount+"..."); + + + if ( true ) { + boolean reference = true; + boolean referenceArray[] = new boolean [] {reference}; + boolean reference2dArray[][] = new boolean [][] {referenceArray}; + + boolean response = responder.booleanMethod( reference ); + boolean responseArray[] = responder.booleanArrayMethod( referenceArray ); + boolean response2dArray[][] = responder.boolean2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Bool: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Bool: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Bool: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + byte reference = 123; + byte referenceArray[] = new byte [] {reference}; + byte reference2dArray[][] = new byte [][] {referenceArray}; + + byte response = responder.byteMethod( reference ); + byte responseArray[] = responder.byteArrayMethod( referenceArray ); + byte response2dArray[][] = responder.byte2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Int8: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Int8: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Int8: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + char reference = 123; + char referenceArray[] = new char [] {reference}; + char reference2dArray[][] = new char [][] {referenceArray}; + + char response = responder.charMethod( reference ); + char responseArray[] = responder.charArrayMethod( referenceArray ); + char response2dArray[][] = responder.char2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("UInt16: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("UInt16: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("UInt16: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + short reference = 123; + short referenceArray[] = new short [] {reference}; + short reference2dArray[][] = new short [][] {referenceArray}; + + short response = responder.shortMethod( reference ); + short responseArray[] = responder.shortArrayMethod( referenceArray ); + short response2dArray[][] = responder.short2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Int16: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Int16: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Int16: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + int reference = 123; + int referenceArray[] = new int [] {reference}; + int reference2dArray[][] = new int [][] {referenceArray}; + + int response = responder.intMethod( reference ); + int responseArray[] = responder.intArrayMethod( referenceArray ); + int response2dArray[][] = responder.int2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Int: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Int: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Int: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + long reference = 123; + long referenceArray[] = new long [] {reference}; + long reference2dArray[][] = new long [][] {referenceArray}; + + long response = responder.longMethod( reference ); + long responseArray[] = responder.longArrayMethod( referenceArray ); + long response2dArray[][] = responder.long2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Int64: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Int64: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Int64: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + float reference = 123; + float referenceArray[] = new float [] {reference}; + float reference2dArray[][] = new float [][] {referenceArray}; + + float response = responder.floatMethod( reference ); + float responseArray[] = responder.floatArrayMethod( referenceArray ); + float response2dArray[][] = responder.float2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Float: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Float: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Float: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + double reference = 123; + double referenceArray[] = new double [] {reference}; + double reference2dArray[][] = new double [][] {referenceArray}; + + double response = responder.doubleMethod( reference ); + double responseArray[] = responder.doubleArrayMethod( referenceArray ); + double response2dArray[][] = responder.double2dArrayMethod( reference2dArray ); + + if ( response != reference ) { + System.out.println("Double: "+response+" != "+reference); + } + if ( responseArray[0] != referenceArray[0] ) { + System.out.println("Double: "+responseArray[0]+" != "+referenceArray[0]); + } + if ( response2dArray[0][0] != reference2dArray[0][0] ) { + System.out.println("Double: "+response2dArray[0][0]+" != "+reference2dArray[0][0]); + } + } + + if ( true ) { + String reference = "123"; + String referenceArray[] = new String [] {reference}; + String reference2dArray[][] = new String [][] {referenceArray}; + + String response = responder.StringMethod( reference ); + String responseArray[] = responder.StringArrayMethod( referenceArray ); + String response2dArray[][] = responder.String2dArrayMethod( reference2dArray ); + } + + if ( true ) { + TestListener reference = new SwiftTestListener(); + TestListener referenceArray[] = new TestListener [] {reference}; + TestListener reference2dArray[][] = new TestListener [][] {referenceArray}; + + TestListener response = responder.TestListenerMethod( reference ); + TestListener responseArray[] = responder.TestListenerArrayMethod( referenceArray ); + TestListener response2dArray[][] = responder.TestListener2dArrayMethod( reference2dArray ); + } + } + + } + +} diff --git a/src/com/johnholdsworth/bindings/SwiftHelloTypes.java b/src/com/johnholdsworth/bindings/SwiftHelloTypes.java new file mode 100644 index 0000000..992e237 --- /dev/null +++ b/src/com/johnholdsworth/bindings/SwiftHelloTypes.java @@ -0,0 +1,37 @@ + +// Shared types/interfaces between Java and Swift + +package com.johnholdsworth.bindings; + +import com.johnholdsworth.bindings.SwiftHelloTypes.TextListener; +import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap; +import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList; + +import java.util.HashMap; + +public interface SwiftHelloTypes { + + // These are required becuase of type erasure in jars + public static class ListenerMap extends HashMap { + public static Class valueClass() { + return TextListener.class; + } + } + + public static class ListenerMapList extends HashMap { + public static Class valueClass() { + return (new TextListener [] {}).getClass(); + } + } + + // An example of publishing an object to Java. + // Add the associated protocol to an class and + // objects can be passed to a responder message. + public interface TextListener { + + public String getText(); + + } + +} + diff --git a/src/genswift.java b/src/genswift.java index 6b0e151..7fb7c69 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -5,7 +5,9 @@ // Created by John Holdsworth on 14/07/2016. // Copyright (c) 2016 John Holdsworth. All rights reserved. // -// See genswift.sh.. +// See ../genswift.sh.. +// Code generator for Swift written in the style of a Perl script. +// // List of classes to be generated received on stdin which is the // output of a grep on the target jar for the classes of interest. // @@ -14,7 +16,7 @@ // after reordering to minimise the number of forward references in // the generated code. // -// For Java classes a Swift class of the same name is generated in +// For Java classes, a Swift class of the same name is generated in // a framework derived from the first two packages of the classes // full name (e.g. java_lang, java_util.) For Java interfaces a // Swift protocol is generated along with a concrete class with @@ -27,18 +29,19 @@ // have Swift methods in a subclass called from Java. This is used // in threading and in event processing in Swift. These "Base" classes // are also generated for concrete classes with names ending in "Adapter". +// Thes seemingly arbitrary conventions are taken from java.awt & swing. // // A variation on this forwarding of Java methods into Swift is where // a method is generally a subclasses responsibility to implement such -// as the method java.awt.Canvas.paint(). A list of these methods is -// maintained in this source and where one is encountered a "Base" +// as the method java.awt.Canvas.paint(). A list of these methods must +// be maintained in this source and where one is encountered a "Base" // class is generated allowing the method to be implemented in Swift. // // For this proxy of Java methods into Swift support is required on // the Java side of the divide. Proxy classes delegating to "native" // implementations of the relevant method are generated and must be // available to the application. On UNIX this is through the jar file -// ~/.genie.jar built from these generated sources using ../genjar.sh. +// ~/.swiftjava.jar built from these generated sources using ../genjar.sh. // import java.io.*; @@ -47,253 +50,167 @@ import java.util.ArrayList; import java.lang.reflect.Field; import java.lang.reflect.Modifier; +import java.lang.reflect.TypeVariable; class genswift { - static class Parameter { - Executable executable; - int number; - - public Class getType() { - return executable.constructor != null ? - executable.constructor.getParameterTypes()[number] : - executable.method.getParameterTypes()[number]; - } - - public String getName() { - return executable.parameterNames != null ? - executable.parameterNames[number] : "arg"+number; - } - } - - static class Executable { - java.lang.reflect.Constructor constructor; - java.lang.reflect.Method method; - Parameter parameters[]; - String parameterNames[]; - - public int getModifiers() { - return constructor != null ? - constructor.getModifiers() : - method.getModifiers(); - } - - public int getParameterCount() { - return constructor != null ? - constructor.getParameterTypes().length : - method.getParameterTypes().length; - } - - public Parameter [] getParameters() { - if ( parameters == null ) { - int size = getParameterCount(); - parameters = new Parameter[size]; - if ( size != 0 ) { - for ( int i=0 ; i executableClass = executable.getClass(); - java.lang.reflect.Method paramsMethod = executableClass.getMethod("getParameters", new Class[] {}); - - Object realParameters[] = (Object []) paramsMethod.invoke(executable, new Object[] {}); - Class parametersClass = realParameters[0].getClass(); - java.lang.reflect.Method nameMethod = parametersClass.getMethod("getName", new Class[] {}); - - parameterNames = new String[size]; - for ( int i=0 ; i [] getExceptionTypes() { - return constructor != null ? - constructor.getExceptionTypes() : - method.getExceptionTypes(); - } - - } - - static class Constructor extends Executable { - public String toString() { - return constructor.toString(); - } - } - - static Constructor newConstructor( java.lang.reflect.Constructor constructor ) { - if ( constructor == null ) - return null; - Constructor proxy = new Constructor(); - proxy.constructor = constructor; - return proxy; - } - - static class Method extends Executable { - public String getName() { - return method.getName(); - } - public Class getReturnType() { - return method.getReturnType(); - } - public String toString() { - return method.toString(); - } - } - - static Method newMethod( java.lang.reflect.Method method ) { - if ( method == null ) - return null; - Method proxy = new Method(); - proxy.method = method; - return proxy; - } - - static void print( String s ) { - System.out.println(s); - } - - static String Unclassed = "Unclassed"; - static String pathToWriteSource = "./"; - static String organisation = "org.genie."; - static String proxySourcePath = pathToWriteSource+"src/"+organisation.replace('.', '/'); - static String repoBase = "https://github.com/SwiftJava/"; - - boolean isUnclassed( Class type ) { - return swiftTypeFor(type, false, true).indexOf(Unclassed) != -1; + static void print( String s ) { + System.out.println(s); } + + static int apiVersion = 2; - boolean excludeFromCodeGeneration( Class clazz ) { - return !Modifier.isPublic(clazz.getModifiers()) || - classPrefix(clazz.getName()).equals("java_util") && clazz.getName().indexOf('$') != -1; - } + static String Unclassed = "Unclassed"; + static String pathToWriteSource = "./"; + static String organisation = "org.swiftjava."; + static String proxySourcePath = pathToWriteSource+"src/"+organisation.replace('.', '/'); + static String repoBase = "https://github.com/SwiftJava/"; - boolean supportsProxyCallback( Class clazz ) { - String clazzName = clazz.getName(); - return clazz == java.lang.Runnable.class || isAdapter() - || clazz.isInterface() && (clazzName.endsWith("Listener") || clazzName.endsWith("Handler") || clazzName.endsWith("Manager")); + boolean isUnclassed( Class type ) { + return swiftTypeFor(type, false, true).indexOf(Unclassed) != -1; } - boolean isAdapter() { - return classSuffix.endsWith("Adapter") && clazz != java.awt.dnd.DropTargetAdapter.class; // missing drop()? - } + static HashMap swiftKeywords = new HashMap() { + private static final long serialVersionUID = 1L; + + { + put( "init", true ); + put( "self", true ); + put( "new", true ); + put( "in", true ); + put( "is", true ); + put( "operator", true ); + put( "subscript", true ); + put( "where", true ); + put( "as", true ); + } + }; static HashMap swiftReserved = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( Float.class.getName(), true ); - put( Double.class.getName(), true ); - put( Object.class.getName(), true ); - put( String.class.getName(), true ); - put( Comparable.class.getName(), true ); - put( Error.class.getName(), true ); - put( SecurityException.class.getName(), true ); - put( java.util.Set.class.getName(), true ); - put( java.util.Locale.class.getName(), true ); - put( java.util.Comparator.class.getName(), true ); - put( javax.swing.text.TabSet.class.getName(), true ); - } + private static final long serialVersionUID = 1L; + + { + put( Float.class.getName(), true ); + put( Double.class.getName(), true ); + put( Class.class.getName(), true ); + put( Object.class.getName(), true ); + put( String.class.getName(), true ); + put( Comparable.class.getName(), true ); +// put( CharSequence.class.getName(), true ); + put( Error.class.getName(), true ); + put( SecurityException.class.getName(), true ); + put( java.util.Map.class.getName(), true ); + put( java.util.Set.class.getName(), true ); + put( java.util.Locale.class.getName(), true ); + put( java.util.Comparator.class.getName(), true ); + put( javax.swing.text.TabSet.class.getName(), true ); + } + }; + + static HashMap keyClasses = new HashMap() { + private static final long serialVersionUID = 1L; + + { + put( Object.class.getName(), true ); + put( Class.class.getName(), true ); + put( Runnable.class.getName(), true ); + put( Throwable.class.getName(), true ); + put( java.util.Set.class.getName(), true ); + put( java.util.Map.class.getName(), true ); + put( java.util.HashMap.class.getName(), true ); + } }; static HashMap subclassResponsibilities = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( "public void java.awt.Window.paint(java.awt.Graphics)", true ); - put( "public void java.awt.Canvas.paint(java.awt.Graphics)", true ); - put( "public void java.awt.Canvas.update(java.awt.Graphics)", true ); - put( "public java.awt.Component javax.swing.JTable.prepareRenderer(javax.swing.table.TableCellRenderer,int,int)", true ); - put( "public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException", true ); - put( "public java.awt.Component javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(javax.swing.JTable,java.lang.Object,boolean,boolean,int,int)", true ); - put( "public boolean javax.swing.table.DefaultTableModel.isCellEditable(int,int)", true ); - put( "public void javax.swing.JTable.changeSelection(int,int,boolean,boolean)", true ); - } + private static final long serialVersionUID = 1L; + + { + put( "public void java.awt.Window.paint(java.awt.Graphics)", true ); + put( "public void java.awt.Canvas.paint(java.awt.Graphics)", true ); + put( "public void java.awt.Canvas.update(java.awt.Graphics)", true ); + put( "public java.awt.Component javax.swing.JTable.prepareRenderer(javax.swing.table.TableCellRenderer,int,int)", true ); + put( "public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException", true ); + put( "public java.awt.Component javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(javax.swing.JTable,java.lang.Object,boolean,boolean,int,int)", true ); + put( "public boolean javax.swing.table.DefaultTableModel.isCellEditable(int,int)", true ); + put( "public void javax.swing.JTable.changeSelection(int,int,boolean,boolean)", true ); + } }; static HashMap swiftTypes = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( "boolean", "Bool"); - put( "byte", "Int8"); - put( "char", "UInt16"); - put( "short", "Int16"); - put( "int", "Int"); - put( "long", "Int64"); - put( "float", "Float"); - put( "double", "Double"); - put( Float.class.getName(), "Float"); - put( String.class.getName(), "String"); - } + private static final long serialVersionUID = 1L; + + { + put( "boolean", "Bool"); + put( "byte", "Int8"); + put( "char", "UInt16"); + put( "short", "Int16"); + put( "int", "Int"); + put( "long", "Int64"); + put( "float", "Float"); + put( "double", "Double"); + put( Float.class.getName(), "Float"); + put( String.class.getName(), "String"); + } }; static HashMap arrayTypes = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( "boolean", "Bool"); - put( "byte", "Int8"); - put( "char", "UInt16"); - put( "short", "Int16"); - put( "int", "Int32"); - put( "long", "Int64"); - put( "float", "Float"); - put( "double", "Double"); - put( String.class.getName(), "String"); - } + private static final long serialVersionUID = 1L; + + { + put( "boolean", "Bool"); + put( "byte", "Int8"); + put( "char", "UInt16"); + put( "short", "Int16"); + put( "int", "Int32"); + put( "long", "Int64"); + put( "float", "Float"); + put( "double", "Double"); + put( String.class.getName(), "String"); + } }; static HashMap funcNames = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( "boolean", "Boolean"); - put( "byte", "Byte"); - put( "char", "Char"); - put( "short", "Short"); - put( "int", "Int"); - put( "long", "Long"); - put( "float", "Float"); - put( "double", "Double"); - put( "void", "Void"); - } + private static final long serialVersionUID = 1L; + + { + put( "boolean", "Boolean"); + put( "byte", "Byte"); + put( "char", "Char"); + put( "short", "Short"); + put( "int", "Int"); + put( "long", "Long"); + put( "float", "Float"); + put( "double", "Double"); + put( "void", "Void"); + } }; static HashMap jvalueFields = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( "boolean", "z"); - put( "byte", "b"); - put( "char", "c"); - put( "short", "s"); - put( "int", "i"); - put( "long", "j"); - put( "float", "f"); - put( "double", "d"); - put( "void", "v"); - } + private static final long serialVersionUID = 1L; + + { + put( "boolean", "z"); + put( "byte", "b"); + put( "char", "c"); + put( "short", "s"); + put( "int", "i"); + put( "long", "j"); + put( "float", "f"); + put( "double", "d"); + put( "void", "v"); + } }; static HashMap frameworkLevels = new HashMap(); static boolean forwardReference( String currentFramework, String framework ) { - Integer level = frameworkLevels.get( framework ); - if ( level == null ) - return true; - return level > frameworkLevels.get( currentFramework ); + Integer level = frameworkLevels.get( framework ); + if ( level == null ) + return true; + return level > frameworkLevels.get( currentFramework ); } - String frameworkImports = "\nimport java_swift\n"; + String frameworkImports; HashMap referencedFrameworks = new HashMap(); @@ -305,16 +222,16 @@ static boolean forwardReference( String currentFramework, String framework ) { public static void main( String args[] ) { - for ( int i=0 ; i 1 ) { - HashMap alreadyMoved = new HashMap(); + HashMap alreadyMoved = new HashMap(); for ( int i=0; i 10 ) - continue; - - int mustBeAfter = i; - for ( int j=i+1; j - references(additionalFrameworks.get(j), mightMove) ) - mustBeAfter = j; - if ( mustBeAfter > i ) { - print("Moving "+mightMove+"["+i+"] after "+additionalFrameworks.get(mustBeAfter)+"["+mustBeAfter+"]"); - additionalFrameworks.remove(i); - additionalFrameworks.add(mustBeAfter, mightMove); - if ( !alreadyMoved.containsKey(mightMove) ) - alreadyMoved.put(mightMove, 1); - else - alreadyMoved.put(mightMove, alreadyMoved.get(mightMove)+1); - i--; - } - } - - frameworkLevel = knownFrameworkOrder.length; - for ( int i=0; i 10 ) + continue; + + int mustBeAfter = i; + for ( int j=i+1; j + references(additionalFrameworks.get(j), mightMove) ) + mustBeAfter = j; + if ( mustBeAfter > i ) { + print("Moving "+mightMove+"["+i+"] after "+additionalFrameworks.get(mustBeAfter)+"["+mustBeAfter+"]"); + additionalFrameworks.remove(i); + additionalFrameworks.add(mustBeAfter, mightMove); + if ( !alreadyMoved.containsKey(mightMove) ) + alreadyMoved.put(mightMove, 1); + else + alreadyMoved.put(mightMove, alreadyMoved.get(mightMove)+1); + i--; + } + } + + frameworkLevel = knownFrameworkOrder.length; + for ( int i=0; i> crossReferences = new HashMap>(); - static HashMap knownAdditionalFrameworks = new HashMap(); - static ArrayList additionalFrameworks = new ArrayList(); - - static void crossReference( String from, String to ) { - if ( !crossReferences.containsKey( from ) ) - crossReferences.put( from, new HashMap() ); - if ( !crossReferences.get( from ).containsKey( to ) ) - crossReferences.get( from ).put( to, 0 ); - crossReferences.get(from).put(to,crossReferences.get(from).get(to)+1); - } - - static int references( String from, String to ) { - if ( !crossReferences.containsKey(from) || !crossReferences.get(from).containsKey(to) ) - return 0; - return crossReferences.get(from).get(to); - } - StringBuilder code = new StringBuilder(); String pathToClass, className, classSuffix, currentFramework, visibility, classCacheVar; boolean isInterface, isLost, isListener; Class clazz, superclazz; genswift( String pathToClass ) { - this.pathToClass = pathToClass; + this.pathToClass = pathToClass; + } + + boolean generate() throws Exception { + className = pathToClass.replace('/', '.'); + clazz = Class.forName( className ); + + print( "\n"+clazz ); + + if ( excludeFromCodeGeneration( clazz ) ) + return false; + + classSuffix = classSuffix( className ); + currentFramework = classPrefix( className ); + + if ( !frameworkLevels.containsKey(currentFramework) ) + frameworkLevels.put( currentFramework, frameworkLevel++ ); + if ( !knownAdditionalFrameworks.containsKey(currentFramework) ) { + knownAdditionalFrameworks.put(currentFramework, true); + additionalFrameworks.add(currentFramework); + } +// if ( !currentFramework.equals("java_lang") ) +// classTypeFor( java.lang.Object.class, false, false ); + + frameworkImports = keyClasses.containsKey(className) ? "" : "\nimport java_swift\n"; + + visibility = "open "; + superclazz = clazz.getSuperclass(); + isInterface = clazz.isInterface(); + //if ( !isInterface ) return false; + + isListener = isInterface && supportsProxyCallback( clazz ); + + code.append("\n/// generated by: "+invocation+" ///\n"); +// code.append("\n/// JAVA_HOME: "+System.getenv("JAVA_HOME")+" ///\n"); +// code.append("/// "+new java.util.Date()+" ///\n"); + + code.append("\n/// "+clazz+" ///\n"); + + isLost = false; + String derivedFrom = ""; + + if (superclazz != null) { + String sname = classTypeFor(superclazz, false, true); + isLost = sname.indexOf(Unclassed+"Object") != -1; + derivedFrom += ": " + sname; + } else if (!isInterface) + derivedFrom += ": JNIObject"; + + ArrayList> interfacesSoFar = new ArrayList>(); + Class supr = superclazz; + while( supr != null ) { + interfacesSoFar.add(supr); + supr = supr.getSuperclass(); + } + + boolean hasUnclassed = false; + for (Class intrface : clazz.getInterfaces()) { + if ( interfacesChangingReturnTypeInSubclass( intrface ) ) + continue; + + if ( redundantConformance( intrface, interfacesSoFar.toArray( new Class[ interfacesSoFar.size() ] ) ) + || excludeFromCodeGeneration(intrface) ) + continue; + interfacesSoFar.add( intrface ); + + String name = classTypeFor(intrface, false, true); + boolean isUnclassed = name.indexOf(Unclassed+"Protocol") != -1; + if ( isUnclassed ) + if ( hasUnclassed ) + continue; + else + hasUnclassed = true; + + if (derivedFrom == "") + derivedFrom += ": "; + else + derivedFrom += ", "; + + derivedFrom += classTypeFor(intrface, false, true)+(isInterface?"":""); + } + + if (isInterface && derivedFrom == "") + derivedFrom += ": JavaProtocol"; + + code.append("\n"+(isInterface ? "public protocol" : "open class") + " " + + classSuffix+(isInterface?"" : "") + derivedFrom + " {\n\n"); + + if ( !isInterface ) { + code.append(" public convenience init?( casting object: "+swiftTypeFor( java.lang.Object.class, false, true )+", _ file: StaticString = #file, _ line: Int = #line ) {\n"); + code.append(" self.init( javaObject: nil )\n" ); + if ( frameworkImports.indexOf("import java_lang") != -1 ) { + code.append(" if !object.validDownCast( toJavaClass: \""+className+"\", file, line ) {\n" ); + code.append(" return nil\n"); + code.append(" }\n"); + } + code.append(" object.withJavaObject {\n"); + code.append(" self.javaObject = $0\n"); + code.append(" }\n"); + code.append(" }\n\n" ); + } + + classCacheVar = classSuffix+"JNIClass"; + if ( !isInterface ) + code.append( " private static var "+classCacheVar+": jclass?\n\n" ); + + HashMap fieldsSeen = new HashMap(); + findInterfaceMethods( clazz ); + + generateFields( fieldsSeen, isInterface, clazz ); + + if ( !isInterface ) + for ( Class intrface : interfacesSoFar.toArray( new Class[ interfacesSoFar.size() ] ) ) + generateInterfaceFields( fieldsSeen, intrface ); + + + generateConstructors( pathToClass, classSuffix, false ); + + boolean hasSubclassResponsibility = generateMethods( clazz.getDeclaredMethods(), isInterface, fieldsSeen, classSuffix, false ); + + ArrayList responsibles = new ArrayList(); + for ( java.lang.reflect.Method method : clazz.getMethods() ) { + //print( "!!"+method.toString() ); + if ( subclassResponsibilities.containsKey(method.toString()) ) + responsibles.add( method ); + } + + if ( !isInterface ) + addAnyMethodsDeclaredInProtocolsButNotDefined( isInterface, fieldsSeen, classSuffix ); + + code.append("}\n\n"); + + if ( isInterface ) { + String superProtocol = "JNIObjectForward"; + if ( clazz.getInterfaces().length != 0 ) + superProtocol = classTypeFor( clazz.getInterfaces()[0], false, true )+"Forward"; + code.append( "\nopen class "+classSuffix+"Forward: "+superProtocol+", "+classSuffix+" {\n\n" ); + code.append( " private static var "+classCacheVar+": jclass?\n\n" ); + + findInterfaceMethods( clazz ); + + fieldsSeen = new HashMap(); + generateFields( fieldsSeen, false, clazz ); + + boolean subinterface = clazz.getInterfaces().length == 1 && clazz.getDeclaredMethods().length == 0; + if ( !subinterface ) { + generateMethods( clazz.getMethods(), false, fieldsSeen, classSuffix+"Forward", false ); + addAnyMethodsDeclaredInProtocolsButNotDefined( false, fieldsSeen, classSuffix+"Forward" ); + } + + code.append( "}\n\n\n" ); + } + + if ( isInterface && supportsProxyCallback( clazz ) || isAdapter() || !responsibles.isEmpty() ) + generateCallbackBase( fieldsSeen, responsibles.toArray( new java.lang.reflect.Method[ responsibles.size() ] ) ); + + return true; } void save( ) throws IOException { - String Sources = pathToWriteSource + currentFramework + "/Sources/"; - new File( Sources ).mkdirs(); + String Sources = pathToWriteSource + currentFramework + "/Sources/"; + new File( Sources ).mkdirs(); - String source = Sources + classSuffix + ".swift"; + String source = Sources + classSuffix + ".swift"; byte bytes[] = (frameworkImports+code.toString()).getBytes("UTF-8"); if ( bytes.length == new File( source ).length() && java.util.Arrays.equals( bytes, existing( source )) ) - return; + return; print( "Saving: "+source); FileOutputStream out = new FileOutputStream( source ); @@ -457,228 +513,79 @@ void save( ) throws IOException { } byte [] existing( String source ) throws IOException { - File file = new File( source ); - if ( !file.exists() ) - return null; - byte bytes[] = new byte[ (int) file.length() ]; - FileInputStream in = new FileInputStream( source ); - in.read( bytes ); - in.close(); - return bytes; + File file = new File( source ); + if ( !file.exists() ) + return null; + byte bytes[] = new byte[ (int) file.length() ]; + FileInputStream in = new FileInputStream( source ); + in.read( bytes ); + in.close(); + return bytes; } - boolean generate() throws Exception { - className = pathToClass.replace('/', '.'); - clazz = Class.forName( className ); - - print( "\n"+clazz ); - - if ( excludeFromCodeGeneration( clazz ) ) - return false; - - classSuffix = classSuffix( className ); - currentFramework = classPrefix( className ); + int idcount = 0; + + void generateFields( HashMap fieldsSeen, boolean isInterface, Class clazz ) { + for (Field field : clazz.getDeclaredFields()) { + int mods = field.getModifiers(); + + print(field.toString()); + code.append( " /// "+field+"\n\n" ); + + String fieldName = safe(field.getName()); + boolean isFinal = Modifier.isFinal(mods); + boolean isStatic = Modifier.isStatic(mods); + + boolean skipField = (fieldOverride( field, superclazz)) && isStatic || + !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || fieldsSeen.containsKey(fieldName) || + fieldName.equals(classSuffix) || interfaceMethods.containsKey(fieldName+"()") || + isStatic && (Modifier.isProtected(mods) || + superclazz == javax.swing.undo.AbstractUndoableEdit.class || + superclazz != null && superclazz.getSuperclass() == javax.swing.undo.AbstractUndoableEdit.class || + superclazz == javax.swing.plaf.basic.BasicComboBoxRenderer.class || + superclazz == javax.swing.border.TitledBorder.class); + if ( skipField ) + continue; + + fieldsSeen.put(fieldName, true); + Class fieldType = field.getType(); + try { + if ( superclazz != null ) + fieldType = superclazz.getField(field.getName()).getType(); + } + catch ( NoSuchFieldException e ) { + } + +// if ( fieldType.isInterface() && fieldType.isArray() ) +// continue; //// + + boolean arrayType = crashesCompilerOnLinx(fieldType); + if ( arrayType ) + code.append( " #if !os(Linux)\n"); + + String fieldIDVar = safe(field.getName())+"_FieldID"; + if ( ! isInterface ) + code.append( " private static var "+fieldIDVar+": jfieldID?\n\n" ); + + if ( !isStatic ) + fieldIDVar = classSuffix+"."+fieldIDVar; + + code.append( " "+(fieldOverride(field,superclazz)&&!isLost?"override ":"")+(isInterface?"":visibility)+ + (Modifier.isStatic(mods) ? "static " : "")+"var "+fieldName+": "+ + swiftTypeFor(fieldType, true, false) ); - if ( !frameworkLevels.containsKey(currentFramework) ) - frameworkLevels.put( currentFramework, frameworkLevel++ ); - if ( !knownAdditionalFrameworks.containsKey(currentFramework) ) { - knownAdditionalFrameworks.put(currentFramework, true); - additionalFrameworks.add(currentFramework); - } -// if ( !currentFramework.equals("java_lang") ) -// classTypeFor( java.lang.Object.class, false, false ); - - visibility = "open "; - superclazz = clazz.getSuperclass(); - isInterface = clazz.isInterface(); - isListener = isInterface && supportsProxyCallback( clazz ); - - code.append("\n/// generated by: "+invocation+" ///\n"); - code.append("\n/// JAVA_HOME: "+System.getenv("JAVA_HOME")+" ///\n"); - code.append("/// "+new java.util.Date()+" ///\n"); - - code.append("\n/// "+clazz+" ///\n"); - - isLost = false; - String derivedFrom = ""; - - if (superclazz != null) { - String sname = classTypeFor(superclazz, false, true); - isLost = sname.indexOf(Unclassed+"Object") != -1; - derivedFrom += ": " + sname; - } else if (!isInterface) - derivedFrom += ": JNIObject"; - - ArrayList> interfacesSoFar = new ArrayList>(); - Class supr = superclazz; - while( supr != null ) { - interfacesSoFar.add(supr); - supr = supr.getSuperclass(); - } - - boolean hasUnclassed = false; - for (Class intrface : clazz.getInterfaces()) { - if ( interfacesChangingReturnTypeInSubclass( intrface ) ) - continue; - - if ( redundantConformance( intrface, interfacesSoFar.toArray( new Class[ interfacesSoFar.size() ] ) ) - || excludeFromCodeGeneration(intrface) ) - continue; - interfacesSoFar.add( intrface ); - - String name = classTypeFor(intrface, false, true); - boolean isUnclassed = name.indexOf(Unclassed+"Protocol") != -1; - if ( isUnclassed ) - if ( hasUnclassed ) - continue; - else - hasUnclassed = true; - - if (derivedFrom == "") - derivedFrom += ": "; - else - derivedFrom += ", "; - - derivedFrom += classTypeFor(intrface, false, true); - } - - if (isInterface && derivedFrom == "") - derivedFrom += ": JavaProtocol"; - - code.append("\n"+(isInterface ? "public protocol" : "open class") + " " + classSuffix + derivedFrom + " {\n\n"); - - if ( !isInterface ) { - code.append(" public convenience init?( casting object: "+swiftTypeFor( java.lang.Object.class, false, true )+", _ file: StaticString = #file, _ line: Int = #line ) {\n"); - code.append(" self.init( javaObject: nil )\n" ); - code.append(" if !object.validDownCast( toJavaClass: \""+className+"\", file, line ) {\n" ); - code.append(" return nil\n"); - code.append(" }\n"); - code.append(" object.withJavaObject {\n"); - code.append(" self.javaObject = $0\n"); - code.append(" }\n"); - code.append(" }\n\n" ); - } - - classCacheVar = classSuffix+"JNIClass"; - if ( !isInterface ) - code.append( " private static var "+classCacheVar+": jclass?\n\n" ); - - HashMap fieldsSeen = new HashMap(); - findInterfaceMethods( clazz ); - - generateFields( fieldsSeen, isInterface, clazz ); - - if ( !isInterface ) - for ( Class intrface : interfacesSoFar.toArray( new Class[ interfacesSoFar.size() ] ) ) - generateInterfaceFields( fieldsSeen, intrface ); - - - generateConstructors( pathToClass, classSuffix, false ); - - boolean hasSubclassResponsibility = generateMethods( clazz.getDeclaredMethods(), isInterface, fieldsSeen, classSuffix, false ); - - ArrayList responsibles = new ArrayList(); - for ( java.lang.reflect.Method method : clazz.getMethods() ) { - //print( "!!"+method.toString() ); - if ( subclassResponsibilities.containsKey(method.toString()) ) - responsibles.add( method ); - } - - if ( !isInterface ) - addAnyMethodsDeclaredInProtocolsButNotDefined( isInterface, fieldsSeen, classSuffix ); - - code.append("}\n"); - - if ( isInterface ) { - String superProtocol = "JNIObjectForward"; - if ( clazz.getInterfaces().length != 0 ) - superProtocol = classTypeFor( clazz.getInterfaces()[0], false, true )+"Forward"; - code.append( "\nopen class "+classSuffix+"Forward: "+superProtocol+", "+classSuffix+" {\n\n" ); - code.append( " private static var "+classCacheVar+": jclass?\n\n" ); - - findInterfaceMethods( clazz ); - - fieldsSeen = new HashMap(); - generateFields( fieldsSeen, false, clazz ); - - boolean subinterface = clazz.getInterfaces().length == 1 && clazz.getDeclaredMethods().length == 0; - if ( !subinterface ) { - generateMethods( clazz.getMethods(), false, fieldsSeen, classSuffix+"Forward", false ); - addAnyMethodsDeclaredInProtocolsButNotDefined( false, fieldsSeen, classSuffix+"Forward" ); - } - - code.append( "}\n\n\n" ); - } - - if ( isInterface && supportsProxyCallback( clazz ) || isAdapter() || !responsibles.isEmpty() ) - generateCallbackBase( fieldsSeen, responsibles.toArray( new java.lang.reflect.Method[ responsibles.size() ] ) ); - - return true; - } - - int idcount = 0; - - void generateFields( HashMap fieldsSeen, boolean isInterface, Class clazz ) { - for (Field field : clazz.getDeclaredFields()) { - int mods = field.getModifiers(); - - print(field.toString()); - code.append( " /// "+field+"\n\n" ); - - String fieldName = safe(field.getName()); - boolean isFinal = Modifier.isFinal(mods); - boolean isStatic = Modifier.isStatic(mods); - - boolean skipField = (fieldOverride( field, superclazz)) && isStatic || - !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || fieldsSeen.containsKey(fieldName) || - fieldName.equals(classSuffix) || interfaceMethods.containsKey(fieldName+"()") || - isStatic && (Modifier.isProtected(mods) || - superclazz == javax.swing.undo.AbstractUndoableEdit.class || - superclazz != null && superclazz.getSuperclass() == javax.swing.undo.AbstractUndoableEdit.class || - superclazz == javax.swing.plaf.basic.BasicComboBoxRenderer.class || - superclazz == javax.swing.border.TitledBorder.class); - if ( skipField ) - continue; - - fieldsSeen.put(fieldName, true); - Class fieldType = field.getType(); - try { - if ( superclazz != null ) - fieldType = superclazz.getField(field.getName()).getType(); - } - catch ( NoSuchFieldException e ) { - } - -// if ( fieldType.isInterface() && fieldType.isArray() ) -// continue; //// - - boolean arrayType = crashesCompilerOnLinx(fieldType); - if ( arrayType ) - code.append( " #if !os(Linux)\n"); - - String fieldIDVar = safe(field.getName())+"_FieldID"; - if ( ! isInterface ) - code.append( " private static var "+fieldIDVar+": jfieldID?\n\n" ); - - if ( !isStatic ) - fieldIDVar = classSuffix+"."+fieldIDVar; - - code.append( " "+(fieldOverride(field,superclazz)&&!isLost?"override ":"")+(isInterface?"":visibility)+ - (Modifier.isStatic(mods) ? "static " : "")+"var "+fieldName+": "+ - swiftTypeFor(fieldType, true, false) ); - - if ( isInterface ) - code.append((isStatic ? isFinal ?" { get }" : " { get set }" : "")+"\n"); + if ( isInterface ) + code.append((isStatic ? isFinal ?" { get }" : " { get set }" : "")+"\n"); else { - String fieldArgs = "fieldName: \""+field.getName()+"\", fieldType: \""+jniEncoding(field.getType())+"\", fieldCache: &"+fieldIDVar+ - (isStatic? - ", className: \""+pathToClass+"\", classCache: &"+classCacheVar : - ", object: javaObject"); - + String fieldArgs = "fieldName: \""+field.getName()+"\", fieldType: \""+jniEncoding(field.getType())+"\", fieldCache: &"+fieldIDVar+ + (isStatic? + ", className: \""+pathToClass+"\", classCache: &"+classCacheVar : + ", object: javaObject"); + code.append( " {\n" ); code.append( " get {\n" ); if ( !isStatic ) - code.append(" var __locals = [jobject]()\n"); + code.append(" var __locals = [jobject]()\n"); code.append( " let __value = JNIField.Get"+funcType( fieldType, mods )+"Field( "+fieldArgs+(isStatic?"":", locals: &__locals")+" )\n" ); code.append( " return "+decoder( "__value", fieldType )+"\n" ); code.append( " }\n" ); @@ -693,165 +600,174 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl code.append( " }\n" ); } - if ( arrayType ) - code.append( " #endif\n"); - code.append( "\n" ); - } - } - - void generateConstructors( String pathToClass, String classSuffix, boolean isListenerBase ) { - HashMap constructorSeen = new HashMap(); - - for (java.lang.reflect.Constructor _constructor : clazz.getDeclaredConstructors()) { - Constructor constructor = newConstructor( _constructor ); - int mods = constructor.getModifiers(); - - print(constructor.toString()); - code.append( " /// "+constructor.toString()+"\n\n" ); - - String namedSignature = argsFor( constructor, true, true ); - if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || constructorSeen.containsKey(namedSignature) || ambiguousInitialiser( constructor.toString() ) ) - continue; - constructorSeen.put( namedSignature, true ); - - String methodIDVar = "new_MethodID_"+(++idcount); - java.lang.reflect.Constructor overridden = constructorOverride(_constructor, superclazz); - boolean canThrow = constructor.getExceptionTypes().length != 0 && constructor.getParameterCount() != 0 && - (overridden == null || overridden.getExceptionTypes().length != 0); - - boolean unnamedOverride = overridden != null; - if (overridden != null) - if ( argumentNamesDiffer( constructor, newConstructor( overridden ) ) ) - overridden = null; - - boolean arrayType = false; - for ( Parameter param : constructor.getParameters() ) - if ( crashesCompilerOnLinx( param.getType() ) ) - arrayType = true; - - if ( arrayType ) - code.append( " #if !os(Linux)\n"); - - code.append(" private static var "+methodIDVar+": jmethodID?\n\n" ); - - code.append( " public "+/*(overridden != null && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ - "convenience init("+argsFor( constructor, false, true )+")"+(canThrow?" throws":"")+" {\n" ); - code.append( functionHeader( constructor.getParameters(), null, isListenerBase ? 1 : 0 ) ); - - String signature = jniArgs(constructor, ""); - if ( isListenerBase ) { - signature = jniArgs(constructor, "J"); - code.append("\n self.init( javaObject: nil )\n"); - code.append(" __args["+constructor.getParameterCount()+"] = swiftValue()\n\n"); - } - - code.append( " let __object = JNIMethod.NewObject( className: \""+pathToClass+"\", classCache: &"+ - classSuffix+"."+classSuffix+"JNIClass, methodSig: \""+signature+"V\", methodCache: &"+classSuffix+"."+methodIDVar+ - ", args: &__args, locals: "+(constructor.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); - - if ( canThrow ) - addThrowCode( constructor ); - - if ( isListenerBase ) - code.append( " self.javaObject = __object\n" ); - else - code.append( " self.init( javaObject: __object )\n" ); - code.append( " JNI.DeleteLocalRef( __object )\n" ); - code.append( " }\n" ); - - String unnamedSigature = argsFor( constructor, true, false ); - if ( !constructorSeen.containsKey(unnamedSigature) && constructor.getParameters().length != 0 ) { + if ( arrayType ) + code.append( " #endif\n"); + code.append( "\n" ); + } + } - code.append( "\n public "+/*(unnamedOverride && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ - "convenience init("+argsFor( constructor, false, false )+")"+(canThrow?" throws":"")+" {\n" ); + void generateConstructors( String pathToClass, String classSuffix, boolean isListenerBase ) { + HashMap constructorSeen = new HashMap(); - code.append( " "+(canThrow?"try ":"")+"self.init("+passthroughArguments(constructor,null)+" )\n }\n" ); + for (java.lang.reflect.Constructor _constructor : clazz.getDeclaredConstructors()) { + Constructor constructor = newConstructor( _constructor ); + int mods = constructor.getModifiers(); - constructorSeen.put( unnamedSigature, true ); - } + print(constructor.toString()); + code.append( " /// "+constructor.toString()+"\n\n" ); - if ( arrayType ) - code.append( " #endif\n"); - code.append( "\n" ); - } - } + String namedSignature = argsFor( constructor, true, true ); + if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || constructorSeen.containsKey(namedSignature) || ambiguousInitialiser( constructor.toString() ) ) + continue; + constructorSeen.put( namedSignature, true ); - boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, HashMap fieldsSeen, String outputClassName, boolean isListenerBase ) { + String methodIDVar = "new_MethodID_"+(++idcount); + java.lang.reflect.Constructor overridden = constructorOverride(_constructor, superclazz); + boolean canThrow = constructor.getExceptionTypes().length != 0 && constructor.getParameterCount() != 0 && + (overridden == null || overridden.getExceptionTypes().length != 0); - HashMap methodsSeen = new HashMap(); - boolean hasSubclassResponsibility = false; + boolean unnamedOverride = overridden != null; + if (overridden != null) + if ( argumentNamesDiffer( constructor, newConstructor( overridden ) ) ) + overridden = null; - for (java.lang.reflect.Method _method : methods ) { - Method method = newMethod( _method ); - int mods = method.getModifiers(); - boolean isStatic = Modifier.isStatic(mods); - String methodIdent = method.toString(); + boolean arrayType = false; + for ( Parameter param : constructor.getParameters() ) + if ( crashesCompilerOnLinx( param.getType() ) ) + arrayType = true; + + if ( arrayType ) + code.append( " #if !os(Linux)\n"); + + code.append(" private static var "+methodIDVar+": jmethodID?\n\n" ); + + code.append( " public "+/*(overridden != null && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ + "convenience init("+argsFor( constructor, false, true )+")"+(canThrow?" throws":"")+" {\n" ); + code.append( functionHeader( constructor.getParameters(), null, isListenerBase ? 1 : 0 ) ); + + String signature = jniArgs(constructor, "", ""); + if ( isListenerBase ) { + signature = jniArgs(constructor, "", "J"); + code.append("\n self.init( javaObject: nil )\n"); + code.append(" __args["+constructor.getParameterCount()+"] = __local!.swiftValue()\n\n"); + } - print(method.toString()); - code.append( " /// "+method+"\n\n" ); + code.append( " let __object = JNIMethod.NewObject( className: \""+pathToClass+"\", classCache: &"+ + classSuffix+"."+classSuffix+"JNIClass, methodSig: \""+signature+"V\", methodCache: &"+classSuffix+"."+methodIDVar+ + ", args: &__args, locals: "+(constructor.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); - if ( subclassResponsibilities.containsKey(methodIdent) ) - hasSubclassResponsibility = true; + if ( canThrow ) + addThrowCode( constructor ); - java.lang.reflect.Method overridden = funcOverride(method.method, superclazz); - if ( overridden != null && Modifier.isPrivate(overridden.getModifiers()) ) - overridden = null; + if ( isListenerBase ) + code.append( " self.javaObject = __object\n" ); + else + code.append( " self.init( javaObject: __object )\n" ); + code.append( " JNI.DeleteLocalRef( __object )\n" ); + code.append( " }\n" ); - boolean unnamedOverride = overridden != null; - if ( argumentNamesDiffer(method, newMethod(overridden)) ) - overridden = null; + String unnamedSigature = argsFor( constructor, true, false ); + if ( !constructorSeen.containsKey(unnamedSigature) && constructor.getParameters().length != 0 ) { - unnamedOverride = overridden != null; + code.append( "\n public "+/*(unnamedOverride && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ + "convenience init("+argsFor( constructor, false, false )+")"+(canThrow?" throws":"")+" {\n" ); - String methodName = method.getName(); - boolean fieldExists = fieldsSeen.containsKey(safe(methodName)) && method.getParameterCount() == 0; - boolean skipMethod = overridden != null && !isStatic && !isListenerBase || !Modifier.isPublic(mods) && !Modifier.isProtected(mods) - || isInterface && (dontEnforceProtocol(clazz) - || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType())) - || methodName.startsWith("lambda$") || fieldExists; + code.append( " "+(canThrow?"try ":"")+"self.init("+passthroughArguments(constructor,null)+" )\n }\n" ); - if ( skipMethod ) - continue; + constructorSeen.put( unnamedSigature, true ); + } - String namedSignature = swiftSignatureFor( method, isProtocol, true, true); - if ( methodsSeen.containsKey(namedSignature) ) - continue; - methodsSeen.put(namedSignature, true ); + if ( arrayType ) + code.append( " #endif\n"); + code.append( "\n" ); + } + } - Class returnType = method.getReturnType(); - boolean arrayType = crashesCompilerOnLinx( method ); - boolean canThrow = method.getExceptionTypes().length != 0; - String unnamedSignature = swiftSignatureFor( method, isProtocol, true, false); - boolean createsNameless = !methodsSeen.containsKey(unnamedSignature) && !fieldExists && - !(isInterface && lostType(returnType)) && method.getParameterCount() != 0; - - if ( arrayType ) - code.append( " #if !os(Linux)\n"); + boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, HashMap fieldsSeen, String outputClassName, boolean isListenerBase ) { + + HashMap methodsSeen = new HashMap(); + boolean hasSubclassResponsibility = false; + + for (java.lang.reflect.Method _method : methods ) { + Method method = newMethod( _method ); + int mods = method.getModifiers(); + boolean isStatic = Modifier.isStatic(mods); + String methodIdent = method.toString(); + + print(method.toString()); + code.append( " /// "+method+"\n\n" ); + + if ( subclassResponsibilities.containsKey(methodIdent) ) + hasSubclassResponsibility = true; + + java.lang.reflect.Method overridden = funcOverride(method.method, superclazz); + if ( overridden != null && Modifier.isPrivate(overridden.getModifiers()) ) + overridden = null; + + boolean unnamedOverride = overridden != null; + if ( argumentNamesDiffer(method, newMethod(overridden)) ) + overridden = null; + + unnamedOverride = overridden != null; + + String methodName = method.getName(); + //if ( methodName.equals("clone") ) continue; + boolean fieldExists = fieldsSeen.containsKey(safe(methodName)) && method.getParameterCount() == 0; + boolean skipMethod = overridden != null && !isStatic && !isListenerBase + || !Modifier.isPublic(mods) && !Modifier.isProtected(mods) + || isInterface && (dontEnforceProtocol(clazz) + || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType()) && clazz != java.lang.Runnable.class) + || methodName.startsWith("lambda$") || fieldExists; + + // argument names differ? + if ( skipMethod && !(""+method).equals("public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException") + &&!(""+method).equals("public java.util.Set java.util.HashMap.keySet()") ) { + print(methodName + (overridden != null && !isStatic && !isListenerBase) + (!Modifier.isPublic(mods) && !Modifier.isProtected(mods)) + + (isInterface && (dontEnforceProtocol(clazz) + || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType()))) + + methodName.startsWith("lambda$") + fieldExists); + continue; + } + + String namedSignature = swiftSignatureFor( method, isProtocol, true, true); + if ( methodsSeen.containsKey(namedSignature) ) + continue; + methodsSeen.put(namedSignature, true ); + + Class returnType = method.getReturnType(); + boolean arrayType = crashesCompilerOnLinx( method ); + boolean canThrow = method.getExceptionTypes().length != 0; + String unnamedSignature = swiftSignatureFor( method, isProtocol, true, false); + boolean createsNameless = !methodsSeen.containsKey(unnamedSignature) && !fieldExists && + !(isInterface && lostType(returnType)) && method.getParameterCount() != 0; + + if ( arrayType ) + code.append( " #if !os(Linux)\n"); - if ( isProtocol && isStatic ) - code.append(" //"); + if ( isProtocol && isStatic ) + code.append(" //"); - String methodKey = methodKey(method); - Method interfaceMethod = interfaceMethods.get(methodKey); - interfaceMethods.remove(methodKey); + String methodKey = methodKey(method); + Method interfaceMethod = interfaceMethods.get(methodKey); + interfaceMethods.remove(methodKey); - boolean createBody = !isListenerBase || !isInterface; - boolean notVoid = notVoid(returnType); + boolean createBody = !isListenerBase || !isInterface; + boolean notVoid = notVoid(returnType); - if ( !(isProtocol && argumentsOfProtocolRenamed( clazz )) ) { - String methodIDVar = methodName+"_MethodID_"+(++idcount), methodIDVarRef = methodIDVar; - if ( !isStatic ) - methodIDVarRef = outputClassName+"."+methodIDVarRef; + if ( !(isProtocol && argumentsOfProtocolRenamed( clazz )) ) { + String methodIDVar = methodName+"_MethodID_"+(++idcount), methodIDVarRef = methodIDVar; + if ( !isStatic ) + methodIDVarRef = outputClassName+"."+methodIDVarRef; - if ( !isProtocol && (!isListenerBase || !isInterface) ) - code.append(" private static var "+methodIDVar+": jmethodID?\n\n" ); + if ( !isProtocol && (!isListenerBase || !isInterface) ) + code.append(" private static var "+methodIDVar+": jmethodID?\n\n" ); code.append(" " + (overridden != null && !isLost && !createBody && !(isListenerBase && isProtocol) - || isAdapter() && isListenerBase ? "override " : "") - + swiftSignatureFor(method, isProtocol, false, true, interfaceMethod)); + || isAdapter() && isListenerBase ? "override " : "") + + swiftSignatureFor(method, isProtocol, false, true, interfaceMethod)); - if ( isListenerBase ) - code.append( " /**/" ); + if ( isListenerBase ) + code.append( " /**/" ); if (isProtocol) code.append("\n"); @@ -865,388 +781,397 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, if ( notVoid ) code.append( "let __return = " ); - String methodArgs = - (Modifier.isStatic(mods)? - "className: \""+pathToClass+"\", classCache: &"+classCacheVar : - "object: javaObject")+ - ", methodName: \""+methodName+"\", methodSig: \""+jniSignature(method)+"\", methodCache: &"+methodIDVarRef; + String methodArgs = + (Modifier.isStatic(mods)? + "className: \""+pathToClass+"\", classCache: &"+classCacheVar : + "object: javaObject")+ + ", methodName: \""+methodName+"\", methodSig: \""+jniSignature(method, "", "")+"\", methodCache: &"+methodIDVarRef; - code.append( "JNIMethod.Call"+funcType( returnType, mods )+"Method( "+methodArgs+ - ", args: &__args, locals: "+(method.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); + code.append( "JNIMethod.Call"+funcType( returnType, mods )+"Method( "+methodArgs+ + ", args: &__args, locals: "+(method.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); - if ( isObjectType( returnType ) ) + if ( isObjectType( returnType ) ) // || returnType.isArray() && !returnType.getComponentType().isPrimitive() ) code.append( " defer { JNI.DeleteLocalRef( __return ) }\n" ); - if ( canThrow ) - addThrowCode( method ); + if ( canThrow ) + addThrowCode( method ); - if ( notVoid ) - code.append(" return "+decoder( "__return", returnType)+"\n"); + if ( notVoid ) + code.append(" return "+decoder( "__return", returnType)+"\n"); + } + else if ( notVoid(returnType) ) { + String passthrough = ""; + for ( Parameter param : method.getParameters() ) + passthrough += (passthrough==""?" ":", ")+safe(param.getName())+": _"+safe(param.getName()); + code.append(" return "+ (clazz.isInterface() ? + returnType.isPrimitive() ? returnType.getName() == "boolean" ? "false" : "0" : "nil" : + "super."+methodName+"("+passthrough+" )")+"\n"); } - else if ( notVoid(returnType) ) { - String passthrough = ""; - for ( Parameter param : method.getParameters() ) - passthrough += (passthrough==""?" ":", ")+safe(param.getName())+": _"+safe(param.getName()); - code.append(" return "+ (clazz.isInterface() ? - returnType.isPrimitive() ? returnType.getName() == "boolean" ? "false" : "0" : "nil" : - "super."+methodName+"("+passthrough+" )")+"\n"); - } code.append(" }\n\n"); } - } - - if ( createsNameless ) { - - if ( isProtocol && isStatic ) - code.append("//"); - - code.append(" " + (unnamedOverride && !isLost && !createBody || isAdapter() && isListenerBase ? "override " : "") - + swiftSignatureFor(method, isProtocol, false, false, interfaceMethod)); - - if ( isListenerBase ) - code.append( " /**/" ); - - if (isProtocol) - code.append("\n"); - else { - code.append(" {\n"); - code.append(" "+(notVoid?"return ":"") + (canThrow?"try ":"") + - safe(method.getName()) + "("+passthroughArguments(method, interfaceMethod)+" )\n"); - code.append(" }\n" ); - } - } - - if ( arrayType ) - code.append( " #endif\n"); - code.append( "\n" ); - - methodsSeen.put( unnamedSignature, true ); - } - - return hasSubclassResponsibility; - } - - void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect.Method responsibles[] ) throws IOException { - java.lang.reflect.Method methods[] = responsibles.length != 0 ? responsibles : clazz.getMethods(); - ArrayList methodsCallingBack = new ArrayList(); - - for (int i = 0; i < methods.length; i++) { - Method method = newMethod( methods[i] ); - if ( skipCallbackMethod( method ) ) - continue; - if ( crashesCompilerOnLinx( method ) ) - code.append("#if !os(Linux)\n"); - - methodsCallingBack.add( method.method ); - - code.append("private typealias " + jniName(method, i) + "_type = @convention(c) " - + jniDecl(method, null) + "\n\n"); - - code.append("private func " + jniName(method, i) + jniDecl(method, "_ ") + " {\n"); - String passthrough = ""; - for (Parameter param : method.getParameters()) - passthrough += (passthrough == ""?" ":", ") + //safe(param.getName())+": " + - decoder( safe(param.getName()), param.getType() );//+(!p.getType().isPrimitive()?"!":""); - String call = classSuffix + "Base.swiftObject( jniEnv: __env, javaObject: __this )." - + method.getName() + "(" + passthrough + " )"; - if ( method.getExceptionTypes().length != 0 ) - call = "try! " + call; - - Class returnType = method.getReturnType(); - if ( notVoid(returnType) ) - call = "let __return = "+call; - code.append(" " + call + "\n"); - if ( notVoid(returnType) ) - code.append(" return "+(!isObjectType( returnType ) || true ? //returnType.isPrimitive() || returnType == java.lang.String.class ? - encoder("__return", returnType, "nil") + encodeSuffix(returnType) : - "/*JNI.api.NewWeakGlobalRef( JNI.env,*/ __return?.takeJavaObject /*)*/")+"\n"); - - code.append("}\n"); - if ( crashesCompilerOnLinx( method ) ) - code.append("#endif\n"); - code.append("\n"); - } - - code.append("open class " + classSuffix + "Base: "+(isInterface?"JNIObjectProxy, ":"") + classSuffix + " {\n\n"); - - if ( !isInterface ) - code.append( " private static var "+classSuffix+"BaseJNIClass: jclass?\n" ); - - code.append(" private static let proxyClass: jclass = {\n"); - code.append(" var natives = [JNINativeMethod]()\n\n"); - - for (int i = 0; i < methods.length; i++) { - Method method = newMethod( methods[i] ); - if ( skipCallbackMethod( method ) ) - continue; - if ( crashesCompilerOnLinx( method ) ) - code.append(" #if !os(Linux)\n"); - - String jniName = jniName(method, i); - code.append(" let " + jniName + "_thunk: " + jniName + "_type = " + jniName + "\n"); - code.append(" natives.append( JNINativeMethod( name: strdup(\"__" + method.getName() + "\")" - + ", signature: strdup(\"" + jniSignature(method) + "\"), fnPtr: unsafeBitCast( " + jniName - + "_thunk, to: UnsafeMutableRawPointer.self ) ) )\n"); - - if ( crashesCompilerOnLinx( method ) ) - code.append(" #endif\n"); - code.append("\n"); - } - - String proxyClass = "org/genie/" + currentFramework + "/" + classSuffix + "Proxy"; - code.append(" let clazz = JNI.FindClass( \"" + proxyClass + "\" )\n"); - - code.append(" withUnsafePointer(to: &natives[0]) {\n"); - code.append(" nativesPtr in\n"); - code.append(" if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) {\n"); - code.append(" JNI.report( \"Unable to register java natives\" )\n"); - code.append(" }\n"); - code.append(" }\n\n"); - code.append(" return JNI.api.NewGlobalRef( JNI.env, clazz )!\n"); - code.append(" }()\n\n"); - - if ( isInterface ) { - code.append(" public convenience init() {\n"); - code.append(" self.init( javaObject: nil )\n"); -// else { -// code.append(" let object = "+classSuffix+"Base.new()\n"); -// code.append(" self.init( javaObject: object?.javaObject )\n"); - code.append(" }\n\n"); - } - - if ( !isInterface ) { - code.append(" override open var javaObject: jobject? {\n"); - code.append(" get {\n"); - code.append(" return super.javaObject\n"); - code.append(" }\n"); - code.append(" set(newValue) {\n"); - code.append(" super.javaObject = newValue\n"); - code.append(" _ = "+classSuffix+"Base.proxyClass\n"); - code.append(" updateSwiftObject()\n"); - code.append(" }\n }\n\n"); - } - - code.append(" public required init( javaObject: jobject? ) {\n"); - code.append(" super.init( javaObject: javaObject )\n"); - if ( isInterface ) { - code.append(" createProxy( className: \""+proxyClass+"\", classObject: "+classSuffix+"Base.proxyClass )\n"); - } - code.append(" }\n\n"); - code.append(" static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> " + classSuffix + "Base {\n"); - code.append(" return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: " + classSuffix + "Base.self )\n }\n\n"); - - if ( !isInterface ) { - generateConstructors( proxyClass, classSuffix+"Base", true ); - methods = methodsCallingBack.toArray( new java.lang.reflect.Method[ methodsCallingBack.size() ] ); - } - //else - if ( isInterface || clazz == javax.swing.text.PlainDocument.class ) - generateMethods(methodsCallingBack.toArray( new java.lang.reflect.Method[ methodsCallingBack.size() ] ), false, fieldsSeen, classSuffix + "Base", true); - - code.append("}\n"); - - generateJavaCallbackStub( methods ); - } - - void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOException { - StringBuilder java = new StringBuilder(); - - java.append("\n/// "+clazz+" ///\n\n"); + } + + if ( createsNameless && !isProtocol ) { + + if ( isProtocol && isStatic ) + code.append("//"); + + code.append(" " + (unnamedOverride && !isLost && !createBody || isAdapter() && isListenerBase ? "override " : "") + + swiftSignatureFor(method, isProtocol, false, false, interfaceMethod)); + + if ( isListenerBase ) + code.append( " /**/" ); + + if (isProtocol) + code.append("\n"); + else { + code.append(" {\n"); + code.append(" "+(notVoid?"return ":"") + (canThrow?"try ":"") + + safe(method.getName()) + "("+passthroughArguments(method, interfaceMethod)+" )\n"); + code.append(" }\n" ); + } + } + + if ( arrayType ) + code.append( " #endif\n"); + code.append( "\n" ); + + methodsSeen.put( unnamedSignature, true ); + } + + return hasSubclassResponsibility; + } + + void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect.Method responsibles[] ) throws IOException { + java.lang.reflect.Method methods[] = responsibles.length != 0 ? responsibles : clazz.getMethods(); + ArrayList methodsCallingBack = new ArrayList(); + + for (int i = 0; i < methods.length; i++) { + Method method = newMethod( methods[i] ); + if ( skipCallbackMethod( method ) ) + continue; + if ( crashesCompilerOnLinx( method ) ) + code.append("#if !os(Linux)\n"); + + methodsCallingBack.add( method.method ); + + code.append("private typealias " + jniName(method, i) + "_type = @convention(c) " + + jniDecl(method, null) + "\n\n"); + + code.append("private func " + jniName(method, i) + jniDecl(method, "_ ") + " {\n"); + String passthrough = ""; + for (Parameter param : method.getParameters()) + passthrough += (passthrough == ""?" ":", ") + safe(param.getName())+": " +///// + decoder( safe(param.getName()), param.getType() );//+(!p.getType().isPrimitive()?"!":""); + String call = classSuffix + "Local_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject )." + + method.getName() + "(" + passthrough + " )"; + if ( method.getExceptionTypes().length != 0 ) + call = "try! " + call; + + Class returnType = method.getReturnType(); + if ( notVoid(returnType) ) + call = "let __return = "+call; + code.append(" JNI.inNative = true;\n " + call + "\n JNI.inNative = false;\n"); + if ( notVoid(returnType) ) { + code.append(" var locals = [jobject]()\n"); + code.append(" return JNI.check( "+(!isObjectType( returnType ) || true ? //returnType.isPrimitive() || returnType == java.lang.String.class ? + encoder("__return", returnType, "&locals") + encodeSuffix(returnType) : + "/*JNI.api.NewWeakGlobalRef( JNI.env,*/ __return?.takeJavaObject /*)*/")+", &locals, removeLast: true )\n"); + } + + code.append("}\n"); + if ( crashesCompilerOnLinx( method ) ) + code.append("#endif\n"); + code.append("\n"); + } + + code.append("fileprivate class " + classSuffix + "Local_: JNI"+(isInterface?"Local":"Object")+ + "Proxy<"+classSuffix+(isInterface?", Any":"")+"> {\n\n"); + + code.append(" fileprivate static let _proxyClass: jclass = {\n"); + code.append(" var natives = [JNINativeMethod]()\n\n"); + + for (int i = 0; i < methods.length; i++) { + Method method = newMethod( methods[i] ); + if ( skipCallbackMethod( method ) ) + continue; + if ( crashesCompilerOnLinx( method ) ) + code.append(" #if !os(Linux)\n"); + + String jniName = jniName(method, i); + code.append(" let " + jniName + "_thunk: " + jniName + "_type = " + jniName + "\n"); + code.append(" natives.append( JNINativeMethod( name: strdup(\"__" + method.getName() + "\")" + + ", signature: strdup(\"" + jniSignature(method, "J", "") + "\"), fnPtr: unsafeBitCast( " + jniName + + "_thunk, to: UnsafeMutableRawPointer.self ) ) )\n"); + + if ( crashesCompilerOnLinx( method ) ) + code.append(" #endif\n"); + code.append("\n"); + } + + String jniName = classSuffix + "__finalize"; + code.append(" natives.append( JNINativeMethod( name: strdup(\"__finalize\"), signature: strdup(\"(J)V\")" + + ", fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) )\n\n"); + + String proxyClass = "org/swiftjava/" + currentFramework + "/" + classSuffix + "Proxy"; + code.append(" let clazz = JNI.FindClass( proxyClassName() )\n"); + + code.append(" withUnsafePointer(to: &natives[0]) {\n"); + code.append(" nativesPtr in\n"); + code.append(" if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) {\n"); + code.append(" JNI.report( \"Unable to register java natives\" )\n"); + code.append(" }\n"); + code.append(" }\n\n"); + code.append(" defer { JNI.DeleteLocalRef( clazz ) }\n"); + code.append(" return JNI.api.NewGlobalRef( JNI.env, clazz )!\n"); + code.append(" }()\n\n"); + + code.append(" override open class func proxyClassName() -> String { return \"" + proxyClass + "\" }\n"); + code.append(" override open class func proxyClass() -> jclass? { return _proxyClass }\n\n}\n\n"); + + if ( isInterface ) { + code.append("extension "+classSuffix+" {\n\n"); + code.append(" public func localJavaObject( _ locals: UnsafeMutablePointer<[jobject]> ) -> jobject? {\n"); + code.append(" return "+classSuffix+"Local_( owned: self, proto: self ).localJavaObject( locals )\n"); + code.append(" }\n\n}\n\n"); + } + + code.append("open class " + classSuffix + "Base: " + (isInterface&&false?"JNIObject, ":"") + classSuffix + " {\n\n"); + + if ( !isInterface ) { + code.append(" private static var "+classSuffix+"BaseJNIClass: jclass? = "+classSuffix+"Local_.proxyClass()\n\n" ); + code.append(" private lazy var __local: "+classSuffix+"Local_? = "+classSuffix+"Local_( owned: self, proto: self )\n\n"); + + code.append(" override open func clearLocal() {\n __local = nil\n }\n\n"); + + code.append(" open func inherit( _ parent: JNIObjectProtocol ) {\n"); + code.append(" parent.withJavaObject {\n"); + code.append(" self.javaObject = $0\n"); + code.append(" self.__local?.takeOwnership(javaObject: $0)\n"); + code.append(" }\n"); + code.append(" }\n\n"); + } + else + code.append(" public init() {}\n\n"); + + if ( !isInterface ) { + generateConstructors( proxyClass, classSuffix+"Base", true ); + methods = methodsCallingBack.toArray( new java.lang.reflect.Method[ methodsCallingBack.size() ] ); + } + ////else + if ( isInterface || clazz == javax.swing.text.PlainDocument.class ) + generateMethods(methodsCallingBack.toArray( new java.lang.reflect.Method[ methodsCallingBack.size() ] ), false, fieldsSeen, classSuffix + "Base", true); + + code.append("}\n"); + + generateJavaCallbackStub( methods ); + } + + void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOException { + StringBuilder java = new StringBuilder(); + + java.append("\n/// "+clazz+" ///\n\n"); java.append("package "+organisation+currentFramework+";\n\n"+ "@SuppressWarnings(\"JniMissingFunction\")\n"+ "public class "+classSuffix+ "Proxy "+ - (isInterface?"implements ":"extends ")+className.replace('$', '.')+" {\n\n"); - - java.append(" long swiftObject;\n\n"); - - if ( isInterface ) { - java.append(" "+classSuffix+"Proxy( long swiftObject ) {\n" ); - java.append(" this.swiftObject = swiftObject;\n }\n\n" ); - } - else { - for ( java.lang.reflect.Constructor _constructor : clazz.getDeclaredConstructors() ) { - Constructor constructor = newConstructor( _constructor ); - java.append(" /// "+constructor+"\n\n"); - int mods = constructor.getModifiers(); - if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) ) - continue; - - String args = longJavaArgs(constructor); - java.append(" "+classSuffix+"Proxy("+args+(args==""?" ":", ")+"long swiftObject ) {\n" ); - - args = ""; - for (Parameter param : constructor.getParameters()) - args += (args == ""?" ":", ")+safe(param.getName()); - java.append(" super("+args+" );\n"); - java.append(" this.swiftObject = swiftObject;\n }\n\n"); - } - } - - for (int i = 0; i < methods.length; i++) { - Method method = newMethod( methods[i] ); - java.append(" /// "+method+"\n\n"); - String methodName = safe(method.getName()); - Class returnType = method.getReturnType(); -// if ( skipCallbackMethod( method ) ) -// continue; - - String args = longJavaArgs(method); - String returnTypeName = longJavaType( returnType ); - java.append(" public native "+returnTypeName+" __"+methodName+"("+args+");\n\n"); - - boolean notVoid = notVoid(returnType); - String retrn = notVoid ? "return " : ""; - String assign = notVoid ? returnTypeName + " __return = " : ""; - - String enteredName = "entered_"+methodName+"_"+i; - if ( !isInterface ) - java.append(" boolean "+enteredName+";\n\n"); - - String throwz = ""; - for ( Class type : method.getExceptionTypes() ) - throwz += (throwz==""?" throws ":", ")+type.getName(); - java.append(" public "+returnTypeName+" "+methodName+"("+args+")"+throwz+" {\n"); - - args = ""; - for (Parameter param : method.getParameters()) - args += (args == ""?" ":", ")+safe(param.getName()); - - if ( !isInterface ) { - java.append(" if ( !"+enteredName+" ) {\n"); - java.append(" "+enteredName+" = true;\n"); - java.append(" "+assign+"__"+methodName+"("+args+" );\n"); - java.append(" "+enteredName+" = false;\n"); - if ( notVoid ) - java.append(" return __return;\n"); - java.append(" }\n"); - java.append(" else\n"); - java.append(" "+retrn+"super."+method.getName()+"("+args+" );\n"); - } - else - java.append(" "+retrn+"__"+method.getName()+"("+args+" );\n"); - java.append(" }\n\n"); - } - - java.append("}\n"); - - String dest = proxySourcePath+currentFramework; - new File( dest ).mkdirs(); - String javaSource = dest+"/"+classSuffix+"Proxy.java"; - FileOutputStream out = new FileOutputStream( javaSource ); - out.write(java.toString().getBytes("UTF-8") ); - out.close(); - print("Wrote: "+javaSource); - } + (isInterface?"implements ":"extends ")+className.replace('$', '.')+" {\n\n"); + + java.append(" long __swiftObject;\n\n"); + + if ( isInterface ) { + java.append(" "+classSuffix+"Proxy( long __swiftObject ) {\n" ); + java.append(" this.__swiftObject = __swiftObject;\n }\n\n" ); + } + else { + for ( java.lang.reflect.Constructor _constructor : clazz.getDeclaredConstructors() ) { + Constructor constructor = newConstructor( _constructor ); + java.append(" /// "+constructor+"\n\n"); + int mods = constructor.getModifiers(); + if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) ) + continue; + + String args = longJavaArgs(constructor); + java.append(" "+classSuffix+"Proxy("+args+(args==""?" ":", ")+"long __swiftObject ) {\n" ); + + args = ""; + for (Parameter param : constructor.getParameters()) + args += (args == ""?" ":", ")+safe(param.getName()); + java.append(" super("+args+" );\n"); + java.append(" this.__swiftObject = __swiftObject;\n }\n\n"); + } + } + + for (int i = 0; i < methods.length; i++) { + Method method = newMethod( methods[i] ); + java.append(" /// "+method+"\n\n"); + String methodName = safe(method.getName()); + Class returnType = method.getReturnType(); +// if ( skipCallbackMethod( method ) ) +// continue; + + String args = longJavaArgs(method); + String argsSwift = " long __swiftObject"+(args==""?" ":",")+args; + String returnTypeName = longJavaType( returnType ); + java.append(" public native "+returnTypeName+" __"+methodName+"("+argsSwift+");\n\n"); + + boolean notVoid = notVoid(returnType); + String retrn = notVoid ? "return " : ""; + String assign = notVoid ? returnTypeName + " __return = " : ""; + + String enteredName = "entered_"+methodName+"_"+i; + if ( !isInterface ) + java.append(" boolean "+enteredName+";\n\n"); + + String throwz = ""; + for ( Class type : method.getExceptionTypes() ) + throwz += (throwz==""?" throws ":", ")+type.getName(); + java.append(" public "+returnTypeName+" "+methodName+"("+args+")"+throwz+" {\n"); + + args = ""; + for (Parameter param : method.getParameters()) + args += (args == ""?" ":", ")+safe(param.getName()); + argsSwift = " __swiftObject"+(args==""?" ":",")+args; + + if ( !isInterface ) { + java.append(" if ( !"+enteredName+" ) {\n"); + java.append(" "+enteredName+" = true;\n"); + java.append(" "+assign+"__"+methodName+"("+argsSwift+");\n"); + java.append(" "+enteredName+" = false;\n"); + if ( notVoid ) + java.append(" return __return;\n"); + java.append(" }\n"); + java.append(" else\n"); + java.append(" "+retrn+"super."+method.getName()+"("+args+" );\n"); + } + else + java.append(" "+retrn+"__"+method.getName()+"("+argsSwift+" );\n"); + java.append(" }\n\n"); + } + + java.append( + " public native void __finalize( long __swiftObject );\n\n" + + " public void finalize() {\n" + + " __finalize( __swiftObject );\n" + + " }\n\n}\n"); + + String dest = proxySourcePath+currentFramework; + new File( dest ).mkdirs(); + String javaSource = dest+"/"+classSuffix+"Proxy.java"; + FileOutputStream out = new FileOutputStream( javaSource ); + out.write(java.toString().getBytes("UTF-8") ); + out.close(); + print("Wrote: "+javaSource); + } void generateInterfaceFields( HashMap fieldsSeen, Class intrface ) { - generateFields( fieldsSeen, isInterface, intrface ); - for ( Class secondLevel : intrface.getInterfaces() ) - generateInterfaceFields( fieldsSeen, secondLevel ); + generateFields( fieldsSeen, isInterface, intrface ); + for ( Class secondLevel : intrface.getInterfaces() ) + generateInterfaceFields( fieldsSeen, secondLevel ); } String longJavaType( Class type ) { - return type.isArray() ? longJavaType( type.getComponentType() )+"[]" : type.getName().replace('$', '.'); - } - - String longJavaArgs( Executable executable ) { - String args = ""; - for (Parameter param : executable.getParameters()) { - String javaType = longJavaType( param.getType() ); -// Class type = ; -// String subs = ""; -// while ( type.isArray() ) { -// type = type.getComponentType(); -// subs += "[]"; -// javaType = type.getName()+subs; -// } - args += (args == ""?" ":", ")+javaType+" "+safe(param.getName()); - } - return args == "" ? "" : args + " "; - } - - boolean interfacesChangingReturnTypeInSubclass( Class intrface ) { - return /*intrface == java.util.stream.BaseStream.class - || intrface == java.util.concurrent.CompletionStage.class - ||*/ intrface == java.util.SortedSet.class - || intrface == java.util.Iterator.class - || intrface == java.util.concurrent.BlockingQueue.class - || intrface == java.util.NavigableSet.class - || intrface == java.util.concurrent.locks.ReadWriteLock.class - || classPrefix(intrface.getName()).equals("java_util") && intrface.getName().endsWith("Map"); - } + return type.isArray() ? longJavaType( type.getComponentType() )+"[]" : type.getName().replace('$', '.'); + } + + String longJavaArgs( Executable executable ) { + String args = ""; + for (Parameter param : executable.getParameters()) { + String javaType = longJavaType( param.getType() ); +// Class type = ; +// String subs = ""; +// while ( type.isArray() ) { +// type = type.getComponentType(); +// subs += "[]"; +// javaType = type.getName()+subs; +// } + args += (args == ""?" ":", ")+javaType+" "+safe(param.getName()); + } + return args == "" ? "" : args + " "; + } + + boolean interfacesChangingReturnTypeInSubclass( Class intrface ) { + return /*intrface == java.util.stream.BaseStream.class + || intrface == java.util.concurrent.CompletionStage.class + ||*/ intrface == java.util.SortedSet.class + || intrface == java.util.Iterator.class + || intrface == java.util.concurrent.BlockingQueue.class + || intrface == java.util.NavigableSet.class + || intrface == java.util.concurrent.locks.ReadWriteLock.class + || classPrefix(intrface.getName()).equals("java_util") && intrface.getName().endsWith("Map"); + } boolean dontEnforceProtocol( Class clazz ) { - return clazz == java.lang.Iterable.class; + return clazz == java.lang.Iterable.class; } boolean argumentsOfProtocolRenamed( Class clazz ) { - return false; + return false; } boolean awkwardMethodInProtocol( Method method ) { - return false; + return false; } boolean ambiguousInitialiser( String signature ) { - return signature.equals("public java.awt.Dialog(java.awt.Window)") - || signature.equals("public java.awt.Window(java.awt.Frame)") //// crashes compiler on Linux - || signature.equals("public javax.swing.JDialog(java.awt.Window)") - || signature.equals("public javax.swing.JWindow(java.awt.Window)") - || signature.equals("public javax.swing.JDialog(java.awt.Window,java.lang.String)"); - } - - boolean redundantConformance(Class prospectiveInterface, Class interfaces[]) { - boolean prospectiveUnclassed = isUnclassed(prospectiveInterface); - for (Class intrface : interfaces) - if ( prospectiveInterface == intrface || prospectiveUnclassed && isUnclassed(intrface) || - redundantConformance(prospectiveInterface, intrface.getInterfaces())) - return true; - return false; - } + return signature.equals("public java.awt.Dialog(java.awt.Window)") + || signature.equals("public java.awt.Window(java.awt.Frame)") //// crashes compiler on Linux + || signature.equals("public javax.swing.JDialog(java.awt.Window)") + || signature.equals("public javax.swing.JWindow(java.awt.Window)") + || signature.equals("public javax.swing.JDialog(java.awt.Window,java.lang.String)"); + } + + boolean redundantConformance(Class prospectiveInterface, Class interfaces[]) { + boolean prospectiveUnclassed = isUnclassed(prospectiveInterface); + for (Class intrface : interfaces) + if ( prospectiveInterface == intrface || prospectiveUnclassed && isUnclassed(intrface) || + redundantConformance(prospectiveInterface, intrface.getInterfaces())) + return true; + return false; + } boolean skipCallbackMethod( Method method ) { - return awkwardMethodInProtocol( method ) || Modifier.isFinal(method.getModifiers()) - || !isInterface && !subclassResponsibilities.containsKey(method.toString()) && !isAdapter(); + return awkwardMethodInProtocol( method ) || Modifier.isFinal(method.getModifiers()) + || !isInterface && !subclassResponsibilities.containsKey(method.toString()) && !isAdapter(); } - HashMap interfaceMethods = new HashMap(); + HashMap interfaceMethods = new HashMap(); void findInterfaceMethods( Class clazz ) { - for ( Class intrface : clazz.getInterfaces() ) { - for ( java.lang.reflect.Method method : intrface.getMethods() ) - interfaceMethods.put( methodKey( newMethod( method ) ), newMethod( method ) ); - findInterfaceMethods( intrface ); - } + for ( Class intrface : clazz.getInterfaces() ) { + for ( java.lang.reflect.Method method : intrface.getMethods() ) + interfaceMethods.put( methodKey( newMethod( method ) ), newMethod( method ) ); + findInterfaceMethods( intrface ); + } } String methodKey( Method method ) { - return method.getName()+jniArgs(method, ""); + return method.getName()+jniArgs(method, "", ""); } void addAnyMethodsDeclaredInProtocolsButNotDefined( boolean isProtocol, HashMap fieldsSeen, String outputClassName ) { - java.util.Collection inProtocolsButNotDeclared = interfaceMethods.values(); - if ( inProtocolsButNotDeclared.size() != 0 ) { - code.append( " /// In declared protocol but not defined.. ///\n\n" ); - Method missingMethods0[] = inProtocolsButNotDeclared.toArray( new Method[inProtocolsButNotDeclared.size()] ); - java.lang.reflect.Method missingMethods[] = new java.lang.reflect.Method[inProtocolsButNotDeclared.size()]; - for ( int i=0 ; i< missingMethods0.length ; i++ ) - missingMethods[i] = missingMethods0[i].method; - generateMethods( missingMethods, isProtocol, fieldsSeen, outputClassName, false ); - } - } + java.util.Collection inProtocolsButNotDeclared = interfaceMethods.values(); + if ( inProtocolsButNotDeclared.size() != 0 ) { + code.append( " /// In declared protocol but not defined.. ///\n\n" ); + Method missingMethods0[] = inProtocolsButNotDeclared.toArray( new Method[inProtocolsButNotDeclared.size()] ); + java.lang.reflect.Method missingMethods[] = new java.lang.reflect.Method[inProtocolsButNotDeclared.size()]; + for ( int i=0 ; i< missingMethods0.length ; i++ ) + missingMethods[i] = missingMethods0[i].method; + generateMethods( missingMethods, isProtocol, fieldsSeen, outputClassName, false ); + } + } String functionHeader( Parameter parameters[], Method interfaceMethod, int extra ) { - StringBuilder setup = new StringBuilder(); - setup.append( " var __args = [jvalue]( repeating: jvalue(), count: "+Math.max(1,parameters.length+extra)+" )\n" ); - //if ( parameters.length != 0 ) - setup.append( " var __locals = [jobject]()\n" ); - for ( int i=0 ; i type, int mods ) { - String typeName = funcNames.get( type.getName() ); - if ( typeName == null ) - typeName = "Object"; - return (Modifier.isStatic(mods)?"Static":"")+typeName; + String typeName = funcNames.get( type.getName() ); + if ( typeName == null ) + typeName = "Object"; + return (Modifier.isStatic(mods)?"Static":"")+typeName; } - String jniArgs( Executable executable, String extra ) { - String sig = "("; - for ( Parameter param : executable.getParameters() ) - sig += jniEncoding(param.getType()); - return sig+extra+")"; + String jniArgs( Executable executable, String prefix, String suffix ) { + String sig = "("+prefix; + for ( Parameter param : executable.getParameters() ) + sig += jniEncoding(param.getType()); + return sig+suffix+")"; } - String jniSignature( Method method ) { - return jniArgs( method, "" )+jniEncoding(method.getReturnType()); + String jniSignature( Method method, String prefix, String suffix ) { + return jniArgs( method, prefix, suffix )+jniEncoding(method.getReturnType()); } String jniEncoding( Class clazz ) { - String name = clazz.getName(); - String type = jvalueFields.get(name); - return type != null ? type.toUpperCase() : clazz.isArray() ? "[" + jniEncoding(clazz.getComponentType()) : "L"+name.replace('.', '/')+";"; + String name = clazz.getName(); + String type = jvalueFields.get(name); + return type != null ? type.toUpperCase() : clazz.isArray() ? "[" + jniEncoding(clazz.getComponentType()) : "L"+name.replace('.', '/')+";"; } String jniName( Method method, int i ) { - return classSuffix+"_"+safe(method.getName())+"_"+i; + return classSuffix+"_"+safe(method.getName())+"_"+i; } - String jniDecl( Method method, String unnamed ) { - String decl = ""; - for ( Parameter param : method.getParameters() ) - decl += ", "+(unnamed==null?"_":unnamed+safe(param.getName()))+": "+jniType(param.getType()); - return "( "+(unnamed==null?"_":unnamed+"__env")+": UnsafeMutablePointer, "+ - (unnamed==null?"_":unnamed+"__this")+": jobject?"+decl+" )"+" -> "+(notVoid(method.getReturnType()) ? jniType(method.getReturnType()) : "()"); - } + String jniDecl( Method method, String unnamed ) { + String decl = ""; + for ( Parameter param : method.getParameters() ) + decl += ", "+(unnamed==null?"_":unnamed+safe(param.getName()))+": "+jniType(param.getType()); + return "( "+(unnamed==null?"_":unnamed+"__env")+": UnsafeMutablePointer, "+ + (unnamed==null?"_":unnamed+"__this")+": jobject?, "+ + (unnamed==null?"_":unnamed+"__swiftObject")+": jlong"+decl+" )"+ + " -> "+(notVoid(method.getReturnType()) ? jniType(method.getReturnType()) : "()"); + } - String jniType( Class type ) { - return type.isPrimitive() ? "j"+type.getName() : "jobject?"; - } + String jniType( Class type ) { + return type.isPrimitive() ? "j"+type.getName() : "jobject?"; + } boolean argumentNamesDiffer( Executable executable, Executable overridden ) { - if ( overridden == null ) - return true; //// - for (int i = 0; i < executable.getParameterCount(); i++) - if (!executable.getParameters()[i].getName() - .equals(overridden.getParameters()[i].getName())) - return true; - return false; + if ( overridden == null ) + return true; //// + for (int i = 0; i < executable.getParameterCount(); i++) + if (!executable.getParameters()[i].getName() + .equals(overridden.getParameters()[i].getName())) + return true; + return false; } String passthroughArguments( Executable executable, Method interfaceMethod ) { - String passthrough = ""; - Parameter parameters[] = executable.getParameters(); - for ( int i=0 ; i type ) { - return false;//type.isArray() && !type.getComponentType().isPrimitive(); + boolean crashesCompilerOnLinx( Class type ) { + return false;//type.isArray() && !type.getComponentType().isPrimitive(); } String encoder( String var, Class type, String locals ) { - if ( type == java.lang.Float.class ) - return "JNIType.encodeFloat( value: "+var+" )"; - else if ( type.isInterface() ) - return "jvalue( l: "+var+"?.localJavaObject( "+locals+" ) )"; - else if ( type.isArray() && type.getComponentType().isInterface() ) - var += "?.map { $0.localJavaObject( "+locals+" ) }"; - return "JNIType.encode( value: "+var+", locals: "+locals+" )"; + if ( type == java.lang.Float.class ) + return "JNIType.toJavaFloat( value: "+var+", locals: "+locals+" )"; + return "JNIType.toJava( value: "+var+(isObjectType( type ) && + !type.isInterface() && !java.util.Map.class.isAssignableFrom(type) ? + " != nil ? "+var+"! as JNIObject : nil":"")+ + (java.util.Map.class.isAssignableFrom(type) ? + ", mapClass: \""+type.getName().replace(".", "/")+"\"":"") +", locals: "+locals+" )"; } String encodeSuffix( Class type ) { - String jvalueField = jvalueFields.get( type.getName() ); - if ( jvalueField == null ) - jvalueField = "l"; - return "."+jvalueField; + String jvalueField = jvalueFields.get( type.getName() ); + if ( jvalueField == null ) + jvalueField = "l"; + return "."+jvalueField; } String decoder( String var, Class type ) { - if ( type == java.lang.Float.class ) - return "JNIType.decodeFloat( from: "+var+" )"; - String swiftType = swiftTypeFor(type, false, false); - if ( type.isInterface() ) - swiftType += "Forward"; - if ( type.isArray() && type.getComponentType().isInterface() ) - swiftType = "["+swiftTypeFor(type.getComponentType(), false, false, false, false)+"Forward]"; - return isObjectType( type ) ? var + " != nil ? " + swiftType+"( javaObject: " + var + " ) : nil" : - "JNIType.decode( type: "+swiftType+"(), from: " + var + " )"; + if ( type == java.lang.Float.class ) + return "JNIType.toSwiftFloat( from: "+var+" )"; + String swiftType = swiftTypeFor(type, false, false, true, false, true); + return isObjectType( type ) && !java.util.Map.class.isAssignableFrom(type) ? + var + " != nil ? " + swiftType+"( javaObject: " + var + " ) : nil" : + "JNIType.toSwift( type: "+swiftType+"(), from: " + var + " )"; } boolean isObjectType( Class type ) { - return !type.isPrimitive() && type != String.class && !type.isArray(); + return !type.isPrimitive() && type != String.class && !type.isArray(); } String argsFor( Executable e, boolean anon, boolean named ) { - return argsFor( e, anon, named, null ); + return argsFor( e, anon, named, null ); } String argsFor( Executable e, boolean anon, boolean named, Method interfaceMethod ) { - String args = ""; - for ( int i=0 ; i returnType ) { - return !returnType.getName().equals("void"); + return !returnType.getName().equals("void"); } - static HashMap swiftKeywords = new HashMap() { - private static final long serialVersionUID = 1L; - - { - put( "init", true ); - put( "self", true ); - put( "new", true ); - put( "in", true ); - put( "is", true ); - put( "operator", true ); - put( "subscript", true ); - put( "where", true ); - put( "as", true ); - } - }; - String safe( String name ) { - return (swiftKeywords.containsKey(name)?"_":"")+name.replace('$','_'); + return (swiftKeywords.containsKey(name)?"_":"")+name.replace('$','_'); } String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boolean named ) { @@ -1404,180 +1312,204 @@ String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boole } String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boolean named, Method interfaceMethod ) { - String ret = ""; - if ( method.getExceptionTypes().length != 0 ) { - String exceptions = ""; - for ( Class exception : method.getExceptionTypes() ) - exceptions += (exceptions==""?"":", ") + exception.getName(); - ret += " throws /* "+exceptions+" */"; - - } - Class returnType = method.getReturnType(); - if ( notVoid( returnType ) && !anon ) - ret += " -> " + swiftTypeFor( returnType, true, false ); - boolean isStatic = Modifier.isStatic(method.getModifiers()); - return (isProtocol ? "" : visibility)+(isStatic ? "class ": "")+ - "func "+safe(method.getName())+"("+argsFor( method, anon, named, interfaceMethod )+")" + ret; + String ret = ""; + if ( method.getExceptionTypes().length != 0 ) { + String exceptions = ""; + for ( Class exception : method.getExceptionTypes() ) + exceptions += (exceptions==""?"":", ") + exception.getName(); + ret += " throws /* "+exceptions+" */"; + + } + Class returnType = method.getReturnType(); + if ( notVoid( returnType ) && !anon ) + ret += " -> " + swiftTypeFor( returnType, true, false ); + boolean isStatic = Modifier.isStatic(method.getModifiers()); + return (isProtocol ? "" : visibility)+(isStatic ? "class ": "")+ + "func "+safe(method.getName())+"("+argsFor( method, anon, named, interfaceMethod )+")" + ret; } boolean fieldOverride(Field f, Class superclazz) { - if (superclazz == null) - return false; - if (f.getName().equals("serialVersionUID")) - return true; - try { - return superclazz.getField(f.getName()) != null; - } - catch ( NoSuchFieldException e ) { - return false; - } + if (superclazz == null) + return false; + if (f.getName().equals("serialVersionUID")) + return true; + try { + return superclazz.getField(f.getName()) != null; + } + catch ( NoSuchFieldException e ) { + return false; + } } java.lang.reflect.Constructor constructorOverride(java.lang.reflect.Constructor c, Class superclazz) { - if (superclazz == null) - return null; - Class types[] = c.getParameterTypes(); - //print(""+types.length); - - try { - switch (types.length) { - case 0: - return superclazz.getConstructor(); - case 1: - return superclazz.getConstructor(types[0]); - case 2: - return superclazz.getConstructor(types[0], types[1]); - case 3: - return superclazz.getConstructor(types[0], types[1], types[2]); - case 4: - return superclazz.getConstructor(types[0], types[1], types[2], types[3]); - case 5: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4]); - case 6: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5]); - case 7: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5],types[6]); - case 8: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); - case 9: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); - case 10: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); - default: - return null; - } - } catch (NoSuchMethodException e) { - return null; - } - } - - java.lang.reflect.Method funcOverride(java.lang.reflect.Method m, Class superclazz) { - if (superclazz == null) - return null; - String name = m.getName(); - Class types[] = m.getParameterTypes(); - if ( types.length == 0 && name.equals("registerNatives") ) - return null;//// - try { - switch (types.length) { - case 0: - return superclazz.getMethod(name); - case 1: - return superclazz.getMethod(name, types[0]); - case 2: - return superclazz.getMethod(name, types[0], types[1]); - case 3: - return superclazz.getMethod(name, types[0], types[1], types[2]); - case 4: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3]); - case 5: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4]); - case 6: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5]); - case 7: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5],types[6]); - case 8: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); - case 9: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); - case 10: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); - default: - return null; - } - } catch (NoSuchMethodException e) { - return null; - } - } + if (superclazz == null) + return null; + Class types[] = c.getParameterTypes(); + //print(""+types.length); + + try { + switch (types.length) { + case 0: + return superclazz.getConstructor(); + case 1: + return superclazz.getConstructor(types[0]); + case 2: + return superclazz.getConstructor(types[0], types[1]); + case 3: + return superclazz.getConstructor(types[0], types[1], types[2]); + case 4: + return superclazz.getConstructor(types[0], types[1], types[2], types[3]); + case 5: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4]); + case 6: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5]); + case 7: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5],types[6]); + case 8: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); + case 9: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); + case 10: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); + default: + return null; + } + } catch (NoSuchMethodException e) { + return null; + } + } + + java.lang.reflect.Method funcOverride(java.lang.reflect.Method m, Class superclazz) { + if (superclazz == null) + return null; + String name = m.getName(); + Class types[] = m.getParameterTypes(); + if ( types.length == 0 && name.equals("registerNatives") ) + return null;//// + try { + switch (types.length) { + case 0: + return superclazz.getMethod(name); + case 1: + return superclazz.getMethod(name, types[0]); + case 2: + return superclazz.getMethod(name, types[0], types[1]); + case 3: + return superclazz.getMethod(name, types[0], types[1], types[2]); + case 4: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3]); + case 5: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4]); + case 6: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5]); + case 7: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5],types[6]); + case 8: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); + case 9: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); + case 10: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); + default: + return null; + } + } catch (NoSuchMethodException e) { + return null; + } + } String swiftTypeFor( Class type, boolean isReturn, boolean anon ) { - return swiftTypeFor( type, isReturn, anon, true, false ); - } - - String swiftTypeFor( Class type, boolean isReturn, boolean anon, boolean prefix, boolean isArg ) { - String decl = swiftTypes.get(type.getName()); - if ( decl == null ) - if(type.isArray()) { - String left = "[", right = "]"; - Class elementType = type.getComponentType(); - while ( elementType.isArray() ) { - elementType = elementType.getComponentType(); - left += "["; - right += "]"; - } - String nativeType = arrayTypes.get( elementType.getName() ); - if ( nativeType != null ) - decl = nativeType; - else - decl = classTypeFor( elementType, anon, false ); - - decl = (isReturn || true ? "" : "inout ") + left + decl + right; - } - else - decl = classTypeFor( type, anon, prefix ); - - return decl + (isReturn && !type.isPrimitive() /*&& !isListener*/ ? isArg && type != java.lang.Float.class ? "?" : "!" : ""); + return swiftTypeFor( type, isReturn, anon, true, false, false ); + } + + String swiftTypeFor( Class type, boolean isReturn, boolean anon, boolean prefix, boolean isArg, boolean addForward ) { + String decl = swiftTypes.get(type.getName()); + if ( decl == null ) { + if(type.isArray()) { + String left = "[", right = "]"; + Class elementType = type.getComponentType(); + while ( elementType.isArray() ) { + elementType = elementType.getComponentType(); + left += "["; + right += "]"; + } + String nativeType = arrayTypes.get( elementType.getName() ); + if ( nativeType != null ) + decl = nativeType; + else + decl = classTypeFor( elementType, anon, false ); + + if ( addForward && elementType.isInterface() ) + decl += "Forward"; + + decl = (isReturn || true ? "" : "inout ") + left + decl + right; + } + else if ( java.util.Map.class.isAssignableFrom(type) ) { + try { + java.lang.reflect.Method method = type.getDeclaredMethod("valueClass"); + Class vtype = (Class) method.invoke(type); + decl = "[String:"+swiftTypeFor(vtype, false, anon, true, false, addForward)+"]"; + } + catch (Exception e) { + e.printStackTrace(); + decl = classTypeFor( type, anon, prefix ); + if ( addForward && type.isInterface() ) + decl += "Forward"; + } + } + else { + decl = classTypeFor( type, anon, prefix ); + if ( addForward && type.isInterface() ) + decl += "Forward"; + } + } + + return decl + (isReturn && !type.isPrimitive() /*&& !isListener*/ ? isArg && type != java.lang.Float.class ? "?" : "!" : ""); } String classTypeFor( Class type, boolean anon, boolean prefix ) { - String typeName = type.getName(); - String className = classSuffix( typeName ); - String frameworkPrefix = classPrefix( typeName ); - - crossReference( currentFramework, frameworkPrefix ); - - if ( lostType( type ) || excludeFromCodeGeneration( type ) ) { - unclassedReferences++; - return (anon?"":"/* "+typeName+" */ ") + Unclassed + (type.isInterface()?"Protocol":"Object"); - } - - if ( !frameworkPrefix.equals(currentFramework) && !type.isPrimitive() ) { - if ( !referencedFrameworks.containsKey( frameworkPrefix ) ) { - frameworkImports += "import "+frameworkPrefix+"\n"; - referencedFrameworks.put(frameworkPrefix, true); - } - if ( prefix ) - className = frameworkPrefix + "." + className; - } - return className; + String typeName = type.getName(); + String className = classSuffix( typeName ); + String frameworkPrefix = classPrefix( typeName ); + + crossReference( currentFramework, frameworkPrefix ); + + if ( lostType( type ) || excludeFromCodeGeneration( type ) /*|| + currentFramework.equals("java_swift") && !frameworkPrefix.equals("java_swift")*/ ) { + unclassedReferences++; + return (anon?"":"/* "+typeName+" */ ") + Unclassed + (type.isInterface()?"Protocol":"Object"); + } + + if ( !frameworkPrefix.equals(currentFramework) && !type.isPrimitive() ) { + if ( !referencedFrameworks.containsKey( frameworkPrefix ) ) { + if ( !frameworkPrefix.equals("java_swift") ) + frameworkImports += "import "+frameworkPrefix+"\n"; + referencedFrameworks.put(frameworkPrefix, true); + } + if ( prefix ) + className = frameworkPrefix + "." + className; + } + return className; } boolean lostType( Class type ) { - return !type.isArray() && forwardReference( currentFramework, classPrefix( type.getName() ) ); + return !type.isArray() && forwardReference( currentFramework, classPrefix( type.getName() ) ); } static int prefixLength( String className ) { int firstDot = className.indexOf( '.' ); if ( firstDot == -1 ) - return -1; + return -1; int secondDot = className.indexOf( '.', firstDot+1 ); return secondDot == -1 ? firstDot : secondDot; } static String classPrefix( String className ) { - int prefixLength = prefixLength( className ); - if ( prefixLength == -1 ) - return "java_lang"; + int prefixLength = prefixLength( className ); + if ( prefixLength == -1 ) + return "java_lang"; + if ( keyClasses.containsKey(className) ) + return "java_swift"; return className.substring( 0, prefixLength ).replace( '.', '_' ); } @@ -1588,18 +1520,161 @@ static String classSuffix( String className ) { String classSuffix = className.substring( suffixIndex ).replace('$', '_'); if ( swiftReserved.containsKey(className) ) - classSuffix = "Java" + classSuffix; + classSuffix = "Java" + classSuffix; String allocated = allocatedSuffies.get( classSuffix ); if ( allocated != null && !allocated.equals(className) ) { - int prefixLength = prefixLength( className ); + int prefixLength = prefixLength( className ); String other = className.substring( prefixLength+1, suffixIndex ); - return other.replace('.', '_') + classSuffix; + return other.replace('.', '_') + classSuffix; } if ( allocated == null ) - allocatedSuffies.put( classSuffix, className ); + allocatedSuffies.put( classSuffix, className ); return classSuffix; } + static HashMap> crossReferences = new HashMap>(); + static HashMap knownAdditionalFrameworks = new HashMap(); + static ArrayList additionalFrameworks = new ArrayList(); + + static void crossReference( String from, String to ) { + if ( !crossReferences.containsKey( from ) ) + crossReferences.put( from, new HashMap() ); + if ( !crossReferences.get( from ).containsKey( to ) ) + crossReferences.get( from ).put( to, 0 ); + crossReferences.get(from).put(to,crossReferences.get(from).get(to)+1); + } + + static int references( String from, String to ) { + if ( !crossReferences.containsKey(from) || !crossReferences.get(from).containsKey(to) ) + return 0; + return crossReferences.get(from).get(to); + } + + static class Parameter { + Executable executable; + int number; + + public Class getType() { + return executable.constructor != null ? + executable.constructor.getParameterTypes()[number] : + executable.method.getParameterTypes()[number]; + } + + public String getName() { + return executable.parameterNames != null ? + executable.parameterNames[number] : "arg"+number; + } + } + + static class Executable { + java.lang.reflect.Constructor constructor; + java.lang.reflect.Method method; + Parameter parameters[]; + String parameterNames[]; + + public int getModifiers() { + return constructor != null ? + constructor.getModifiers() : + method.getModifiers(); + } + + public int getParameterCount() { + return constructor != null ? + constructor.getParameterTypes().length : + method.getParameterTypes().length; + } + + public Parameter [] getParameters() { + if ( parameters == null ) { + int size = getParameterCount(); + parameters = new Parameter[size]; + if ( size != 0 ) { + for ( int i=0 ; i executableClass = executable.getClass(); + java.lang.reflect.Method paramsMethod = executableClass.getMethod("getParameters", new Class[] {}); + + Object realParameters[] = (Object []) paramsMethod.invoke(executable, new Object[] {}); + Class parametersClass = realParameters[0].getClass(); + java.lang.reflect.Method nameMethod = parametersClass.getMethod("getName", new Class[] {}); + + parameterNames = new String[size]; + for ( int i=0 ; i [] getExceptionTypes() { + return constructor != null ? + constructor.getExceptionTypes() : + method.getExceptionTypes(); + } + + } + + static class Constructor extends Executable { + public String toString() { + return constructor.toString(); + } + } + + static Constructor newConstructor( java.lang.reflect.Constructor constructor ) { + if ( constructor == null ) + return null; + Constructor proxy = new Constructor(); + proxy.constructor = constructor; + return proxy; + } + + static class Method extends Executable { + public String getName() { + return method.getName(); + } + public Class getReturnType() { + return method.getReturnType(); + } + public String toString() { + return method.toString(); + } + } + + static Method newMethod( java.lang.reflect.Method method ) { + if ( method == null ) + return null; + Method proxy = new Method(); + proxy.method = method; + return proxy; + } + + boolean excludeFromCodeGeneration( Class clazz ) { + String className = clazz.getName(); + return !Modifier.isPublic(clazz.getModifiers()) || className.equals("java.util.concurrent.CompletableFuture") + || classPrefix(className).equals("java_util") && className.indexOf('$') != -1; + } + + boolean supportsProxyCallback( Class clazz ) { + String clazzName = clazz.getName(); + while ( clazzName.charAt(className.length()-1) == ']' ) + clazzName = clazzName.substring(0, clazzName.length()-1 ); + return clazz == java.lang.Runnable.class || isAdapter() + || clazz.isInterface() && (clazzName.endsWith("Listener") || clazzName.endsWith("Handler") || clazzName.endsWith("Manager")); + } + + boolean isAdapter() { + return classSuffix.endsWith("Adapter") && clazz != java.awt.dnd.DropTargetAdapter.class; // missing drop()? + } + } diff --git a/src/org/genie/com_apple/AboutHandlerProxy.java b/src/org/genie/com_apple/AboutHandlerProxy.java deleted file mode 100644 index a83789f..0000000 --- a/src/org/genie/com_apple/AboutHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.AboutHandler /// - -package org.genie.com_apple; - -public class AboutHandlerProxy implements com.apple.eawt.AboutHandler { - - long swiftObject; - - AboutHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.AboutHandler.handleAbout(com.apple.eawt.AppEvent$AboutEvent) - - public native void __handleAbout( com.apple.eawt.AppEvent.AboutEvent arg0 ); - - public void handleAbout( com.apple.eawt.AppEvent.AboutEvent arg0 ) { - __handleAbout( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/AppEventListenerProxy.java b/src/org/genie/com_apple/AppEventListenerProxy.java deleted file mode 100644 index 33c30a4..0000000 --- a/src/org/genie/com_apple/AppEventListenerProxy.java +++ /dev/null @@ -1,14 +0,0 @@ - -/// interface com.apple.eawt.AppEventListener /// - -package org.genie.com_apple; - -public class AppEventListenerProxy implements com.apple.eawt.AppEventListener { - - long swiftObject; - - AppEventListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - -} diff --git a/src/org/genie/com_apple/AppForegroundListenerProxy.java b/src/org/genie/com_apple/AppForegroundListenerProxy.java deleted file mode 100644 index 0fda7bb..0000000 --- a/src/org/genie/com_apple/AppForegroundListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface com.apple.eawt.AppForegroundListener /// - -package org.genie.com_apple; - -public class AppForegroundListenerProxy implements com.apple.eawt.AppForegroundListener { - - long swiftObject; - - AppForegroundListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.AppForegroundListener.appMovedToBackground(com.apple.eawt.AppEvent$AppForegroundEvent) - - public native void __appMovedToBackground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); - - public void appMovedToBackground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ) { - __appMovedToBackground( arg0 ); - } - - /// public abstract void com.apple.eawt.AppForegroundListener.appRaisedToForeground(com.apple.eawt.AppEvent$AppForegroundEvent) - - public native void __appRaisedToForeground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); - - public void appRaisedToForeground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ) { - __appRaisedToForeground( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/AppHiddenListenerProxy.java b/src/org/genie/com_apple/AppHiddenListenerProxy.java deleted file mode 100644 index b186c88..0000000 --- a/src/org/genie/com_apple/AppHiddenListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface com.apple.eawt.AppHiddenListener /// - -package org.genie.com_apple; - -public class AppHiddenListenerProxy implements com.apple.eawt.AppHiddenListener { - - long swiftObject; - - AppHiddenListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.AppHiddenListener.appUnhidden(com.apple.eawt.AppEvent$AppHiddenEvent) - - public native void __appUnhidden( com.apple.eawt.AppEvent.AppHiddenEvent arg0 ); - - public void appUnhidden( com.apple.eawt.AppEvent.AppHiddenEvent arg0 ) { - __appUnhidden( arg0 ); - } - - /// public abstract void com.apple.eawt.AppHiddenListener.appHidden(com.apple.eawt.AppEvent$AppHiddenEvent) - - public native void __appHidden( com.apple.eawt.AppEvent.AppHiddenEvent arg0 ); - - public void appHidden( com.apple.eawt.AppEvent.AppHiddenEvent arg0 ) { - __appHidden( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/AppReOpenedListenerProxy.java b/src/org/genie/com_apple/AppReOpenedListenerProxy.java deleted file mode 100644 index c4c3c6f..0000000 --- a/src/org/genie/com_apple/AppReOpenedListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.AppReOpenedListener /// - -package org.genie.com_apple; - -public class AppReOpenedListenerProxy implements com.apple.eawt.AppReOpenedListener { - - long swiftObject; - - AppReOpenedListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.AppReOpenedListener.appReOpened(com.apple.eawt.AppEvent$AppReOpenedEvent) - - public native void __appReOpened( com.apple.eawt.AppEvent.AppReOpenedEvent arg0 ); - - public void appReOpened( com.apple.eawt.AppEvent.AppReOpenedEvent arg0 ) { - __appReOpened( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/GestureListenerProxy.java b/src/org/genie/com_apple/GestureListenerProxy.java deleted file mode 100644 index 62fc0df..0000000 --- a/src/org/genie/com_apple/GestureListenerProxy.java +++ /dev/null @@ -1,14 +0,0 @@ - -/// interface com.apple.eawt.event.GestureListener /// - -package org.genie.com_apple; - -public class GestureListenerProxy implements com.apple.eawt.event.GestureListener { - - long swiftObject; - - GestureListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - -} diff --git a/src/org/genie/com_apple/GesturePhaseListenerProxy.java b/src/org/genie/com_apple/GesturePhaseListenerProxy.java deleted file mode 100644 index b7f76b9..0000000 --- a/src/org/genie/com_apple/GesturePhaseListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface com.apple.eawt.event.GesturePhaseListener /// - -package org.genie.com_apple; - -public class GesturePhaseListenerProxy implements com.apple.eawt.event.GesturePhaseListener { - - long swiftObject; - - GesturePhaseListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.event.GesturePhaseListener.gestureBegan(com.apple.eawt.event.GesturePhaseEvent) - - public native void __gestureBegan( com.apple.eawt.event.GesturePhaseEvent arg0 ); - - public void gestureBegan( com.apple.eawt.event.GesturePhaseEvent arg0 ) { - __gestureBegan( arg0 ); - } - - /// public abstract void com.apple.eawt.event.GesturePhaseListener.gestureEnded(com.apple.eawt.event.GesturePhaseEvent) - - public native void __gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ); - - public void gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ) { - __gestureEnded( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/MagnificationListenerProxy.java b/src/org/genie/com_apple/MagnificationListenerProxy.java deleted file mode 100644 index 2c65506..0000000 --- a/src/org/genie/com_apple/MagnificationListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.event.MagnificationListener /// - -package org.genie.com_apple; - -public class MagnificationListenerProxy implements com.apple.eawt.event.MagnificationListener { - - long swiftObject; - - MagnificationListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.event.MagnificationListener.magnify(com.apple.eawt.event.MagnificationEvent) - - public native void __magnify( com.apple.eawt.event.MagnificationEvent arg0 ); - - public void magnify( com.apple.eawt.event.MagnificationEvent arg0 ) { - __magnify( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/OpenFilesHandlerProxy.java b/src/org/genie/com_apple/OpenFilesHandlerProxy.java deleted file mode 100644 index 931845e..0000000 --- a/src/org/genie/com_apple/OpenFilesHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.OpenFilesHandler /// - -package org.genie.com_apple; - -public class OpenFilesHandlerProxy implements com.apple.eawt.OpenFilesHandler { - - long swiftObject; - - OpenFilesHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.OpenFilesHandler.openFiles(com.apple.eawt.AppEvent$OpenFilesEvent) - - public native void __openFiles( com.apple.eawt.AppEvent.OpenFilesEvent arg0 ); - - public void openFiles( com.apple.eawt.AppEvent.OpenFilesEvent arg0 ) { - __openFiles( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/OpenURIHandlerProxy.java b/src/org/genie/com_apple/OpenURIHandlerProxy.java deleted file mode 100644 index 1c86e20..0000000 --- a/src/org/genie/com_apple/OpenURIHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.OpenURIHandler /// - -package org.genie.com_apple; - -public class OpenURIHandlerProxy implements com.apple.eawt.OpenURIHandler { - - long swiftObject; - - OpenURIHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.OpenURIHandler.openURI(com.apple.eawt.AppEvent$OpenURIEvent) - - public native void __openURI( com.apple.eawt.AppEvent.OpenURIEvent arg0 ); - - public void openURI( com.apple.eawt.AppEvent.OpenURIEvent arg0 ) { - __openURI( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/PreferencesHandlerProxy.java b/src/org/genie/com_apple/PreferencesHandlerProxy.java deleted file mode 100644 index f109fce..0000000 --- a/src/org/genie/com_apple/PreferencesHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.PreferencesHandler /// - -package org.genie.com_apple; - -public class PreferencesHandlerProxy implements com.apple.eawt.PreferencesHandler { - - long swiftObject; - - PreferencesHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.PreferencesHandler.handlePreferences(com.apple.eawt.AppEvent$PreferencesEvent) - - public native void __handlePreferences( com.apple.eawt.AppEvent.PreferencesEvent arg0 ); - - public void handlePreferences( com.apple.eawt.AppEvent.PreferencesEvent arg0 ) { - __handlePreferences( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/PrintFilesHandlerProxy.java b/src/org/genie/com_apple/PrintFilesHandlerProxy.java deleted file mode 100644 index abcf3e6..0000000 --- a/src/org/genie/com_apple/PrintFilesHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.PrintFilesHandler /// - -package org.genie.com_apple; - -public class PrintFilesHandlerProxy implements com.apple.eawt.PrintFilesHandler { - - long swiftObject; - - PrintFilesHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.PrintFilesHandler.printFiles(com.apple.eawt.AppEvent$PrintFilesEvent) - - public native void __printFiles( com.apple.eawt.AppEvent.PrintFilesEvent arg0 ); - - public void printFiles( com.apple.eawt.AppEvent.PrintFilesEvent arg0 ) { - __printFiles( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/QuitHandlerProxy.java b/src/org/genie/com_apple/QuitHandlerProxy.java deleted file mode 100644 index 0d5745a..0000000 --- a/src/org/genie/com_apple/QuitHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.QuitHandler /// - -package org.genie.com_apple; - -public class QuitHandlerProxy implements com.apple.eawt.QuitHandler { - - long swiftObject; - - QuitHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.QuitHandler.handleQuitRequestWith(com.apple.eawt.AppEvent$QuitEvent,com.apple.eawt.QuitResponse) - - public native void __handleQuitRequestWith( com.apple.eawt.AppEvent.QuitEvent arg0, com.apple.eawt.QuitResponse arg1 ); - - public void handleQuitRequestWith( com.apple.eawt.AppEvent.QuitEvent arg0, com.apple.eawt.QuitResponse arg1 ) { - __handleQuitRequestWith( arg0, arg1 ); - } - -} diff --git a/src/org/genie/com_apple/RotationListenerProxy.java b/src/org/genie/com_apple/RotationListenerProxy.java deleted file mode 100644 index 8b63bb0..0000000 --- a/src/org/genie/com_apple/RotationListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface com.apple.eawt.event.RotationListener /// - -package org.genie.com_apple; - -public class RotationListenerProxy implements com.apple.eawt.event.RotationListener { - - long swiftObject; - - RotationListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.event.RotationListener.rotate(com.apple.eawt.event.RotationEvent) - - public native void __rotate( com.apple.eawt.event.RotationEvent arg0 ); - - public void rotate( com.apple.eawt.event.RotationEvent arg0 ) { - __rotate( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/ScreenSleepListenerProxy.java b/src/org/genie/com_apple/ScreenSleepListenerProxy.java deleted file mode 100644 index ae3a475..0000000 --- a/src/org/genie/com_apple/ScreenSleepListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface com.apple.eawt.ScreenSleepListener /// - -package org.genie.com_apple; - -public class ScreenSleepListenerProxy implements com.apple.eawt.ScreenSleepListener { - - long swiftObject; - - ScreenSleepListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.ScreenSleepListener.screenAwoke(com.apple.eawt.AppEvent$ScreenSleepEvent) - - public native void __screenAwoke( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); - - public void screenAwoke( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) { - __screenAwoke( arg0 ); - } - - /// public abstract void com.apple.eawt.ScreenSleepListener.screenAboutToSleep(com.apple.eawt.AppEvent$ScreenSleepEvent) - - public native void __screenAboutToSleep( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); - - public void screenAboutToSleep( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) { - __screenAboutToSleep( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/SystemSleepListenerProxy.java b/src/org/genie/com_apple/SystemSleepListenerProxy.java deleted file mode 100644 index 21625ae..0000000 --- a/src/org/genie/com_apple/SystemSleepListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface com.apple.eawt.SystemSleepListener /// - -package org.genie.com_apple; - -public class SystemSleepListenerProxy implements com.apple.eawt.SystemSleepListener { - - long swiftObject; - - SystemSleepListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.SystemSleepListener.systemAwoke(com.apple.eawt.AppEvent$SystemSleepEvent) - - public native void __systemAwoke( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); - - public void systemAwoke( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) { - __systemAwoke( arg0 ); - } - - /// public abstract void com.apple.eawt.SystemSleepListener.systemAboutToSleep(com.apple.eawt.AppEvent$SystemSleepEvent) - - public native void __systemAboutToSleep( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); - - public void systemAboutToSleep( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) { - __systemAboutToSleep( arg0 ); - } - -} diff --git a/src/org/genie/com_apple/UserSessionListenerProxy.java b/src/org/genie/com_apple/UserSessionListenerProxy.java deleted file mode 100644 index 00bb45f..0000000 --- a/src/org/genie/com_apple/UserSessionListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface com.apple.eawt.UserSessionListener /// - -package org.genie.com_apple; - -public class UserSessionListenerProxy implements com.apple.eawt.UserSessionListener { - - long swiftObject; - - UserSessionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.apple.eawt.UserSessionListener.userSessionDeactivated(com.apple.eawt.AppEvent$UserSessionEvent) - - public native void __userSessionDeactivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ); - - public void userSessionDeactivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ) { - __userSessionDeactivated( arg0 ); - } - - /// public abstract void com.apple.eawt.UserSessionListener.userSessionActivated(com.apple.eawt.AppEvent$UserSessionEvent) - - public native void __userSessionActivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ); - - public void userSessionActivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ) { - __userSessionActivated( arg0 ); - } - -} diff --git a/src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java b/src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java deleted file mode 100644 index e324a46..0000000 --- a/src/org/genie/com_jh/SwiftHelloBinding_ListenerProxy.java +++ /dev/null @@ -1,39 +0,0 @@ - -/// interface com.jh.SwiftHelloBinding$Listener /// - -package org.genie.com_jh; - -@SuppressWarnings("JniMissingFunction") -public class SwiftHelloBinding_ListenerProxy implements com.jh.SwiftHelloBinding.Listener { - - long swiftObject; - - SwiftHelloBinding_ListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - - public native void __setCacheDir( java.lang.String cacheDir ); - - public void setCacheDir( java.lang.String cacheDir ) { - __setCacheDir( cacheDir ); - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) - - public native void __processNumber( double number ); - - public void processNumber( double number ) { - __processNumber( number ); - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) - - public native void __processText( java.lang.String text ); - - public void processText( java.lang.String text ) { - __processText( text ); - } - -} diff --git a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java b/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java deleted file mode 100644 index 825a7d1..0000000 --- a/src/org/genie/com_jh/SwiftHelloTest_TestListenerProxy.java +++ /dev/null @@ -1,231 +0,0 @@ - -/// interface com.jh.SwiftHelloTest$TestListener /// - -package org.genie.com_jh; - -@SuppressWarnings("JniMissingFunction") -public class SwiftHelloTest_TestListenerProxy implements com.jh.SwiftHelloTest.TestListener { - - long swiftObject; - - SwiftHelloTest_TestListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - - public native boolean[] __booleanArrayMethod( boolean[] arg ); - - public boolean[] booleanArrayMethod( boolean[] arg ) { - return __booleanArrayMethod( arg ); - } - - /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - - public native boolean[][] __boolean2dArrayMethod( boolean[][] arg ); - - public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { - return __boolean2dArrayMethod( arg ); - } - - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - public native boolean __booleanMethod( boolean arg ); - - public boolean booleanMethod( boolean arg ) { - return __booleanMethod( arg ); - } - - /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - - public native byte __byteMethod( byte arg ); - - public byte byteMethod( byte arg ) { - return __byteMethod( arg ); - } - - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - public native byte[] __byteArrayMethod( byte[] arg ); - - public byte[] byteArrayMethod( byte[] arg ) { - return __byteArrayMethod( arg ); - } - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - public native byte[][] __byte2dArrayMethod( byte[][] arg ); - - public byte[][] byte2dArrayMethod( byte[][] arg ) { - return __byte2dArrayMethod( arg ); - } - - /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) - - public native char __charMethod( char arg ); - - public char charMethod( char arg ) { - return __charMethod( arg ); - } - - /// public abstract char[] com.jh.SwiftHelloTest$TestListener.charArrayMethod(char[]) - - public native char[] __charArrayMethod( char[] arg ); - - public char[] charArrayMethod( char[] arg ) { - return __charArrayMethod( arg ); - } - - /// public abstract char[][] com.jh.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) - - public native char[][] __char2dArrayMethod( char[][] arg ); - - public char[][] char2dArrayMethod( char[][] arg ) { - return __char2dArrayMethod( arg ); - } - - /// public abstract short com.jh.SwiftHelloTest$TestListener.shortMethod(short) - - public native short __shortMethod( short arg ); - - public short shortMethod( short arg ) { - return __shortMethod( arg ); - } - - /// public abstract short[] com.jh.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - - public native short[] __shortArrayMethod( short[] arg ); - - public short[] shortArrayMethod( short[] arg ) { - return __shortArrayMethod( arg ); - } - - /// public abstract short[][] com.jh.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - - public native short[][] __short2dArrayMethod( short[][] arg ); - - public short[][] short2dArrayMethod( short[][] arg ) { - return __short2dArrayMethod( arg ); - } - - /// public abstract int com.jh.SwiftHelloTest$TestListener.intMethod(int) - - public native int __intMethod( int arg ); - - public int intMethod( int arg ) { - return __intMethod( arg ); - } - - /// public abstract int[] com.jh.SwiftHelloTest$TestListener.intArrayMethod(int[]) - - public native int[] __intArrayMethod( int[] arg ); - - public int[] intArrayMethod( int[] arg ) { - return __intArrayMethod( arg ); - } - - /// public abstract int[][] com.jh.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - - public native int[][] __int2dArrayMethod( int[][] arg ); - - public int[][] int2dArrayMethod( int[][] arg ) { - return __int2dArrayMethod( arg ); - } - - /// public abstract long com.jh.SwiftHelloTest$TestListener.longMethod(long) - - public native long __longMethod( long arg ); - - public long longMethod( long arg ) { - return __longMethod( arg ); - } - - /// public abstract long[] com.jh.SwiftHelloTest$TestListener.longArrayMethod(long[]) - - public native long[] __longArrayMethod( long[] arg ); - - public long[] longArrayMethod( long[] arg ) { - return __longArrayMethod( arg ); - } - - /// public abstract long[][] com.jh.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - - public native long[][] __long2dArrayMethod( long[][] arg ); - - public long[][] long2dArrayMethod( long[][] arg ) { - return __long2dArrayMethod( arg ); - } - - /// public abstract float com.jh.SwiftHelloTest$TestListener.floatMethod(float) - - public native float __floatMethod( float arg ); - - public float floatMethod( float arg ) { - return __floatMethod( arg ); - } - - /// public abstract float[] com.jh.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - - public native float[] __floatArrayMethod( float[] arg ); - - public float[] floatArrayMethod( float[] arg ) { - return __floatArrayMethod( arg ); - } - - /// public abstract float[][] com.jh.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - - public native float[][] __float2dArrayMethod( float[][] arg ); - - public float[][] float2dArrayMethod( float[][] arg ) { - return __float2dArrayMethod( arg ); - } - - /// public abstract double com.jh.SwiftHelloTest$TestListener.doubleMethod(double) - - public native double __doubleMethod( double arg ); - - public double doubleMethod( double arg ) { - return __doubleMethod( arg ); - } - - /// public abstract double[] com.jh.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - - public native double[] __doubleArrayMethod( double[] arg ); - - public double[] doubleArrayMethod( double[] arg ) { - return __doubleArrayMethod( arg ); - } - - /// public abstract double[][] com.jh.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - - public native double[][] __double2dArrayMethod( double[][] arg ); - - public double[][] double2dArrayMethod( double[][] arg ) { - return __double2dArrayMethod( arg ); - } - - /// public abstract java.lang.String com.jh.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - - public native java.lang.String __StringMethod( java.lang.String arg ); - - public java.lang.String StringMethod( java.lang.String arg ) { - return __StringMethod( arg ); - } - - /// public abstract java.lang.String[] com.jh.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - - public native java.lang.String[] __StringArrayMethod( java.lang.String[] arg ); - - public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { - return __StringArrayMethod( arg ); - } - - /// public abstract java.lang.String[][] com.jh.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - - public native java.lang.String[][] __String2dArrayMethod( java.lang.String[][] arg ); - - public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { - return __String2dArrayMethod( arg ); - } - -} diff --git a/src/org/genie/java_awt/AWTEventListenerProxy.java b/src/org/genie/java_awt/AWTEventListenerProxy.java deleted file mode 100644 index 8a875cc..0000000 --- a/src/org/genie/java_awt/AWTEventListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.AWTEventListener /// - -package org.genie.java_awt; - -public class AWTEventListenerProxy implements java.awt.event.AWTEventListener { - - long swiftObject; - - AWTEventListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.AWTEventListener.eventDispatched(java.awt.AWTEvent) - - public native void __eventDispatched( java.awt.AWTEvent arg0 ); - - public void eventDispatched( java.awt.AWTEvent arg0 ) { - __eventDispatched( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/ActionListenerProxy.java b/src/org/genie/java_awt/ActionListenerProxy.java deleted file mode 100644 index 49dd2a7..0000000 --- a/src/org/genie/java_awt/ActionListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.ActionListener /// - -package org.genie.java_awt; - -public class ActionListenerProxy implements java.awt.event.ActionListener { - - long swiftObject; - - ActionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.ActionListener.actionPerformed(java.awt.event.ActionEvent) - - public native void __actionPerformed( java.awt.event.ActionEvent arg0 ); - - public void actionPerformed( java.awt.event.ActionEvent arg0 ) { - __actionPerformed( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/AdjustmentListenerProxy.java b/src/org/genie/java_awt/AdjustmentListenerProxy.java deleted file mode 100644 index f59ccca..0000000 --- a/src/org/genie/java_awt/AdjustmentListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.AdjustmentListener /// - -package org.genie.java_awt; - -public class AdjustmentListenerProxy implements java.awt.event.AdjustmentListener { - - long swiftObject; - - AdjustmentListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.AdjustmentListener.adjustmentValueChanged(java.awt.event.AdjustmentEvent) - - public native void __adjustmentValueChanged( java.awt.event.AdjustmentEvent arg0 ); - - public void adjustmentValueChanged( java.awt.event.AdjustmentEvent arg0 ) { - __adjustmentValueChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/CanvasProxy.java b/src/org/genie/java_awt/CanvasProxy.java deleted file mode 100644 index 38c970a..0000000 --- a/src/org/genie/java_awt/CanvasProxy.java +++ /dev/null @@ -1,56 +0,0 @@ - -/// class java.awt.Canvas /// - -package org.genie.java_awt; - -public class CanvasProxy extends java.awt.Canvas { - - long swiftObject; - - /// public java.awt.Canvas() - - CanvasProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public java.awt.Canvas(java.awt.GraphicsConfiguration) - - CanvasProxy( java.awt.GraphicsConfiguration arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public void java.awt.Canvas.update(java.awt.Graphics) - - public native void __update( java.awt.Graphics arg0 ); - - boolean entered_update_0; - - public void update( java.awt.Graphics arg0 ) { - if ( !entered_update_0 ) { - entered_update_0 = true; - __update( arg0 ); - entered_update_0 = false; - } - else - super.update( arg0 ); - } - - /// public void java.awt.Canvas.paint(java.awt.Graphics) - - public native void __paint( java.awt.Graphics arg0 ); - - boolean entered_paint_1; - - public void paint( java.awt.Graphics arg0 ) { - if ( !entered_paint_1 ) { - entered_paint_1 = true; - __paint( arg0 ); - entered_paint_1 = false; - } - else - super.paint( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/ComponentListenerProxy.java b/src/org/genie/java_awt/ComponentListenerProxy.java deleted file mode 100644 index bd1784d..0000000 --- a/src/org/genie/java_awt/ComponentListenerProxy.java +++ /dev/null @@ -1,46 +0,0 @@ - -/// interface java.awt.event.ComponentListener /// - -package org.genie.java_awt; - -public class ComponentListenerProxy implements java.awt.event.ComponentListener { - - long swiftObject; - - ComponentListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.ComponentListener.componentResized(java.awt.event.ComponentEvent) - - public native void __componentResized( java.awt.event.ComponentEvent arg0 ); - - public void componentResized( java.awt.event.ComponentEvent arg0 ) { - __componentResized( arg0 ); - } - - /// public abstract void java.awt.event.ComponentListener.componentMoved(java.awt.event.ComponentEvent) - - public native void __componentMoved( java.awt.event.ComponentEvent arg0 ); - - public void componentMoved( java.awt.event.ComponentEvent arg0 ) { - __componentMoved( arg0 ); - } - - /// public abstract void java.awt.event.ComponentListener.componentShown(java.awt.event.ComponentEvent) - - public native void __componentShown( java.awt.event.ComponentEvent arg0 ); - - public void componentShown( java.awt.event.ComponentEvent arg0 ) { - __componentShown( arg0 ); - } - - /// public abstract void java.awt.event.ComponentListener.componentHidden(java.awt.event.ComponentEvent) - - public native void __componentHidden( java.awt.event.ComponentEvent arg0 ); - - public void componentHidden( java.awt.event.ComponentEvent arg0 ) { - __componentHidden( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/ContainerListenerProxy.java b/src/org/genie/java_awt/ContainerListenerProxy.java deleted file mode 100644 index 40bf71c..0000000 --- a/src/org/genie/java_awt/ContainerListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.awt.event.ContainerListener /// - -package org.genie.java_awt; - -public class ContainerListenerProxy implements java.awt.event.ContainerListener { - - long swiftObject; - - ContainerListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.ContainerListener.componentAdded(java.awt.event.ContainerEvent) - - public native void __componentAdded( java.awt.event.ContainerEvent arg0 ); - - public void componentAdded( java.awt.event.ContainerEvent arg0 ) { - __componentAdded( arg0 ); - } - - /// public abstract void java.awt.event.ContainerListener.componentRemoved(java.awt.event.ContainerEvent) - - public native void __componentRemoved( java.awt.event.ContainerEvent arg0 ); - - public void componentRemoved( java.awt.event.ContainerEvent arg0 ) { - __componentRemoved( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/DragGestureListenerProxy.java b/src/org/genie/java_awt/DragGestureListenerProxy.java deleted file mode 100644 index 262c7a7..0000000 --- a/src/org/genie/java_awt/DragGestureListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.dnd.DragGestureListener /// - -package org.genie.java_awt; - -public class DragGestureListenerProxy implements java.awt.dnd.DragGestureListener { - - long swiftObject; - - DragGestureListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.dnd.DragGestureListener.dragGestureRecognized(java.awt.dnd.DragGestureEvent) - - public native void __dragGestureRecognized( java.awt.dnd.DragGestureEvent arg0 ); - - public void dragGestureRecognized( java.awt.dnd.DragGestureEvent arg0 ) { - __dragGestureRecognized( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/DragSourceListenerProxy.java b/src/org/genie/java_awt/DragSourceListenerProxy.java deleted file mode 100644 index 7da27b1..0000000 --- a/src/org/genie/java_awt/DragSourceListenerProxy.java +++ /dev/null @@ -1,54 +0,0 @@ - -/// interface java.awt.dnd.DragSourceListener /// - -package org.genie.java_awt; - -public class DragSourceListenerProxy implements java.awt.dnd.DragSourceListener { - - long swiftObject; - - DragSourceListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.dnd.DragSourceListener.dragEnter(java.awt.dnd.DragSourceDragEvent) - - public native void __dragEnter( java.awt.dnd.DragSourceDragEvent arg0 ); - - public void dragEnter( java.awt.dnd.DragSourceDragEvent arg0 ) { - __dragEnter( arg0 ); - } - - /// public abstract void java.awt.dnd.DragSourceListener.dragOver(java.awt.dnd.DragSourceDragEvent) - - public native void __dragOver( java.awt.dnd.DragSourceDragEvent arg0 ); - - public void dragOver( java.awt.dnd.DragSourceDragEvent arg0 ) { - __dragOver( arg0 ); - } - - /// public abstract void java.awt.dnd.DragSourceListener.dropActionChanged(java.awt.dnd.DragSourceDragEvent) - - public native void __dropActionChanged( java.awt.dnd.DragSourceDragEvent arg0 ); - - public void dropActionChanged( java.awt.dnd.DragSourceDragEvent arg0 ) { - __dropActionChanged( arg0 ); - } - - /// public abstract void java.awt.dnd.DragSourceListener.dragExit(java.awt.dnd.DragSourceEvent) - - public native void __dragExit( java.awt.dnd.DragSourceEvent arg0 ); - - public void dragExit( java.awt.dnd.DragSourceEvent arg0 ) { - __dragExit( arg0 ); - } - - /// public abstract void java.awt.dnd.DragSourceListener.dragDropEnd(java.awt.dnd.DragSourceDropEvent) - - public native void __dragDropEnd( java.awt.dnd.DragSourceDropEvent arg0 ); - - public void dragDropEnd( java.awt.dnd.DragSourceDropEvent arg0 ) { - __dragDropEnd( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/DragSourceMotionListenerProxy.java b/src/org/genie/java_awt/DragSourceMotionListenerProxy.java deleted file mode 100644 index f875008..0000000 --- a/src/org/genie/java_awt/DragSourceMotionListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.dnd.DragSourceMotionListener /// - -package org.genie.java_awt; - -public class DragSourceMotionListenerProxy implements java.awt.dnd.DragSourceMotionListener { - - long swiftObject; - - DragSourceMotionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.dnd.DragSourceMotionListener.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) - - public native void __dragMouseMoved( java.awt.dnd.DragSourceDragEvent arg0 ); - - public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent arg0 ) { - __dragMouseMoved( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/DropTargetListenerProxy.java b/src/org/genie/java_awt/DropTargetListenerProxy.java deleted file mode 100644 index 8468db5..0000000 --- a/src/org/genie/java_awt/DropTargetListenerProxy.java +++ /dev/null @@ -1,54 +0,0 @@ - -/// interface java.awt.dnd.DropTargetListener /// - -package org.genie.java_awt; - -public class DropTargetListenerProxy implements java.awt.dnd.DropTargetListener { - - long swiftObject; - - DropTargetListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.dnd.DropTargetListener.dragEnter(java.awt.dnd.DropTargetDragEvent) - - public native void __dragEnter( java.awt.dnd.DropTargetDragEvent arg0 ); - - public void dragEnter( java.awt.dnd.DropTargetDragEvent arg0 ) { - __dragEnter( arg0 ); - } - - /// public abstract void java.awt.dnd.DropTargetListener.dragOver(java.awt.dnd.DropTargetDragEvent) - - public native void __dragOver( java.awt.dnd.DropTargetDragEvent arg0 ); - - public void dragOver( java.awt.dnd.DropTargetDragEvent arg0 ) { - __dragOver( arg0 ); - } - - /// public abstract void java.awt.dnd.DropTargetListener.dropActionChanged(java.awt.dnd.DropTargetDragEvent) - - public native void __dropActionChanged( java.awt.dnd.DropTargetDragEvent arg0 ); - - public void dropActionChanged( java.awt.dnd.DropTargetDragEvent arg0 ) { - __dropActionChanged( arg0 ); - } - - /// public abstract void java.awt.dnd.DropTargetListener.dragExit(java.awt.dnd.DropTargetEvent) - - public native void __dragExit( java.awt.dnd.DropTargetEvent arg0 ); - - public void dragExit( java.awt.dnd.DropTargetEvent arg0 ) { - __dragExit( arg0 ); - } - - /// public abstract void java.awt.dnd.DropTargetListener.drop(java.awt.dnd.DropTargetDropEvent) - - public native void __drop( java.awt.dnd.DropTargetDropEvent arg0 ); - - public void drop( java.awt.dnd.DropTargetDropEvent arg0 ) { - __drop( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/FileDialogProxy.java b/src/org/genie/java_awt/FileDialogProxy.java deleted file mode 100644 index 7caa790..0000000 --- a/src/org/genie/java_awt/FileDialogProxy.java +++ /dev/null @@ -1,68 +0,0 @@ - -/// class java.awt.FileDialog /// - -package org.genie.java_awt; - -public class FileDialogProxy extends java.awt.FileDialog { - - long swiftObject; - - /// public java.awt.FileDialog(java.awt.Dialog,java.lang.String,int) - - FileDialogProxy( java.awt.Dialog arg0, java.lang.String arg1, int arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.FileDialog(java.awt.Frame) - - FileDialogProxy( java.awt.Frame arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.FileDialog(java.awt.Frame,java.lang.String) - - FileDialogProxy( java.awt.Frame arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.FileDialog(java.awt.Frame,java.lang.String,int) - - FileDialogProxy( java.awt.Frame arg0, java.lang.String arg1, int arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.FileDialog(java.awt.Dialog) - - FileDialogProxy( java.awt.Dialog arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.FileDialog(java.awt.Dialog,java.lang.String) - - FileDialogProxy( java.awt.Dialog arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public void java.awt.Window.paint(java.awt.Graphics) - - public native void __paint( java.awt.Graphics arg0 ); - - boolean entered_paint_0; - - public void paint( java.awt.Graphics arg0 ) { - if ( !entered_paint_0 ) { - entered_paint_0 = true; - __paint( arg0 ); - entered_paint_0 = false; - } - else - super.paint( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/FlavorListenerProxy.java b/src/org/genie/java_awt/FlavorListenerProxy.java deleted file mode 100644 index 15165cf..0000000 --- a/src/org/genie/java_awt/FlavorListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.datatransfer.FlavorListener /// - -package org.genie.java_awt; - -public class FlavorListenerProxy implements java.awt.datatransfer.FlavorListener { - - long swiftObject; - - FlavorListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.datatransfer.FlavorListener.flavorsChanged(java.awt.datatransfer.FlavorEvent) - - public native void __flavorsChanged( java.awt.datatransfer.FlavorEvent arg0 ); - - public void flavorsChanged( java.awt.datatransfer.FlavorEvent arg0 ) { - __flavorsChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/FocusListenerProxy.java b/src/org/genie/java_awt/FocusListenerProxy.java deleted file mode 100644 index b81fd5f..0000000 --- a/src/org/genie/java_awt/FocusListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.awt.event.FocusListener /// - -package org.genie.java_awt; - -public class FocusListenerProxy implements java.awt.event.FocusListener { - - long swiftObject; - - FocusListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.FocusListener.focusGained(java.awt.event.FocusEvent) - - public native void __focusGained( java.awt.event.FocusEvent arg0 ); - - public void focusGained( java.awt.event.FocusEvent arg0 ) { - __focusGained( arg0 ); - } - - /// public abstract void java.awt.event.FocusListener.focusLost(java.awt.event.FocusEvent) - - public native void __focusLost( java.awt.event.FocusEvent arg0 ); - - public void focusLost( java.awt.event.FocusEvent arg0 ) { - __focusLost( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/FrameProxy.java b/src/org/genie/java_awt/FrameProxy.java deleted file mode 100644 index e96b37f..0000000 --- a/src/org/genie/java_awt/FrameProxy.java +++ /dev/null @@ -1,54 +0,0 @@ - -/// class java.awt.Frame /// - -package org.genie.java_awt; - -public class FrameProxy extends java.awt.Frame { - - long swiftObject; - - /// public java.awt.Frame() throws java.awt.HeadlessException - - FrameProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public java.awt.Frame(java.awt.GraphicsConfiguration) - - FrameProxy( java.awt.GraphicsConfiguration arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.Frame(java.lang.String) throws java.awt.HeadlessException - - FrameProxy( java.lang.String arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public java.awt.Frame(java.lang.String,java.awt.GraphicsConfiguration) - - FrameProxy( java.lang.String arg0, java.awt.GraphicsConfiguration arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public void java.awt.Window.paint(java.awt.Graphics) - - public native void __paint( java.awt.Graphics arg0 ); - - boolean entered_paint_0; - - public void paint( java.awt.Graphics arg0 ) { - if ( !entered_paint_0 ) { - entered_paint_0 = true; - __paint( arg0 ); - entered_paint_0 = false; - } - else - super.paint( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/HierarchyBoundsListenerProxy.java b/src/org/genie/java_awt/HierarchyBoundsListenerProxy.java deleted file mode 100644 index c29c1db..0000000 --- a/src/org/genie/java_awt/HierarchyBoundsListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.awt.event.HierarchyBoundsListener /// - -package org.genie.java_awt; - -public class HierarchyBoundsListenerProxy implements java.awt.event.HierarchyBoundsListener { - - long swiftObject; - - HierarchyBoundsListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.HierarchyBoundsListener.ancestorMoved(java.awt.event.HierarchyEvent) - - public native void __ancestorMoved( java.awt.event.HierarchyEvent arg0 ); - - public void ancestorMoved( java.awt.event.HierarchyEvent arg0 ) { - __ancestorMoved( arg0 ); - } - - /// public abstract void java.awt.event.HierarchyBoundsListener.ancestorResized(java.awt.event.HierarchyEvent) - - public native void __ancestorResized( java.awt.event.HierarchyEvent arg0 ); - - public void ancestorResized( java.awt.event.HierarchyEvent arg0 ) { - __ancestorResized( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/HierarchyListenerProxy.java b/src/org/genie/java_awt/HierarchyListenerProxy.java deleted file mode 100644 index 8eb80df..0000000 --- a/src/org/genie/java_awt/HierarchyListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.HierarchyListener /// - -package org.genie.java_awt; - -public class HierarchyListenerProxy implements java.awt.event.HierarchyListener { - - long swiftObject; - - HierarchyListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.HierarchyListener.hierarchyChanged(java.awt.event.HierarchyEvent) - - public native void __hierarchyChanged( java.awt.event.HierarchyEvent arg0 ); - - public void hierarchyChanged( java.awt.event.HierarchyEvent arg0 ) { - __hierarchyChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/InputMethodListenerProxy.java b/src/org/genie/java_awt/InputMethodListenerProxy.java deleted file mode 100644 index b706f03..0000000 --- a/src/org/genie/java_awt/InputMethodListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.awt.event.InputMethodListener /// - -package org.genie.java_awt; - -public class InputMethodListenerProxy implements java.awt.event.InputMethodListener { - - long swiftObject; - - InputMethodListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.InputMethodListener.inputMethodTextChanged(java.awt.event.InputMethodEvent) - - public native void __inputMethodTextChanged( java.awt.event.InputMethodEvent arg0 ); - - public void inputMethodTextChanged( java.awt.event.InputMethodEvent arg0 ) { - __inputMethodTextChanged( arg0 ); - } - - /// public abstract void java.awt.event.InputMethodListener.caretPositionChanged(java.awt.event.InputMethodEvent) - - public native void __caretPositionChanged( java.awt.event.InputMethodEvent arg0 ); - - public void caretPositionChanged( java.awt.event.InputMethodEvent arg0 ) { - __caretPositionChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/ItemListenerProxy.java b/src/org/genie/java_awt/ItemListenerProxy.java deleted file mode 100644 index 59ec736..0000000 --- a/src/org/genie/java_awt/ItemListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.ItemListener /// - -package org.genie.java_awt; - -public class ItemListenerProxy implements java.awt.event.ItemListener { - - long swiftObject; - - ItemListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.ItemListener.itemStateChanged(java.awt.event.ItemEvent) - - public native void __itemStateChanged( java.awt.event.ItemEvent arg0 ); - - public void itemStateChanged( java.awt.event.ItemEvent arg0 ) { - __itemStateChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/KeyListenerProxy.java b/src/org/genie/java_awt/KeyListenerProxy.java deleted file mode 100644 index d5a1710..0000000 --- a/src/org/genie/java_awt/KeyListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface java.awt.event.KeyListener /// - -package org.genie.java_awt; - -public class KeyListenerProxy implements java.awt.event.KeyListener { - - long swiftObject; - - KeyListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.KeyListener.keyTyped(java.awt.event.KeyEvent) - - public native void __keyTyped( java.awt.event.KeyEvent arg0 ); - - public void keyTyped( java.awt.event.KeyEvent arg0 ) { - __keyTyped( arg0 ); - } - - /// public abstract void java.awt.event.KeyListener.keyPressed(java.awt.event.KeyEvent) - - public native void __keyPressed( java.awt.event.KeyEvent arg0 ); - - public void keyPressed( java.awt.event.KeyEvent arg0 ) { - __keyPressed( arg0 ); - } - - /// public abstract void java.awt.event.KeyListener.keyReleased(java.awt.event.KeyEvent) - - public native void __keyReleased( java.awt.event.KeyEvent arg0 ); - - public void keyReleased( java.awt.event.KeyEvent arg0 ) { - __keyReleased( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/LayoutManagerProxy.java b/src/org/genie/java_awt/LayoutManagerProxy.java deleted file mode 100644 index 1fcc605..0000000 --- a/src/org/genie/java_awt/LayoutManagerProxy.java +++ /dev/null @@ -1,54 +0,0 @@ - -/// interface java.awt.LayoutManager /// - -package org.genie.java_awt; - -public class LayoutManagerProxy implements java.awt.LayoutManager { - - long swiftObject; - - LayoutManagerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.LayoutManager.removeLayoutComponent(java.awt.Component) - - public native void __removeLayoutComponent( java.awt.Component arg0 ); - - public void removeLayoutComponent( java.awt.Component arg0 ) { - __removeLayoutComponent( arg0 ); - } - - /// public abstract void java.awt.LayoutManager.addLayoutComponent(java.lang.String,java.awt.Component) - - public native void __addLayoutComponent( java.lang.String arg0, java.awt.Component arg1 ); - - public void addLayoutComponent( java.lang.String arg0, java.awt.Component arg1 ) { - __addLayoutComponent( arg0, arg1 ); - } - - /// public abstract void java.awt.LayoutManager.layoutContainer(java.awt.Container) - - public native void __layoutContainer( java.awt.Container arg0 ); - - public void layoutContainer( java.awt.Container arg0 ) { - __layoutContainer( arg0 ); - } - - /// public abstract java.awt.Dimension java.awt.LayoutManager.preferredLayoutSize(java.awt.Container) - - public native java.awt.Dimension __preferredLayoutSize( java.awt.Container arg0 ); - - public java.awt.Dimension preferredLayoutSize( java.awt.Container arg0 ) { - return __preferredLayoutSize( arg0 ); - } - - /// public abstract java.awt.Dimension java.awt.LayoutManager.minimumLayoutSize(java.awt.Container) - - public native java.awt.Dimension __minimumLayoutSize( java.awt.Container arg0 ); - - public java.awt.Dimension minimumLayoutSize( java.awt.Container arg0 ) { - return __minimumLayoutSize( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/MouseListenerProxy.java b/src/org/genie/java_awt/MouseListenerProxy.java deleted file mode 100644 index 9835812..0000000 --- a/src/org/genie/java_awt/MouseListenerProxy.java +++ /dev/null @@ -1,54 +0,0 @@ - -/// interface java.awt.event.MouseListener /// - -package org.genie.java_awt; - -public class MouseListenerProxy implements java.awt.event.MouseListener { - - long swiftObject; - - MouseListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) - - public native void __mousePressed( java.awt.event.MouseEvent arg0 ); - - public void mousePressed( java.awt.event.MouseEvent arg0 ) { - __mousePressed( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) - - public native void __mouseReleased( java.awt.event.MouseEvent arg0 ); - - public void mouseReleased( java.awt.event.MouseEvent arg0 ) { - __mouseReleased( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseClicked(java.awt.event.MouseEvent) - - public native void __mouseClicked( java.awt.event.MouseEvent arg0 ); - - public void mouseClicked( java.awt.event.MouseEvent arg0 ) { - __mouseClicked( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) - - public native void __mouseExited( java.awt.event.MouseEvent arg0 ); - - public void mouseExited( java.awt.event.MouseEvent arg0 ) { - __mouseExited( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) - - public native void __mouseEntered( java.awt.event.MouseEvent arg0 ); - - public void mouseEntered( java.awt.event.MouseEvent arg0 ) { - __mouseEntered( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/MouseMotionListenerProxy.java b/src/org/genie/java_awt/MouseMotionListenerProxy.java deleted file mode 100644 index dd59217..0000000 --- a/src/org/genie/java_awt/MouseMotionListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.awt.event.MouseMotionListener /// - -package org.genie.java_awt; - -public class MouseMotionListenerProxy implements java.awt.event.MouseMotionListener { - - long swiftObject; - - MouseMotionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) - - public native void __mouseMoved( java.awt.event.MouseEvent arg0 ); - - public void mouseMoved( java.awt.event.MouseEvent arg0 ) { - __mouseMoved( arg0 ); - } - - /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) - - public native void __mouseDragged( java.awt.event.MouseEvent arg0 ); - - public void mouseDragged( java.awt.event.MouseEvent arg0 ) { - __mouseDragged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/MouseWheelListenerProxy.java b/src/org/genie/java_awt/MouseWheelListenerProxy.java deleted file mode 100644 index fb4f0fb..0000000 --- a/src/org/genie/java_awt/MouseWheelListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.MouseWheelListener /// - -package org.genie.java_awt; - -public class MouseWheelListenerProxy implements java.awt.event.MouseWheelListener { - - long swiftObject; - - MouseWheelListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.MouseWheelListener.mouseWheelMoved(java.awt.event.MouseWheelEvent) - - public native void __mouseWheelMoved( java.awt.event.MouseWheelEvent arg0 ); - - public void mouseWheelMoved( java.awt.event.MouseWheelEvent arg0 ) { - __mouseWheelMoved( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/TextListenerProxy.java b/src/org/genie/java_awt/TextListenerProxy.java deleted file mode 100644 index 1c02c88..0000000 --- a/src/org/genie/java_awt/TextListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.TextListener /// - -package org.genie.java_awt; - -public class TextListenerProxy implements java.awt.event.TextListener { - - long swiftObject; - - TextListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.TextListener.textValueChanged(java.awt.event.TextEvent) - - public native void __textValueChanged( java.awt.event.TextEvent arg0 ); - - public void textValueChanged( java.awt.event.TextEvent arg0 ) { - __textValueChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/WindowFocusListenerProxy.java b/src/org/genie/java_awt/WindowFocusListenerProxy.java deleted file mode 100644 index 7ae6e73..0000000 --- a/src/org/genie/java_awt/WindowFocusListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.awt.event.WindowFocusListener /// - -package org.genie.java_awt; - -public class WindowFocusListenerProxy implements java.awt.event.WindowFocusListener { - - long swiftObject; - - WindowFocusListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.WindowFocusListener.windowGainedFocus(java.awt.event.WindowEvent) - - public native void __windowGainedFocus( java.awt.event.WindowEvent arg0 ); - - public void windowGainedFocus( java.awt.event.WindowEvent arg0 ) { - __windowGainedFocus( arg0 ); - } - - /// public abstract void java.awt.event.WindowFocusListener.windowLostFocus(java.awt.event.WindowEvent) - - public native void __windowLostFocus( java.awt.event.WindowEvent arg0 ); - - public void windowLostFocus( java.awt.event.WindowEvent arg0 ) { - __windowLostFocus( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/WindowListenerProxy.java b/src/org/genie/java_awt/WindowListenerProxy.java deleted file mode 100644 index 0e9b173..0000000 --- a/src/org/genie/java_awt/WindowListenerProxy.java +++ /dev/null @@ -1,70 +0,0 @@ - -/// interface java.awt.event.WindowListener /// - -package org.genie.java_awt; - -public class WindowListenerProxy implements java.awt.event.WindowListener { - - long swiftObject; - - WindowListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.WindowListener.windowOpened(java.awt.event.WindowEvent) - - public native void __windowOpened( java.awt.event.WindowEvent arg0 ); - - public void windowOpened( java.awt.event.WindowEvent arg0 ) { - __windowOpened( arg0 ); - } - - /// public abstract void java.awt.event.WindowListener.windowClosing(java.awt.event.WindowEvent) - - public native void __windowClosing( java.awt.event.WindowEvent arg0 ); - - public void windowClosing( java.awt.event.WindowEvent arg0 ) { - __windowClosing( arg0 ); - } - - /// public abstract void java.awt.event.WindowListener.windowClosed(java.awt.event.WindowEvent) - - public native void __windowClosed( java.awt.event.WindowEvent arg0 ); - - public void windowClosed( java.awt.event.WindowEvent arg0 ) { - __windowClosed( arg0 ); - } - - /// public abstract void java.awt.event.WindowListener.windowIconified(java.awt.event.WindowEvent) - - public native void __windowIconified( java.awt.event.WindowEvent arg0 ); - - public void windowIconified( java.awt.event.WindowEvent arg0 ) { - __windowIconified( arg0 ); - } - - /// public abstract void java.awt.event.WindowListener.windowDeiconified(java.awt.event.WindowEvent) - - public native void __windowDeiconified( java.awt.event.WindowEvent arg0 ); - - public void windowDeiconified( java.awt.event.WindowEvent arg0 ) { - __windowDeiconified( arg0 ); - } - - /// public abstract void java.awt.event.WindowListener.windowActivated(java.awt.event.WindowEvent) - - public native void __windowActivated( java.awt.event.WindowEvent arg0 ); - - public void windowActivated( java.awt.event.WindowEvent arg0 ) { - __windowActivated( arg0 ); - } - - /// public abstract void java.awt.event.WindowListener.windowDeactivated(java.awt.event.WindowEvent) - - public native void __windowDeactivated( java.awt.event.WindowEvent arg0 ); - - public void windowDeactivated( java.awt.event.WindowEvent arg0 ) { - __windowDeactivated( arg0 ); - } - -} diff --git a/src/org/genie/java_awt/WindowStateListenerProxy.java b/src/org/genie/java_awt/WindowStateListenerProxy.java deleted file mode 100644 index fb9f317..0000000 --- a/src/org/genie/java_awt/WindowStateListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.awt.event.WindowStateListener /// - -package org.genie.java_awt; - -public class WindowStateListenerProxy implements java.awt.event.WindowStateListener { - - long swiftObject; - - WindowStateListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.WindowStateListener.windowStateChanged(java.awt.event.WindowEvent) - - public native void __windowStateChanged( java.awt.event.WindowEvent arg0 ); - - public void windowStateChanged( java.awt.event.WindowEvent arg0 ) { - __windowStateChanged( arg0 ); - } - -} diff --git a/src/org/genie/java_lang/InvocationHandlerProxy.java b/src/org/genie/java_lang/InvocationHandlerProxy.java deleted file mode 100644 index 8d6b936..0000000 --- a/src/org/genie/java_lang/InvocationHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.lang.reflect.InvocationHandler /// - -package org.genie.java_lang; - -public class InvocationHandlerProxy implements java.lang.reflect.InvocationHandler { - - long swiftObject; - - InvocationHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract java.lang.Object java.lang.reflect.InvocationHandler.invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]) throws java.lang.Throwable - - public native java.lang.Object __invoke( java.lang.Object arg0, java.lang.reflect.Method arg1, java.lang.Object[] arg2 ); - - public java.lang.Object invoke( java.lang.Object arg0, java.lang.reflect.Method arg1, java.lang.Object[] arg2 ) throws java.lang.Throwable { - return __invoke( arg0, arg1, arg2 ); - } - -} diff --git a/src/org/genie/java_lang/RunnableProxy.java b/src/org/genie/java_lang/RunnableProxy.java deleted file mode 100644 index 8bf6969..0000000 --- a/src/org/genie/java_lang/RunnableProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.lang.Runnable /// - -package org.genie.java_lang; - -public class RunnableProxy implements java.lang.Runnable { - - long swiftObject; - - RunnableProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.lang.Runnable.run() - - public native void __run(); - - public void run() { - __run( ); - } - -} diff --git a/src/org/genie/java_lang/Thread_UncaughtExceptionHandlerProxy.java b/src/org/genie/java_lang/Thread_UncaughtExceptionHandlerProxy.java deleted file mode 100644 index 7f1a2b3..0000000 --- a/src/org/genie/java_lang/Thread_UncaughtExceptionHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.lang.Thread$UncaughtExceptionHandler /// - -package org.genie.java_lang; - -public class Thread_UncaughtExceptionHandlerProxy implements java.lang.Thread.UncaughtExceptionHandler { - - long swiftObject; - - Thread_UncaughtExceptionHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.lang.Thread$UncaughtExceptionHandler.uncaughtException(java.lang.Thread,java.lang.Throwable) - - public native void __uncaughtException( java.lang.Thread arg0, java.lang.Throwable arg1 ); - - public void uncaughtException( java.lang.Thread arg0, java.lang.Throwable arg1 ) { - __uncaughtException( arg0, arg1 ); - } - -} diff --git a/src/org/genie/java_util/EventListenerProxy.java b/src/org/genie/java_util/EventListenerProxy.java deleted file mode 100644 index 8fcdbf0..0000000 --- a/src/org/genie/java_util/EventListenerProxy.java +++ /dev/null @@ -1,14 +0,0 @@ - -/// interface java.util.EventListener /// - -package org.genie.java_util; - -public class EventListenerProxy implements java.util.EventListener { - - long swiftObject; - - EventListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - -} diff --git a/src/org/genie/java_util/NodeChangeListenerProxy.java b/src/org/genie/java_util/NodeChangeListenerProxy.java deleted file mode 100644 index 2d335b2..0000000 --- a/src/org/genie/java_util/NodeChangeListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface java.util.prefs.NodeChangeListener /// - -package org.genie.java_util; - -public class NodeChangeListenerProxy implements java.util.prefs.NodeChangeListener { - - long swiftObject; - - NodeChangeListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.util.prefs.NodeChangeListener.childAdded(java.util.prefs.NodeChangeEvent) - - public native void __childAdded( java.util.prefs.NodeChangeEvent arg0 ); - - public void childAdded( java.util.prefs.NodeChangeEvent arg0 ) { - __childAdded( arg0 ); - } - - /// public abstract void java.util.prefs.NodeChangeListener.childRemoved(java.util.prefs.NodeChangeEvent) - - public native void __childRemoved( java.util.prefs.NodeChangeEvent arg0 ); - - public void childRemoved( java.util.prefs.NodeChangeEvent arg0 ) { - __childRemoved( arg0 ); - } - -} diff --git a/src/org/genie/java_util/PreferenceChangeListenerProxy.java b/src/org/genie/java_util/PreferenceChangeListenerProxy.java deleted file mode 100644 index 795216e..0000000 --- a/src/org/genie/java_util/PreferenceChangeListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.util.prefs.PreferenceChangeListener /// - -package org.genie.java_util; - -public class PreferenceChangeListenerProxy implements java.util.prefs.PreferenceChangeListener { - - long swiftObject; - - PreferenceChangeListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.util.prefs.PreferenceChangeListener.preferenceChange(java.util.prefs.PreferenceChangeEvent) - - public native void __preferenceChange( java.util.prefs.PreferenceChangeEvent arg0 ); - - public void preferenceChange( java.util.prefs.PreferenceChangeEvent arg0 ) { - __preferenceChange( arg0 ); - } - -} diff --git a/src/org/genie/java_util/RejectedExecutionHandlerProxy.java b/src/org/genie/java_util/RejectedExecutionHandlerProxy.java deleted file mode 100644 index a05e724..0000000 --- a/src/org/genie/java_util/RejectedExecutionHandlerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface java.util.concurrent.RejectedExecutionHandler /// - -package org.genie.java_util; - -public class RejectedExecutionHandlerProxy implements java.util.concurrent.RejectedExecutionHandler { - - long swiftObject; - - RejectedExecutionHandlerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.util.concurrent.RejectedExecutionHandler.rejectedExecution(java.lang.Runnable,java.util.concurrent.ThreadPoolExecutor) - - public native void __rejectedExecution( java.lang.Runnable arg0, java.util.concurrent.ThreadPoolExecutor arg1 ); - - public void rejectedExecution( java.lang.Runnable arg0, java.util.concurrent.ThreadPoolExecutor arg1 ) { - __rejectedExecution( arg0, arg1 ); - } - -} diff --git a/src/org/genie/javax_swing/AncestorListenerProxy.java b/src/org/genie/javax_swing/AncestorListenerProxy.java deleted file mode 100644 index 7c3513d..0000000 --- a/src/org/genie/javax_swing/AncestorListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface javax.swing.event.AncestorListener /// - -package org.genie.javax_swing; - -public class AncestorListenerProxy implements javax.swing.event.AncestorListener { - - long swiftObject; - - AncestorListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.AncestorListener.ancestorMoved(javax.swing.event.AncestorEvent) - - public native void __ancestorMoved( javax.swing.event.AncestorEvent arg0 ); - - public void ancestorMoved( javax.swing.event.AncestorEvent arg0 ) { - __ancestorMoved( arg0 ); - } - - /// public abstract void javax.swing.event.AncestorListener.ancestorAdded(javax.swing.event.AncestorEvent) - - public native void __ancestorAdded( javax.swing.event.AncestorEvent arg0 ); - - public void ancestorAdded( javax.swing.event.AncestorEvent arg0 ) { - __ancestorAdded( arg0 ); - } - - /// public abstract void javax.swing.event.AncestorListener.ancestorRemoved(javax.swing.event.AncestorEvent) - - public native void __ancestorRemoved( javax.swing.event.AncestorEvent arg0 ); - - public void ancestorRemoved( javax.swing.event.AncestorEvent arg0 ) { - __ancestorRemoved( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/CaretListenerProxy.java b/src/org/genie/javax_swing/CaretListenerProxy.java deleted file mode 100644 index 8767170..0000000 --- a/src/org/genie/javax_swing/CaretListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.CaretListener /// - -package org.genie.javax_swing; - -public class CaretListenerProxy implements javax.swing.event.CaretListener { - - long swiftObject; - - CaretListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.CaretListener.caretUpdate(javax.swing.event.CaretEvent) - - public native void __caretUpdate( javax.swing.event.CaretEvent arg0 ); - - public void caretUpdate( javax.swing.event.CaretEvent arg0 ) { - __caretUpdate( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/CellEditorListenerProxy.java b/src/org/genie/javax_swing/CellEditorListenerProxy.java deleted file mode 100644 index 4207143..0000000 --- a/src/org/genie/javax_swing/CellEditorListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface javax.swing.event.CellEditorListener /// - -package org.genie.javax_swing; - -public class CellEditorListenerProxy implements javax.swing.event.CellEditorListener { - - long swiftObject; - - CellEditorListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.CellEditorListener.editingStopped(javax.swing.event.ChangeEvent) - - public native void __editingStopped( javax.swing.event.ChangeEvent arg0 ); - - public void editingStopped( javax.swing.event.ChangeEvent arg0 ) { - __editingStopped( arg0 ); - } - - /// public abstract void javax.swing.event.CellEditorListener.editingCanceled(javax.swing.event.ChangeEvent) - - public native void __editingCanceled( javax.swing.event.ChangeEvent arg0 ); - - public void editingCanceled( javax.swing.event.ChangeEvent arg0 ) { - __editingCanceled( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/ChangeListenerProxy.java b/src/org/genie/javax_swing/ChangeListenerProxy.java deleted file mode 100644 index 62b0e22..0000000 --- a/src/org/genie/javax_swing/ChangeListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.ChangeListener /// - -package org.genie.javax_swing; - -public class ChangeListenerProxy implements javax.swing.event.ChangeListener { - - long swiftObject; - - ChangeListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.ChangeListener.stateChanged(javax.swing.event.ChangeEvent) - - public native void __stateChanged( javax.swing.event.ChangeEvent arg0 ); - - public void stateChanged( javax.swing.event.ChangeEvent arg0 ) { - __stateChanged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/DefaultTableModelProxy.java b/src/org/genie/javax_swing/DefaultTableModelProxy.java deleted file mode 100644 index dcffe7c..0000000 --- a/src/org/genie/javax_swing/DefaultTableModelProxy.java +++ /dev/null @@ -1,69 +0,0 @@ - -/// class javax.swing.table.DefaultTableModel /// - -package org.genie.javax_swing; - -public class DefaultTableModelProxy extends javax.swing.table.DefaultTableModel { - - long swiftObject; - - /// public javax.swing.table.DefaultTableModel(java.util.Vector,int) - - DefaultTableModelProxy( java.util.Vector arg0, int arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.table.DefaultTableModel() - - DefaultTableModelProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.table.DefaultTableModel(int,int) - - DefaultTableModelProxy( int arg0, int arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.table.DefaultTableModel(java.lang.Object[][],java.lang.Object[]) - - DefaultTableModelProxy( java.lang.Object[][] arg0, java.lang.Object[] arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.table.DefaultTableModel(java.lang.Object[],int) - - DefaultTableModelProxy( java.lang.Object[] arg0, int arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.table.DefaultTableModel(java.util.Vector,java.util.Vector) - - DefaultTableModelProxy( java.util.Vector arg0, java.util.Vector arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public boolean javax.swing.table.DefaultTableModel.isCellEditable(int,int) - - public native boolean __isCellEditable( int arg0, int arg1 ); - - boolean entered_isCellEditable_0; - - public boolean isCellEditable( int arg0, int arg1 ) { - if ( !entered_isCellEditable_0 ) { - entered_isCellEditable_0 = true; - boolean __return = __isCellEditable( arg0, arg1 ); - entered_isCellEditable_0 = false; - return __return; - } - else - return super.isCellEditable( arg0, arg1 ); - } - -} diff --git a/src/org/genie/javax_swing/DesktopManagerProxy.java b/src/org/genie/javax_swing/DesktopManagerProxy.java deleted file mode 100644 index 0e4ebe4..0000000 --- a/src/org/genie/javax_swing/DesktopManagerProxy.java +++ /dev/null @@ -1,134 +0,0 @@ - -/// interface javax.swing.DesktopManager /// - -package org.genie.javax_swing; - -public class DesktopManagerProxy implements javax.swing.DesktopManager { - - long swiftObject; - - DesktopManagerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.DesktopManager.endDraggingFrame(javax.swing.JComponent) - - public native void __endDraggingFrame( javax.swing.JComponent arg0 ); - - public void endDraggingFrame( javax.swing.JComponent arg0 ) { - __endDraggingFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.beginDraggingFrame(javax.swing.JComponent) - - public native void __beginDraggingFrame( javax.swing.JComponent arg0 ); - - public void beginDraggingFrame( javax.swing.JComponent arg0 ) { - __beginDraggingFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.dragFrame(javax.swing.JComponent,int,int) - - public native void __dragFrame( javax.swing.JComponent arg0, int arg1, int arg2 ); - - public void dragFrame( javax.swing.JComponent arg0, int arg1, int arg2 ) { - __dragFrame( arg0, arg1, arg2 ); - } - - /// public abstract void javax.swing.DesktopManager.iconifyFrame(javax.swing.JInternalFrame) - - public native void __iconifyFrame( javax.swing.JInternalFrame arg0 ); - - public void iconifyFrame( javax.swing.JInternalFrame arg0 ) { - __iconifyFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.openFrame(javax.swing.JInternalFrame) - - public native void __openFrame( javax.swing.JInternalFrame arg0 ); - - public void openFrame( javax.swing.JInternalFrame arg0 ) { - __openFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.closeFrame(javax.swing.JInternalFrame) - - public native void __closeFrame( javax.swing.JInternalFrame arg0 ); - - public void closeFrame( javax.swing.JInternalFrame arg0 ) { - __closeFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.maximizeFrame(javax.swing.JInternalFrame) - - public native void __maximizeFrame( javax.swing.JInternalFrame arg0 ); - - public void maximizeFrame( javax.swing.JInternalFrame arg0 ) { - __maximizeFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.minimizeFrame(javax.swing.JInternalFrame) - - public native void __minimizeFrame( javax.swing.JInternalFrame arg0 ); - - public void minimizeFrame( javax.swing.JInternalFrame arg0 ) { - __minimizeFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.deiconifyFrame(javax.swing.JInternalFrame) - - public native void __deiconifyFrame( javax.swing.JInternalFrame arg0 ); - - public void deiconifyFrame( javax.swing.JInternalFrame arg0 ) { - __deiconifyFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.activateFrame(javax.swing.JInternalFrame) - - public native void __activateFrame( javax.swing.JInternalFrame arg0 ); - - public void activateFrame( javax.swing.JInternalFrame arg0 ) { - __activateFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.deactivateFrame(javax.swing.JInternalFrame) - - public native void __deactivateFrame( javax.swing.JInternalFrame arg0 ); - - public void deactivateFrame( javax.swing.JInternalFrame arg0 ) { - __deactivateFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.beginResizingFrame(javax.swing.JComponent,int) - - public native void __beginResizingFrame( javax.swing.JComponent arg0, int arg1 ); - - public void beginResizingFrame( javax.swing.JComponent arg0, int arg1 ) { - __beginResizingFrame( arg0, arg1 ); - } - - /// public abstract void javax.swing.DesktopManager.resizeFrame(javax.swing.JComponent,int,int,int,int) - - public native void __resizeFrame( javax.swing.JComponent arg0, int arg1, int arg2, int arg3, int arg4 ); - - public void resizeFrame( javax.swing.JComponent arg0, int arg1, int arg2, int arg3, int arg4 ) { - __resizeFrame( arg0, arg1, arg2, arg3, arg4 ); - } - - /// public abstract void javax.swing.DesktopManager.endResizingFrame(javax.swing.JComponent) - - public native void __endResizingFrame( javax.swing.JComponent arg0 ); - - public void endResizingFrame( javax.swing.JComponent arg0 ) { - __endResizingFrame( arg0 ); - } - - /// public abstract void javax.swing.DesktopManager.setBoundsForFrame(javax.swing.JComponent,int,int,int,int) - - public native void __setBoundsForFrame( javax.swing.JComponent arg0, int arg1, int arg2, int arg3, int arg4 ); - - public void setBoundsForFrame( javax.swing.JComponent arg0, int arg1, int arg2, int arg3, int arg4 ) { - __setBoundsForFrame( arg0, arg1, arg2, arg3, arg4 ); - } - -} diff --git a/src/org/genie/javax_swing/DocumentListenerProxy.java b/src/org/genie/javax_swing/DocumentListenerProxy.java deleted file mode 100644 index 9a5cb35..0000000 --- a/src/org/genie/javax_swing/DocumentListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface javax.swing.event.DocumentListener /// - -package org.genie.javax_swing; - -public class DocumentListenerProxy implements javax.swing.event.DocumentListener { - - long swiftObject; - - DocumentListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.DocumentListener.insertUpdate(javax.swing.event.DocumentEvent) - - public native void __insertUpdate( javax.swing.event.DocumentEvent arg0 ); - - public void insertUpdate( javax.swing.event.DocumentEvent arg0 ) { - __insertUpdate( arg0 ); - } - - /// public abstract void javax.swing.event.DocumentListener.removeUpdate(javax.swing.event.DocumentEvent) - - public native void __removeUpdate( javax.swing.event.DocumentEvent arg0 ); - - public void removeUpdate( javax.swing.event.DocumentEvent arg0 ) { - __removeUpdate( arg0 ); - } - - /// public abstract void javax.swing.event.DocumentListener.changedUpdate(javax.swing.event.DocumentEvent) - - public native void __changedUpdate( javax.swing.event.DocumentEvent arg0 ); - - public void changedUpdate( javax.swing.event.DocumentEvent arg0 ) { - __changedUpdate( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/HyperlinkListenerProxy.java b/src/org/genie/javax_swing/HyperlinkListenerProxy.java deleted file mode 100644 index 15cb355..0000000 --- a/src/org/genie/javax_swing/HyperlinkListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.HyperlinkListener /// - -package org.genie.javax_swing; - -public class HyperlinkListenerProxy implements javax.swing.event.HyperlinkListener { - - long swiftObject; - - HyperlinkListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.HyperlinkListener.hyperlinkUpdate(javax.swing.event.HyperlinkEvent) - - public native void __hyperlinkUpdate( javax.swing.event.HyperlinkEvent arg0 ); - - public void hyperlinkUpdate( javax.swing.event.HyperlinkEvent arg0 ) { - __hyperlinkUpdate( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/InternalFrameListenerProxy.java b/src/org/genie/javax_swing/InternalFrameListenerProxy.java deleted file mode 100644 index 6870e92..0000000 --- a/src/org/genie/javax_swing/InternalFrameListenerProxy.java +++ /dev/null @@ -1,70 +0,0 @@ - -/// interface javax.swing.event.InternalFrameListener /// - -package org.genie.javax_swing; - -public class InternalFrameListenerProxy implements javax.swing.event.InternalFrameListener { - - long swiftObject; - - InternalFrameListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosing(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameClosing( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameClosing( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameClosing( arg0 ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameOpened(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameOpened( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameOpened( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameOpened( arg0 ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosed(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameClosed( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameClosed( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameClosed( arg0 ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameIconified(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameIconified( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameIconified( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameIconified( arg0 ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeiconified(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameDeiconified( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameDeiconified( arg0 ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameActivated(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameActivated( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameActivated( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameActivated( arg0 ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameDeactivated( javax.swing.event.InternalFrameEvent arg0 ); - - public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent arg0 ) { - __internalFrameDeactivated( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/JComboBox_KeySelectionManagerProxy.java b/src/org/genie/javax_swing/JComboBox_KeySelectionManagerProxy.java deleted file mode 100644 index 7df4614..0000000 --- a/src/org/genie/javax_swing/JComboBox_KeySelectionManagerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.JComboBox$KeySelectionManager /// - -package org.genie.javax_swing; - -public class JComboBox_KeySelectionManagerProxy implements javax.swing.JComboBox.KeySelectionManager { - - long swiftObject; - - JComboBox_KeySelectionManagerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract int javax.swing.JComboBox$KeySelectionManager.selectionForKey(char,javax.swing.ComboBoxModel) - - public native int __selectionForKey( char arg0, javax.swing.ComboBoxModel arg1 ); - - public int selectionForKey( char arg0, javax.swing.ComboBoxModel arg1 ) { - return __selectionForKey( arg0, arg1 ); - } - -} diff --git a/src/org/genie/javax_swing/JDialogProxy.java b/src/org/genie/javax_swing/JDialogProxy.java deleted file mode 100644 index 602ea3e..0000000 --- a/src/org/genie/javax_swing/JDialogProxy.java +++ /dev/null @@ -1,138 +0,0 @@ - -/// class javax.swing.JDialog /// - -package org.genie.javax_swing; - -public class JDialogProxy extends javax.swing.JDialog { - - long swiftObject; - - /// public javax.swing.JDialog() - - JDialogProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Frame) - - JDialogProxy( java.awt.Frame arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Frame,boolean) - - JDialogProxy( java.awt.Frame arg0, boolean arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Frame,java.lang.String) - - JDialogProxy( java.awt.Frame arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Frame,java.lang.String,boolean) - - JDialogProxy( java.awt.Frame arg0, java.lang.String arg1, boolean arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Frame,java.lang.String,boolean,java.awt.GraphicsConfiguration) - - JDialogProxy( java.awt.Frame arg0, java.lang.String arg1, boolean arg2, java.awt.GraphicsConfiguration arg3 , long swiftObject ) { - super( arg0, arg1, arg2, arg3 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Dialog) - - JDialogProxy( java.awt.Dialog arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Dialog,boolean) - - JDialogProxy( java.awt.Dialog arg0, boolean arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Dialog,java.lang.String) - - JDialogProxy( java.awt.Dialog arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Dialog,java.lang.String,boolean) - - JDialogProxy( java.awt.Dialog arg0, java.lang.String arg1, boolean arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Dialog,java.lang.String,boolean,java.awt.GraphicsConfiguration) - - JDialogProxy( java.awt.Dialog arg0, java.lang.String arg1, boolean arg2, java.awt.GraphicsConfiguration arg3 , long swiftObject ) { - super( arg0, arg1, arg2, arg3 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Window) - - JDialogProxy( java.awt.Window arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Window,java.awt.Dialog$ModalityType) - - JDialogProxy( java.awt.Window arg0, java.awt.Dialog.ModalityType arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Window,java.lang.String) - - JDialogProxy( java.awt.Window arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType) - - JDialogProxy( java.awt.Window arg0, java.lang.String arg1, java.awt.Dialog.ModalityType arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JDialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType,java.awt.GraphicsConfiguration) - - JDialogProxy( java.awt.Window arg0, java.lang.String arg1, java.awt.Dialog.ModalityType arg2, java.awt.GraphicsConfiguration arg3 , long swiftObject ) { - super( arg0, arg1, arg2, arg3 ); - this.swiftObject = swiftObject; - } - - /// public void java.awt.Window.paint(java.awt.Graphics) - - public native void __paint( java.awt.Graphics arg0 ); - - boolean entered_paint_0; - - public void paint( java.awt.Graphics arg0 ) { - if ( !entered_paint_0 ) { - entered_paint_0 = true; - __paint( arg0 ); - entered_paint_0 = false; - } - else - super.paint( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/JFrameProxy.java b/src/org/genie/javax_swing/JFrameProxy.java deleted file mode 100644 index e948e77..0000000 --- a/src/org/genie/javax_swing/JFrameProxy.java +++ /dev/null @@ -1,54 +0,0 @@ - -/// class javax.swing.JFrame /// - -package org.genie.javax_swing; - -public class JFrameProxy extends javax.swing.JFrame { - - long swiftObject; - - /// public javax.swing.JFrame() throws java.awt.HeadlessException - - JFrameProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JFrame(java.awt.GraphicsConfiguration) - - JFrameProxy( java.awt.GraphicsConfiguration arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JFrame(java.lang.String) throws java.awt.HeadlessException - - JFrameProxy( java.lang.String arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JFrame(java.lang.String,java.awt.GraphicsConfiguration) - - JFrameProxy( java.lang.String arg0, java.awt.GraphicsConfiguration arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public void java.awt.Window.paint(java.awt.Graphics) - - public native void __paint( java.awt.Graphics arg0 ); - - boolean entered_paint_0; - - public void paint( java.awt.Graphics arg0 ) { - if ( !entered_paint_0 ) { - entered_paint_0 = true; - __paint( arg0 ); - entered_paint_0 = false; - } - else - super.paint( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/JWindowProxy.java b/src/org/genie/javax_swing/JWindowProxy.java deleted file mode 100644 index a0a8d2b..0000000 --- a/src/org/genie/javax_swing/JWindowProxy.java +++ /dev/null @@ -1,61 +0,0 @@ - -/// class javax.swing.JWindow /// - -package org.genie.javax_swing; - -public class JWindowProxy extends javax.swing.JWindow { - - long swiftObject; - - /// public javax.swing.JWindow() - - JWindowProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JWindow(java.awt.GraphicsConfiguration) - - JWindowProxy( java.awt.GraphicsConfiguration arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JWindow(java.awt.Frame) - - JWindowProxy( java.awt.Frame arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JWindow(java.awt.Window) - - JWindowProxy( java.awt.Window arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.JWindow(java.awt.Window,java.awt.GraphicsConfiguration) - - JWindowProxy( java.awt.Window arg0, java.awt.GraphicsConfiguration arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// public void java.awt.Window.paint(java.awt.Graphics) - - public native void __paint( java.awt.Graphics arg0 ); - - boolean entered_paint_0; - - public void paint( java.awt.Graphics arg0 ) { - if ( !entered_paint_0 ) { - entered_paint_0 = true; - __paint( arg0 ); - entered_paint_0 = false; - } - else - super.paint( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/ListDataListenerProxy.java b/src/org/genie/javax_swing/ListDataListenerProxy.java deleted file mode 100644 index 1651540..0000000 --- a/src/org/genie/javax_swing/ListDataListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface javax.swing.event.ListDataListener /// - -package org.genie.javax_swing; - -public class ListDataListenerProxy implements javax.swing.event.ListDataListener { - - long swiftObject; - - ListDataListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.ListDataListener.contentsChanged(javax.swing.event.ListDataEvent) - - public native void __contentsChanged( javax.swing.event.ListDataEvent arg0 ); - - public void contentsChanged( javax.swing.event.ListDataEvent arg0 ) { - __contentsChanged( arg0 ); - } - - /// public abstract void javax.swing.event.ListDataListener.intervalAdded(javax.swing.event.ListDataEvent) - - public native void __intervalAdded( javax.swing.event.ListDataEvent arg0 ); - - public void intervalAdded( javax.swing.event.ListDataEvent arg0 ) { - __intervalAdded( arg0 ); - } - - /// public abstract void javax.swing.event.ListDataListener.intervalRemoved(javax.swing.event.ListDataEvent) - - public native void __intervalRemoved( javax.swing.event.ListDataEvent arg0 ); - - public void intervalRemoved( javax.swing.event.ListDataEvent arg0 ) { - __intervalRemoved( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/ListSelectionListenerProxy.java b/src/org/genie/javax_swing/ListSelectionListenerProxy.java deleted file mode 100644 index ad3ee0f..0000000 --- a/src/org/genie/javax_swing/ListSelectionListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.ListSelectionListener /// - -package org.genie.javax_swing; - -public class ListSelectionListenerProxy implements javax.swing.event.ListSelectionListener { - - long swiftObject; - - ListSelectionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.ListSelectionListener.valueChanged(javax.swing.event.ListSelectionEvent) - - public native void __valueChanged( javax.swing.event.ListSelectionEvent arg0 ); - - public void valueChanged( javax.swing.event.ListSelectionEvent arg0 ) { - __valueChanged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/MenuDragMouseListenerProxy.java b/src/org/genie/javax_swing/MenuDragMouseListenerProxy.java deleted file mode 100644 index 37bec72..0000000 --- a/src/org/genie/javax_swing/MenuDragMouseListenerProxy.java +++ /dev/null @@ -1,46 +0,0 @@ - -/// interface javax.swing.event.MenuDragMouseListener /// - -package org.genie.javax_swing; - -public class MenuDragMouseListenerProxy implements javax.swing.event.MenuDragMouseListener { - - long swiftObject; - - MenuDragMouseListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseEntered(javax.swing.event.MenuDragMouseEvent) - - public native void __menuDragMouseEntered( javax.swing.event.MenuDragMouseEvent arg0 ); - - public void menuDragMouseEntered( javax.swing.event.MenuDragMouseEvent arg0 ) { - __menuDragMouseEntered( arg0 ); - } - - /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseExited(javax.swing.event.MenuDragMouseEvent) - - public native void __menuDragMouseExited( javax.swing.event.MenuDragMouseEvent arg0 ); - - public void menuDragMouseExited( javax.swing.event.MenuDragMouseEvent arg0 ) { - __menuDragMouseExited( arg0 ); - } - - /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseDragged(javax.swing.event.MenuDragMouseEvent) - - public native void __menuDragMouseDragged( javax.swing.event.MenuDragMouseEvent arg0 ); - - public void menuDragMouseDragged( javax.swing.event.MenuDragMouseEvent arg0 ) { - __menuDragMouseDragged( arg0 ); - } - - /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseReleased(javax.swing.event.MenuDragMouseEvent) - - public native void __menuDragMouseReleased( javax.swing.event.MenuDragMouseEvent arg0 ); - - public void menuDragMouseReleased( javax.swing.event.MenuDragMouseEvent arg0 ) { - __menuDragMouseReleased( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/MenuKeyListenerProxy.java b/src/org/genie/javax_swing/MenuKeyListenerProxy.java deleted file mode 100644 index b8cfccf..0000000 --- a/src/org/genie/javax_swing/MenuKeyListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface javax.swing.event.MenuKeyListener /// - -package org.genie.javax_swing; - -public class MenuKeyListenerProxy implements javax.swing.event.MenuKeyListener { - - long swiftObject; - - MenuKeyListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.MenuKeyListener.menuKeyPressed(javax.swing.event.MenuKeyEvent) - - public native void __menuKeyPressed( javax.swing.event.MenuKeyEvent arg0 ); - - public void menuKeyPressed( javax.swing.event.MenuKeyEvent arg0 ) { - __menuKeyPressed( arg0 ); - } - - /// public abstract void javax.swing.event.MenuKeyListener.menuKeyReleased(javax.swing.event.MenuKeyEvent) - - public native void __menuKeyReleased( javax.swing.event.MenuKeyEvent arg0 ); - - public void menuKeyReleased( javax.swing.event.MenuKeyEvent arg0 ) { - __menuKeyReleased( arg0 ); - } - - /// public abstract void javax.swing.event.MenuKeyListener.menuKeyTyped(javax.swing.event.MenuKeyEvent) - - public native void __menuKeyTyped( javax.swing.event.MenuKeyEvent arg0 ); - - public void menuKeyTyped( javax.swing.event.MenuKeyEvent arg0 ) { - __menuKeyTyped( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/MenuListenerProxy.java b/src/org/genie/javax_swing/MenuListenerProxy.java deleted file mode 100644 index f90a686..0000000 --- a/src/org/genie/javax_swing/MenuListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface javax.swing.event.MenuListener /// - -package org.genie.javax_swing; - -public class MenuListenerProxy implements javax.swing.event.MenuListener { - - long swiftObject; - - MenuListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.MenuListener.menuSelected(javax.swing.event.MenuEvent) - - public native void __menuSelected( javax.swing.event.MenuEvent arg0 ); - - public void menuSelected( javax.swing.event.MenuEvent arg0 ) { - __menuSelected( arg0 ); - } - - /// public abstract void javax.swing.event.MenuListener.menuDeselected(javax.swing.event.MenuEvent) - - public native void __menuDeselected( javax.swing.event.MenuEvent arg0 ); - - public void menuDeselected( javax.swing.event.MenuEvent arg0 ) { - __menuDeselected( arg0 ); - } - - /// public abstract void javax.swing.event.MenuListener.menuCanceled(javax.swing.event.MenuEvent) - - public native void __menuCanceled( javax.swing.event.MenuEvent arg0 ); - - public void menuCanceled( javax.swing.event.MenuEvent arg0 ) { - __menuCanceled( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/MouseInputListenerProxy.java b/src/org/genie/javax_swing/MouseInputListenerProxy.java deleted file mode 100644 index 020e792..0000000 --- a/src/org/genie/javax_swing/MouseInputListenerProxy.java +++ /dev/null @@ -1,70 +0,0 @@ - -/// interface javax.swing.event.MouseInputListener /// - -package org.genie.javax_swing; - -public class MouseInputListenerProxy implements javax.swing.event.MouseInputListener { - - long swiftObject; - - MouseInputListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) - - public native void __mousePressed( java.awt.event.MouseEvent arg0 ); - - public void mousePressed( java.awt.event.MouseEvent arg0 ) { - __mousePressed( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) - - public native void __mouseReleased( java.awt.event.MouseEvent arg0 ); - - public void mouseReleased( java.awt.event.MouseEvent arg0 ) { - __mouseReleased( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseClicked(java.awt.event.MouseEvent) - - public native void __mouseClicked( java.awt.event.MouseEvent arg0 ); - - public void mouseClicked( java.awt.event.MouseEvent arg0 ) { - __mouseClicked( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) - - public native void __mouseExited( java.awt.event.MouseEvent arg0 ); - - public void mouseExited( java.awt.event.MouseEvent arg0 ) { - __mouseExited( arg0 ); - } - - /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) - - public native void __mouseEntered( java.awt.event.MouseEvent arg0 ); - - public void mouseEntered( java.awt.event.MouseEvent arg0 ) { - __mouseEntered( arg0 ); - } - - /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) - - public native void __mouseMoved( java.awt.event.MouseEvent arg0 ); - - public void mouseMoved( java.awt.event.MouseEvent arg0 ) { - __mouseMoved( arg0 ); - } - - /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) - - public native void __mouseDragged( java.awt.event.MouseEvent arg0 ); - - public void mouseDragged( java.awt.event.MouseEvent arg0 ) { - __mouseDragged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/PlainDocumentProxy.java b/src/org/genie/javax_swing/PlainDocumentProxy.java deleted file mode 100644 index 209af60..0000000 --- a/src/org/genie/javax_swing/PlainDocumentProxy.java +++ /dev/null @@ -1,40 +0,0 @@ - -/// class javax.swing.text.PlainDocument /// - -package org.genie.javax_swing; - -public class PlainDocumentProxy extends javax.swing.text.PlainDocument { - - long swiftObject; - - /// public javax.swing.text.PlainDocument() - - PlainDocumentProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; - } - - /// public javax.swing.text.PlainDocument(javax.swing.text.AbstractDocument$Content) - - PlainDocumentProxy( javax.swing.text.AbstractDocument.Content arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; - } - - /// public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException - - public native void __insertString( int arg0, java.lang.String arg1, javax.swing.text.AttributeSet arg2 ); - - boolean entered_insertString_0; - - public void insertString( int arg0, java.lang.String arg1, javax.swing.text.AttributeSet arg2 ) throws javax.swing.text.BadLocationException { - if ( !entered_insertString_0 ) { - entered_insertString_0 = true; - __insertString( arg0, arg1, arg2 ); - entered_insertString_0 = false; - } - else - super.insertString( arg0, arg1, arg2 ); - } - -} diff --git a/src/org/genie/javax_swing/PopupMenuListenerProxy.java b/src/org/genie/javax_swing/PopupMenuListenerProxy.java deleted file mode 100644 index 4d8cff6..0000000 --- a/src/org/genie/javax_swing/PopupMenuListenerProxy.java +++ /dev/null @@ -1,38 +0,0 @@ - -/// interface javax.swing.event.PopupMenuListener /// - -package org.genie.javax_swing; - -public class PopupMenuListenerProxy implements javax.swing.event.PopupMenuListener { - - long swiftObject; - - PopupMenuListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent) - - public native void __popupMenuWillBecomeVisible( javax.swing.event.PopupMenuEvent arg0 ); - - public void popupMenuWillBecomeVisible( javax.swing.event.PopupMenuEvent arg0 ) { - __popupMenuWillBecomeVisible( arg0 ); - } - - /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent) - - public native void __popupMenuWillBecomeInvisible( javax.swing.event.PopupMenuEvent arg0 ); - - public void popupMenuWillBecomeInvisible( javax.swing.event.PopupMenuEvent arg0 ) { - __popupMenuWillBecomeInvisible( arg0 ); - } - - /// public abstract void javax.swing.event.PopupMenuListener.popupMenuCanceled(javax.swing.event.PopupMenuEvent) - - public native void __popupMenuCanceled( javax.swing.event.PopupMenuEvent arg0 ); - - public void popupMenuCanceled( javax.swing.event.PopupMenuEvent arg0 ) { - __popupMenuCanceled( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/RowSorterListenerProxy.java b/src/org/genie/javax_swing/RowSorterListenerProxy.java deleted file mode 100644 index 2338681..0000000 --- a/src/org/genie/javax_swing/RowSorterListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.RowSorterListener /// - -package org.genie.javax_swing; - -public class RowSorterListenerProxy implements javax.swing.event.RowSorterListener { - - long swiftObject; - - RowSorterListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.RowSorterListener.sorterChanged(javax.swing.event.RowSorterEvent) - - public native void __sorterChanged( javax.swing.event.RowSorterEvent arg0 ); - - public void sorterChanged( javax.swing.event.RowSorterEvent arg0 ) { - __sorterChanged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/TableModelListenerProxy.java b/src/org/genie/javax_swing/TableModelListenerProxy.java deleted file mode 100644 index 4070b5e..0000000 --- a/src/org/genie/javax_swing/TableModelListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.TableModelListener /// - -package org.genie.javax_swing; - -public class TableModelListenerProxy implements javax.swing.event.TableModelListener { - - long swiftObject; - - TableModelListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.TableModelListener.tableChanged(javax.swing.event.TableModelEvent) - - public native void __tableChanged( javax.swing.event.TableModelEvent arg0 ); - - public void tableChanged( javax.swing.event.TableModelEvent arg0 ) { - __tableChanged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/TreeExpansionListenerProxy.java b/src/org/genie/javax_swing/TreeExpansionListenerProxy.java deleted file mode 100644 index 97e4924..0000000 --- a/src/org/genie/javax_swing/TreeExpansionListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface javax.swing.event.TreeExpansionListener /// - -package org.genie.javax_swing; - -public class TreeExpansionListenerProxy implements javax.swing.event.TreeExpansionListener { - - long swiftObject; - - TreeExpansionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.TreeExpansionListener.treeCollapsed(javax.swing.event.TreeExpansionEvent) - - public native void __treeCollapsed( javax.swing.event.TreeExpansionEvent arg0 ); - - public void treeCollapsed( javax.swing.event.TreeExpansionEvent arg0 ) { - __treeCollapsed( arg0 ); - } - - /// public abstract void javax.swing.event.TreeExpansionListener.treeExpanded(javax.swing.event.TreeExpansionEvent) - - public native void __treeExpanded( javax.swing.event.TreeExpansionEvent arg0 ); - - public void treeExpanded( javax.swing.event.TreeExpansionEvent arg0 ) { - __treeExpanded( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/TreeModelListenerProxy.java b/src/org/genie/javax_swing/TreeModelListenerProxy.java deleted file mode 100644 index 13e5c34..0000000 --- a/src/org/genie/javax_swing/TreeModelListenerProxy.java +++ /dev/null @@ -1,46 +0,0 @@ - -/// interface javax.swing.event.TreeModelListener /// - -package org.genie.javax_swing; - -public class TreeModelListenerProxy implements javax.swing.event.TreeModelListener { - - long swiftObject; - - TreeModelListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.TreeModelListener.treeNodesChanged(javax.swing.event.TreeModelEvent) - - public native void __treeNodesChanged( javax.swing.event.TreeModelEvent arg0 ); - - public void treeNodesChanged( javax.swing.event.TreeModelEvent arg0 ) { - __treeNodesChanged( arg0 ); - } - - /// public abstract void javax.swing.event.TreeModelListener.treeNodesInserted(javax.swing.event.TreeModelEvent) - - public native void __treeNodesInserted( javax.swing.event.TreeModelEvent arg0 ); - - public void treeNodesInserted( javax.swing.event.TreeModelEvent arg0 ) { - __treeNodesInserted( arg0 ); - } - - /// public abstract void javax.swing.event.TreeModelListener.treeNodesRemoved(javax.swing.event.TreeModelEvent) - - public native void __treeNodesRemoved( javax.swing.event.TreeModelEvent arg0 ); - - public void treeNodesRemoved( javax.swing.event.TreeModelEvent arg0 ) { - __treeNodesRemoved( arg0 ); - } - - /// public abstract void javax.swing.event.TreeModelListener.treeStructureChanged(javax.swing.event.TreeModelEvent) - - public native void __treeStructureChanged( javax.swing.event.TreeModelEvent arg0 ); - - public void treeStructureChanged( javax.swing.event.TreeModelEvent arg0 ) { - __treeStructureChanged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/TreeSelectionListenerProxy.java b/src/org/genie/javax_swing/TreeSelectionListenerProxy.java deleted file mode 100644 index 6f7645c..0000000 --- a/src/org/genie/javax_swing/TreeSelectionListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.TreeSelectionListener /// - -package org.genie.javax_swing; - -public class TreeSelectionListenerProxy implements javax.swing.event.TreeSelectionListener { - - long swiftObject; - - TreeSelectionListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.TreeSelectionListener.valueChanged(javax.swing.event.TreeSelectionEvent) - - public native void __valueChanged( javax.swing.event.TreeSelectionEvent arg0 ); - - public void valueChanged( javax.swing.event.TreeSelectionEvent arg0 ) { - __valueChanged( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/TreeWillExpandListenerProxy.java b/src/org/genie/javax_swing/TreeWillExpandListenerProxy.java deleted file mode 100644 index 93e3578..0000000 --- a/src/org/genie/javax_swing/TreeWillExpandListenerProxy.java +++ /dev/null @@ -1,30 +0,0 @@ - -/// interface javax.swing.event.TreeWillExpandListener /// - -package org.genie.javax_swing; - -public class TreeWillExpandListenerProxy implements javax.swing.event.TreeWillExpandListener { - - long swiftObject; - - TreeWillExpandListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillExpand(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException - - public native void __treeWillExpand( javax.swing.event.TreeExpansionEvent arg0 ); - - public void treeWillExpand( javax.swing.event.TreeExpansionEvent arg0 ) throws javax.swing.tree.ExpandVetoException { - __treeWillExpand( arg0 ); - } - - /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillCollapse(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException - - public native void __treeWillCollapse( javax.swing.event.TreeExpansionEvent arg0 ); - - public void treeWillCollapse( javax.swing.event.TreeExpansionEvent arg0 ) throws javax.swing.tree.ExpandVetoException { - __treeWillCollapse( arg0 ); - } - -} diff --git a/src/org/genie/javax_swing/UndoableEditListenerProxy.java b/src/org/genie/javax_swing/UndoableEditListenerProxy.java deleted file mode 100644 index 5f2ef14..0000000 --- a/src/org/genie/javax_swing/UndoableEditListenerProxy.java +++ /dev/null @@ -1,22 +0,0 @@ - -/// interface javax.swing.event.UndoableEditListener /// - -package org.genie.javax_swing; - -public class UndoableEditListenerProxy implements javax.swing.event.UndoableEditListener { - - long swiftObject; - - UndoableEditListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; - } - - /// public abstract void javax.swing.event.UndoableEditListener.undoableEditHappened(javax.swing.event.UndoableEditEvent) - - public native void __undoableEditHappened( javax.swing.event.UndoableEditEvent arg0 ); - - public void undoableEditHappened( javax.swing.event.UndoableEditEvent arg0 ) { - __undoableEditHappened( arg0 ); - } - -} diff --git a/src/org/genie/SwiftTest.java b/src/org/swiftjava/SwiftTest.java similarity index 66% rename from src/org/genie/SwiftTest.java rename to src/org/swiftjava/SwiftTest.java index de9baab..d18f195 100644 --- a/src/org/genie/SwiftTest.java +++ b/src/org/swiftjava/SwiftTest.java @@ -1,8 +1,14 @@ -package org.genie; +package org.swiftjava; + +// auto generated by ../../../gentests.rb + +import com.johnholdsworth.bindings.SwiftHelloTest.TestListener; public class SwiftTest { + public TestListener loopback; + public SwiftTest() { } @@ -14,7 +20,7 @@ public static boolean booleanMethodStatic( boolean arg ) { } public boolean booleanMethod( boolean arg ) { - return arg; + return loopback != null ? loopback.booleanMethod( arg ) : arg; } public static boolean booleanArrayFieldStatic[]; @@ -25,7 +31,7 @@ public static boolean[] booleanArrayMethodStatic( boolean arg[] ) { } public boolean[] booleanArrayMethod( boolean arg[] ) { - return arg; + return loopback != null ? loopback.booleanArrayMethod( arg ) : arg; } public static boolean boolean2dArrayFieldStatic[][]; @@ -36,7 +42,7 @@ public static boolean[][] boolean2dArrayMethodStatic( boolean arg[][] ) { } public boolean[][] boolean2dArrayMethod( boolean arg[][] ) { - return arg; + return loopback != null ? loopback.boolean2dArrayMethod( arg ) : arg; } public static byte byteFieldStatic; @@ -47,7 +53,7 @@ public static byte byteMethodStatic( byte arg ) { } public byte byteMethod( byte arg ) { - return arg; + return loopback != null ? loopback.byteMethod( arg ) : arg; } public static byte byteArrayFieldStatic[]; @@ -58,7 +64,7 @@ public static byte[] byteArrayMethodStatic( byte arg[] ) { } public byte[] byteArrayMethod( byte arg[] ) { - return arg; + return loopback != null ? loopback.byteArrayMethod( arg ) : arg; } public static byte byte2dArrayFieldStatic[][]; @@ -69,7 +75,7 @@ public static byte[][] byte2dArrayMethodStatic( byte arg[][] ) { } public byte[][] byte2dArrayMethod( byte arg[][] ) { - return arg; + return loopback != null ? loopback.byte2dArrayMethod( arg ) : arg; } public static char charFieldStatic; @@ -80,7 +86,7 @@ public static char charMethodStatic( char arg ) { } public char charMethod( char arg ) { - return arg; + return loopback != null ? loopback.charMethod( arg ) : arg; } public static char charArrayFieldStatic[]; @@ -91,7 +97,7 @@ public static char[] charArrayMethodStatic( char arg[] ) { } public char[] charArrayMethod( char arg[] ) { - return arg; + return loopback != null ? loopback.charArrayMethod( arg ) : arg; } public static char char2dArrayFieldStatic[][]; @@ -102,7 +108,7 @@ public static char[][] char2dArrayMethodStatic( char arg[][] ) { } public char[][] char2dArrayMethod( char arg[][] ) { - return arg; + return loopback != null ? loopback.char2dArrayMethod( arg ) : arg; } public static short shortFieldStatic; @@ -113,7 +119,7 @@ public static short shortMethodStatic( short arg ) { } public short shortMethod( short arg ) { - return arg; + return loopback != null ? loopback.shortMethod( arg ) : arg; } public static short shortArrayFieldStatic[]; @@ -124,7 +130,7 @@ public static short[] shortArrayMethodStatic( short arg[] ) { } public short[] shortArrayMethod( short arg[] ) { - return arg; + return loopback != null ? loopback.shortArrayMethod( arg ) : arg; } public static short short2dArrayFieldStatic[][]; @@ -135,7 +141,7 @@ public static short[][] short2dArrayMethodStatic( short arg[][] ) { } public short[][] short2dArrayMethod( short arg[][] ) { - return arg; + return loopback != null ? loopback.short2dArrayMethod( arg ) : arg; } public static int intFieldStatic; @@ -146,7 +152,7 @@ public static int intMethodStatic( int arg ) { } public int intMethod( int arg ) { - return arg; + return loopback != null ? loopback.intMethod( arg ) : arg; } public static int intArrayFieldStatic[]; @@ -157,7 +163,7 @@ public static int[] intArrayMethodStatic( int arg[] ) { } public int[] intArrayMethod( int arg[] ) { - return arg; + return loopback != null ? loopback.intArrayMethod( arg ) : arg; } public static int int2dArrayFieldStatic[][]; @@ -168,7 +174,7 @@ public static int[][] int2dArrayMethodStatic( int arg[][] ) { } public int[][] int2dArrayMethod( int arg[][] ) { - return arg; + return loopback != null ? loopback.int2dArrayMethod( arg ) : arg; } public static long longFieldStatic; @@ -179,7 +185,7 @@ public static long longMethodStatic( long arg ) { } public long longMethod( long arg ) { - return arg; + return loopback != null ? loopback.longMethod( arg ) : arg; } public static long longArrayFieldStatic[]; @@ -190,7 +196,7 @@ public static long[] longArrayMethodStatic( long arg[] ) { } public long[] longArrayMethod( long arg[] ) { - return arg; + return loopback != null ? loopback.longArrayMethod( arg ) : arg; } public static long long2dArrayFieldStatic[][]; @@ -201,7 +207,7 @@ public static long[][] long2dArrayMethodStatic( long arg[][] ) { } public long[][] long2dArrayMethod( long arg[][] ) { - return arg; + return loopback != null ? loopback.long2dArrayMethod( arg ) : arg; } public static float floatFieldStatic; @@ -212,7 +218,7 @@ public static float floatMethodStatic( float arg ) { } public float floatMethod( float arg ) { - return arg; + return loopback != null ? loopback.floatMethod( arg ) : arg; } public static float floatArrayFieldStatic[]; @@ -223,7 +229,7 @@ public static float[] floatArrayMethodStatic( float arg[] ) { } public float[] floatArrayMethod( float arg[] ) { - return arg; + return loopback != null ? loopback.floatArrayMethod( arg ) : arg; } public static float float2dArrayFieldStatic[][]; @@ -234,7 +240,7 @@ public static float[][] float2dArrayMethodStatic( float arg[][] ) { } public float[][] float2dArrayMethod( float arg[][] ) { - return arg; + return loopback != null ? loopback.float2dArrayMethod( arg ) : arg; } public static double doubleFieldStatic; @@ -245,7 +251,7 @@ public static double doubleMethodStatic( double arg ) { } public double doubleMethod( double arg ) { - return arg; + return loopback != null ? loopback.doubleMethod( arg ) : arg; } public static double doubleArrayFieldStatic[]; @@ -256,7 +262,7 @@ public static double[] doubleArrayMethodStatic( double arg[] ) { } public double[] doubleArrayMethod( double arg[] ) { - return arg; + return loopback != null ? loopback.doubleArrayMethod( arg ) : arg; } public static double double2dArrayFieldStatic[][]; @@ -267,7 +273,7 @@ public static double[][] double2dArrayMethodStatic( double arg[][] ) { } public double[][] double2dArrayMethod( double arg[][] ) { - return arg; + return loopback != null ? loopback.double2dArrayMethod( arg ) : arg; } public static String StringFieldStatic; @@ -278,7 +284,7 @@ public static String StringMethodStatic( String arg ) { } public String StringMethod( String arg ) { - return arg; + return loopback != null ? loopback.StringMethod( arg ) : arg; } public static String StringArrayFieldStatic[]; @@ -289,7 +295,7 @@ public static String[] StringArrayMethodStatic( String arg[] ) { } public String[] StringArrayMethod( String arg[] ) { - return arg; + return loopback != null ? loopback.StringArrayMethod( arg ) : arg; } public static String String2dArrayFieldStatic[][]; @@ -300,7 +306,40 @@ public static String[][] String2dArrayMethodStatic( String arg[][] ) { } public String[][] String2dArrayMethod( String arg[][] ) { + return loopback != null ? loopback.String2dArrayMethod( arg ) : arg; + } + + public static TestListener TestListenerFieldStatic; + public TestListener TestListenerField; + + public static TestListener TestListenerMethodStatic( TestListener arg ) { return arg; } + public TestListener TestListenerMethod( TestListener arg ) { + return loopback != null ? loopback.TestListenerMethod( arg ) : arg; + } + + public static TestListener TestListenerArrayFieldStatic[]; + public TestListener TestListenerArrayField[]; + + public static TestListener[] TestListenerArrayMethodStatic( TestListener arg[] ) { + return arg; + } + + public TestListener[] TestListenerArrayMethod( TestListener arg[] ) { + return loopback != null ? loopback.TestListenerArrayMethod( arg ) : arg; + } + + public static TestListener TestListener2dArrayFieldStatic[][]; + public TestListener TestListener2dArrayField[][]; + + public static TestListener[][] TestListener2dArrayMethodStatic( TestListener arg[][] ) { + return arg; + } + + public TestListener[][] TestListener2dArrayMethod( TestListener arg[][] ) { + return loopback != null ? loopback.TestListener2dArrayMethod( arg ) : arg; + } + } diff --git a/src/org/swiftjava/com_apple/AboutHandlerProxy.java b/src/org/swiftjava/com_apple/AboutHandlerProxy.java new file mode 100644 index 0000000..6d41f7f --- /dev/null +++ b/src/org/swiftjava/com_apple/AboutHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.AboutHandler /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class AboutHandlerProxy implements com.apple.eawt.AboutHandler { + + long __swiftObject; + + AboutHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.AboutHandler.handleAbout(com.apple.eawt.AppEvent$AboutEvent) + + public native void __handleAbout( long __swiftObject, com.apple.eawt.AppEvent.AboutEvent arg0 ); + + public void handleAbout( com.apple.eawt.AppEvent.AboutEvent arg0 ) { + __handleAbout( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/AppEventListenerProxy.java b/src/org/swiftjava/com_apple/AppEventListenerProxy.java new file mode 100644 index 0000000..ed50914 --- /dev/null +++ b/src/org/swiftjava/com_apple/AppEventListenerProxy.java @@ -0,0 +1,21 @@ + +/// interface com.apple.eawt.AppEventListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class AppEventListenerProxy implements com.apple.eawt.AppEventListener { + + long __swiftObject; + + AppEventListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java b/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java new file mode 100644 index 0000000..580f6bf --- /dev/null +++ b/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface com.apple.eawt.AppForegroundListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class AppForegroundListenerProxy implements com.apple.eawt.AppForegroundListener { + + long __swiftObject; + + AppForegroundListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.AppForegroundListener.appRaisedToForeground(com.apple.eawt.AppEvent$AppForegroundEvent) + + public native void __appRaisedToForeground( long __swiftObject, com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); + + public void appRaisedToForeground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ) { + __appRaisedToForeground( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.AppForegroundListener.appMovedToBackground(com.apple.eawt.AppEvent$AppForegroundEvent) + + public native void __appMovedToBackground( long __swiftObject, com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); + + public void appMovedToBackground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ) { + __appMovedToBackground( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java b/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java new file mode 100644 index 0000000..c6b5cc4 --- /dev/null +++ b/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface com.apple.eawt.AppHiddenListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class AppHiddenListenerProxy implements com.apple.eawt.AppHiddenListener { + + long __swiftObject; + + AppHiddenListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.AppHiddenListener.appHidden(com.apple.eawt.AppEvent$AppHiddenEvent) + + public native void __appHidden( long __swiftObject, com.apple.eawt.AppEvent.AppHiddenEvent arg0 ); + + public void appHidden( com.apple.eawt.AppEvent.AppHiddenEvent arg0 ) { + __appHidden( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.AppHiddenListener.appUnhidden(com.apple.eawt.AppEvent$AppHiddenEvent) + + public native void __appUnhidden( long __swiftObject, com.apple.eawt.AppEvent.AppHiddenEvent arg0 ); + + public void appUnhidden( com.apple.eawt.AppEvent.AppHiddenEvent arg0 ) { + __appUnhidden( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java b/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java new file mode 100644 index 0000000..a6353b1 --- /dev/null +++ b/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.AppReOpenedListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class AppReOpenedListenerProxy implements com.apple.eawt.AppReOpenedListener { + + long __swiftObject; + + AppReOpenedListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.AppReOpenedListener.appReOpened(com.apple.eawt.AppEvent$AppReOpenedEvent) + + public native void __appReOpened( long __swiftObject, com.apple.eawt.AppEvent.AppReOpenedEvent arg0 ); + + public void appReOpened( com.apple.eawt.AppEvent.AppReOpenedEvent arg0 ) { + __appReOpened( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/com_apple/ApplicationAdapterProxy.java b/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java similarity index 70% rename from src/org/genie/com_apple/ApplicationAdapterProxy.java rename to src/org/swiftjava/com_apple/ApplicationAdapterProxy.java index 4498cd4..8bb81b3 100644 --- a/src/org/genie/com_apple/ApplicationAdapterProxy.java +++ b/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java @@ -1,29 +1,30 @@ /// class com.apple.eawt.ApplicationAdapter /// -package org.genie.com_apple; +package org.swiftjava.com_apple; +@SuppressWarnings("JniMissingFunction") public class ApplicationAdapterProxy extends com.apple.eawt.ApplicationAdapter { - long swiftObject; + long __swiftObject; /// public com.apple.eawt.ApplicationAdapter() - ApplicationAdapterProxy( long swiftObject ) { + ApplicationAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void com.apple.eawt.ApplicationAdapter.handleAbout(com.apple.eawt.ApplicationEvent) - public native void __handleAbout( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handleAbout_0; public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handleAbout_0 ) { entered_handleAbout_0 = true; - __handleAbout( arg0 ); + __handleAbout( __swiftObject, arg0); entered_handleAbout_0 = false; } else @@ -32,14 +33,14 @@ public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { /// public void com.apple.eawt.ApplicationAdapter.handlePreferences(com.apple.eawt.ApplicationEvent) - public native void __handlePreferences( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handlePreferences_1; public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handlePreferences_1 ) { entered_handlePreferences_1 = true; - __handlePreferences( arg0 ); + __handlePreferences( __swiftObject, arg0); entered_handlePreferences_1 = false; } else @@ -48,14 +49,14 @@ public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { /// public void com.apple.eawt.ApplicationAdapter.handleOpenApplication(com.apple.eawt.ApplicationEvent) - public native void __handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handleOpenApplication_2; public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handleOpenApplication_2 ) { entered_handleOpenApplication_2 = true; - __handleOpenApplication( arg0 ); + __handleOpenApplication( __swiftObject, arg0); entered_handleOpenApplication_2 = false; } else @@ -64,14 +65,14 @@ public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { /// public void com.apple.eawt.ApplicationAdapter.handleOpenFile(com.apple.eawt.ApplicationEvent) - public native void __handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleOpenFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handleOpenFile_3; public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handleOpenFile_3 ) { entered_handleOpenFile_3 = true; - __handleOpenFile( arg0 ); + __handleOpenFile( __swiftObject, arg0); entered_handleOpenFile_3 = false; } else @@ -80,14 +81,14 @@ public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { /// public void com.apple.eawt.ApplicationAdapter.handlePrintFile(com.apple.eawt.ApplicationEvent) - public native void __handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handlePrintFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handlePrintFile_4; public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handlePrintFile_4 ) { entered_handlePrintFile_4 = true; - __handlePrintFile( arg0 ); + __handlePrintFile( __swiftObject, arg0); entered_handlePrintFile_4 = false; } else @@ -96,14 +97,14 @@ public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { /// public void com.apple.eawt.ApplicationAdapter.handleQuit(com.apple.eawt.ApplicationEvent) - public native void __handleQuit( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleQuit( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handleQuit_5; public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handleQuit_5 ) { entered_handleQuit_5 = true; - __handleQuit( arg0 ); + __handleQuit( __swiftObject, arg0); entered_handleQuit_5 = false; } else @@ -112,14 +113,14 @@ public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { /// public void com.apple.eawt.ApplicationAdapter.handleReOpenApplication(com.apple.eawt.ApplicationEvent) - public native void __handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleReOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); boolean entered_handleReOpenApplication_6; public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { if ( !entered_handleReOpenApplication_6 ) { entered_handleReOpenApplication_6 = true; - __handleReOpenApplication( arg0 ); + __handleReOpenApplication( __swiftObject, arg0); entered_handleReOpenApplication_6 = false; } else @@ -128,14 +129,14 @@ public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_7; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_7 ) { entered_equals_7 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_7 = false; return __return; } @@ -145,14 +146,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_8; public java.lang.String toString() { if ( !entered_toString_8 ) { entered_toString_8 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_8 = false; return __return; } @@ -162,14 +163,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_9; public int hashCode() { if ( !entered_hashCode_9 ) { entered_hashCode_9 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_9 = false; return __return; } @@ -177,4 +178,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/genie/com_apple/ApplicationListenerProxy.java b/src/org/swiftjava/com_apple/ApplicationListenerProxy.java similarity index 52% rename from src/org/genie/com_apple/ApplicationListenerProxy.java rename to src/org/swiftjava/com_apple/ApplicationListenerProxy.java index 1071667..2d23815 100644 --- a/src/org/genie/com_apple/ApplicationListenerProxy.java +++ b/src/org/swiftjava/com_apple/ApplicationListenerProxy.java @@ -1,70 +1,77 @@ /// interface com.apple.eawt.ApplicationListener /// -package org.genie.com_apple; +package org.swiftjava.com_apple; +@SuppressWarnings("JniMissingFunction") public class ApplicationListenerProxy implements com.apple.eawt.ApplicationListener { - long swiftObject; + long __swiftObject; - ApplicationListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; + ApplicationListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; } /// public abstract void com.apple.eawt.ApplicationListener.handleAbout(com.apple.eawt.ApplicationEvent) - public native void __handleAbout( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { - __handleAbout( arg0 ); + __handleAbout( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.ApplicationListener.handlePreferences(com.apple.eawt.ApplicationEvent) - public native void __handlePreferences( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { - __handlePreferences( arg0 ); + __handlePreferences( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.ApplicationListener.handleOpenApplication(com.apple.eawt.ApplicationEvent) - public native void __handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { - __handleOpenApplication( arg0 ); + __handleOpenApplication( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.ApplicationListener.handleOpenFile(com.apple.eawt.ApplicationEvent) - public native void __handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleOpenFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { - __handleOpenFile( arg0 ); + __handleOpenFile( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.ApplicationListener.handlePrintFile(com.apple.eawt.ApplicationEvent) - public native void __handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handlePrintFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { - __handlePrintFile( arg0 ); + __handlePrintFile( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.ApplicationListener.handleQuit(com.apple.eawt.ApplicationEvent) - public native void __handleQuit( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleQuit( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { - __handleQuit( arg0 ); + __handleQuit( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.ApplicationListener.handleReOpenApplication(com.apple.eawt.ApplicationEvent) - public native void __handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ); + public native void __handleReOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { - __handleReOpenApplication( arg0 ); + __handleReOpenApplication( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); } } diff --git a/src/org/genie/com_apple/FullScreenAdapterProxy.java b/src/org/swiftjava/com_apple/FullScreenAdapterProxy.java similarity index 69% rename from src/org/genie/com_apple/FullScreenAdapterProxy.java rename to src/org/swiftjava/com_apple/FullScreenAdapterProxy.java index 49757aa..c70a1d6 100644 --- a/src/org/genie/com_apple/FullScreenAdapterProxy.java +++ b/src/org/swiftjava/com_apple/FullScreenAdapterProxy.java @@ -1,29 +1,30 @@ /// class com.apple.eawt.FullScreenAdapter /// -package org.genie.com_apple; +package org.swiftjava.com_apple; +@SuppressWarnings("JniMissingFunction") public class FullScreenAdapterProxy extends com.apple.eawt.FullScreenAdapter { - long swiftObject; + long __swiftObject; /// public com.apple.eawt.FullScreenAdapter() - FullScreenAdapterProxy( long swiftObject ) { + FullScreenAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void com.apple.eawt.FullScreenAdapter.windowEnteringFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowEnteringFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); boolean entered_windowEnteringFullScreen_0; public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { if ( !entered_windowEnteringFullScreen_0 ) { entered_windowEnteringFullScreen_0 = true; - __windowEnteringFullScreen( arg0 ); + __windowEnteringFullScreen( __swiftObject, arg0); entered_windowEnteringFullScreen_0 = false; } else @@ -32,14 +33,14 @@ public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent ar /// public void com.apple.eawt.FullScreenAdapter.windowEnteredFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowEnteredFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); boolean entered_windowEnteredFullScreen_1; public void windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { if ( !entered_windowEnteredFullScreen_1 ) { entered_windowEnteredFullScreen_1 = true; - __windowEnteredFullScreen( arg0 ); + __windowEnteredFullScreen( __swiftObject, arg0); entered_windowEnteredFullScreen_1 = false; } else @@ -48,14 +49,14 @@ public void windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg /// public void com.apple.eawt.FullScreenAdapter.windowExitingFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowExitingFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); boolean entered_windowExitingFullScreen_2; public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { if ( !entered_windowExitingFullScreen_2 ) { entered_windowExitingFullScreen_2 = true; - __windowExitingFullScreen( arg0 ); + __windowExitingFullScreen( __swiftObject, arg0); entered_windowExitingFullScreen_2 = false; } else @@ -64,14 +65,14 @@ public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg /// public void com.apple.eawt.FullScreenAdapter.windowExitedFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowExitedFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); boolean entered_windowExitedFullScreen_3; public void windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { if ( !entered_windowExitedFullScreen_3 ) { entered_windowExitedFullScreen_3 = true; - __windowExitedFullScreen( arg0 ); + __windowExitedFullScreen( __swiftObject, arg0); entered_windowExitedFullScreen_3 = false; } else @@ -80,14 +81,14 @@ public void windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_4; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_4 ) { entered_equals_4 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_4 = false; return __return; } @@ -97,14 +98,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_5; public java.lang.String toString() { if ( !entered_toString_5 ) { entered_toString_5 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_5 = false; return __return; } @@ -114,14 +115,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_6; public int hashCode() { if ( !entered_hashCode_6 ) { entered_hashCode_6 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_6 = false; return __return; } @@ -129,4 +130,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/genie/com_apple/FullScreenListenerProxy.java b/src/org/swiftjava/com_apple/FullScreenListenerProxy.java similarity index 50% rename from src/org/genie/com_apple/FullScreenListenerProxy.java rename to src/org/swiftjava/com_apple/FullScreenListenerProxy.java index 145038b..0f04291 100644 --- a/src/org/genie/com_apple/FullScreenListenerProxy.java +++ b/src/org/swiftjava/com_apple/FullScreenListenerProxy.java @@ -1,46 +1,53 @@ /// interface com.apple.eawt.FullScreenListener /// -package org.genie.com_apple; +package org.swiftjava.com_apple; +@SuppressWarnings("JniMissingFunction") public class FullScreenListenerProxy implements com.apple.eawt.FullScreenListener { - long swiftObject; + long __swiftObject; - FullScreenListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; + FullScreenListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; } /// public abstract void com.apple.eawt.FullScreenListener.windowEnteringFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowEnteringFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - __windowEnteringFullScreen( arg0 ); + __windowEnteringFullScreen( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.FullScreenListener.windowEnteredFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowEnteredFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); public void windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - __windowEnteredFullScreen( arg0 ); + __windowEnteredFullScreen( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.FullScreenListener.windowExitingFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowExitingFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - __windowExitingFullScreen( arg0 ); + __windowExitingFullScreen( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.FullScreenListener.windowExitedFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowExitedFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); public void windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - __windowExitedFullScreen( arg0 ); + __windowExitedFullScreen( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); } } diff --git a/src/org/genie/com_apple/GestureAdapterProxy.java b/src/org/swiftjava/com_apple/GestureAdapterProxy.java similarity index 70% rename from src/org/genie/com_apple/GestureAdapterProxy.java rename to src/org/swiftjava/com_apple/GestureAdapterProxy.java index 036f040..d3be145 100644 --- a/src/org/genie/com_apple/GestureAdapterProxy.java +++ b/src/org/swiftjava/com_apple/GestureAdapterProxy.java @@ -1,29 +1,30 @@ /// class com.apple.eawt.event.GestureAdapter /// -package org.genie.com_apple; +package org.swiftjava.com_apple; +@SuppressWarnings("JniMissingFunction") public class GestureAdapterProxy extends com.apple.eawt.event.GestureAdapter { - long swiftObject; + long __swiftObject; /// public com.apple.eawt.event.GestureAdapter() - GestureAdapterProxy( long swiftObject ) { + GestureAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void com.apple.eawt.event.GestureAdapter.rotate(com.apple.eawt.event.RotationEvent) - public native void __rotate( com.apple.eawt.event.RotationEvent arg0 ); + public native void __rotate( long __swiftObject, com.apple.eawt.event.RotationEvent arg0 ); boolean entered_rotate_0; public void rotate( com.apple.eawt.event.RotationEvent arg0 ) { if ( !entered_rotate_0 ) { entered_rotate_0 = true; - __rotate( arg0 ); + __rotate( __swiftObject, arg0); entered_rotate_0 = false; } else @@ -32,14 +33,14 @@ public void rotate( com.apple.eawt.event.RotationEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.gestureBegan(com.apple.eawt.event.GesturePhaseEvent) - public native void __gestureBegan( com.apple.eawt.event.GesturePhaseEvent arg0 ); + public native void __gestureBegan( long __swiftObject, com.apple.eawt.event.GesturePhaseEvent arg0 ); boolean entered_gestureBegan_1; public void gestureBegan( com.apple.eawt.event.GesturePhaseEvent arg0 ) { if ( !entered_gestureBegan_1 ) { entered_gestureBegan_1 = true; - __gestureBegan( arg0 ); + __gestureBegan( __swiftObject, arg0); entered_gestureBegan_1 = false; } else @@ -48,14 +49,14 @@ public void gestureBegan( com.apple.eawt.event.GesturePhaseEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.gestureEnded(com.apple.eawt.event.GesturePhaseEvent) - public native void __gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ); + public native void __gestureEnded( long __swiftObject, com.apple.eawt.event.GesturePhaseEvent arg0 ); boolean entered_gestureEnded_2; public void gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ) { if ( !entered_gestureEnded_2 ) { entered_gestureEnded_2 = true; - __gestureEnded( arg0 ); + __gestureEnded( __swiftObject, arg0); entered_gestureEnded_2 = false; } else @@ -64,14 +65,14 @@ public void gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.magnify(com.apple.eawt.event.MagnificationEvent) - public native void __magnify( com.apple.eawt.event.MagnificationEvent arg0 ); + public native void __magnify( long __swiftObject, com.apple.eawt.event.MagnificationEvent arg0 ); boolean entered_magnify_3; public void magnify( com.apple.eawt.event.MagnificationEvent arg0 ) { if ( !entered_magnify_3 ) { entered_magnify_3 = true; - __magnify( arg0 ); + __magnify( __swiftObject, arg0); entered_magnify_3 = false; } else @@ -80,14 +81,14 @@ public void magnify( com.apple.eawt.event.MagnificationEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.swipedDown(com.apple.eawt.event.SwipeEvent) - public native void __swipedDown( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedDown( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); boolean entered_swipedDown_4; public void swipedDown( com.apple.eawt.event.SwipeEvent arg0 ) { if ( !entered_swipedDown_4 ) { entered_swipedDown_4 = true; - __swipedDown( arg0 ); + __swipedDown( __swiftObject, arg0); entered_swipedDown_4 = false; } else @@ -96,14 +97,14 @@ public void swipedDown( com.apple.eawt.event.SwipeEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.swipedLeft(com.apple.eawt.event.SwipeEvent) - public native void __swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedLeft( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); boolean entered_swipedLeft_5; public void swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ) { if ( !entered_swipedLeft_5 ) { entered_swipedLeft_5 = true; - __swipedLeft( arg0 ); + __swipedLeft( __swiftObject, arg0); entered_swipedLeft_5 = false; } else @@ -112,14 +113,14 @@ public void swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.swipedRight(com.apple.eawt.event.SwipeEvent) - public native void __swipedRight( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedRight( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); boolean entered_swipedRight_6; public void swipedRight( com.apple.eawt.event.SwipeEvent arg0 ) { if ( !entered_swipedRight_6 ) { entered_swipedRight_6 = true; - __swipedRight( arg0 ); + __swipedRight( __swiftObject, arg0); entered_swipedRight_6 = false; } else @@ -128,14 +129,14 @@ public void swipedRight( com.apple.eawt.event.SwipeEvent arg0 ) { /// public void com.apple.eawt.event.GestureAdapter.swipedUp(com.apple.eawt.event.SwipeEvent) - public native void __swipedUp( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedUp( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); boolean entered_swipedUp_7; public void swipedUp( com.apple.eawt.event.SwipeEvent arg0 ) { if ( !entered_swipedUp_7 ) { entered_swipedUp_7 = true; - __swipedUp( arg0 ); + __swipedUp( __swiftObject, arg0); entered_swipedUp_7 = false; } else @@ -144,14 +145,14 @@ public void swipedUp( com.apple.eawt.event.SwipeEvent arg0 ) { /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_8; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_8 ) { entered_equals_8 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_8 = false; return __return; } @@ -161,14 +162,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_9; public java.lang.String toString() { if ( !entered_toString_9 ) { entered_toString_9 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_9 = false; return __return; } @@ -178,14 +179,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_10; public int hashCode() { if ( !entered_hashCode_10 ) { entered_hashCode_10 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_10 = false; return __return; } @@ -193,4 +194,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/com_apple/GestureListenerProxy.java b/src/org/swiftjava/com_apple/GestureListenerProxy.java new file mode 100644 index 0000000..c085cfc --- /dev/null +++ b/src/org/swiftjava/com_apple/GestureListenerProxy.java @@ -0,0 +1,21 @@ + +/// interface com.apple.eawt.event.GestureListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class GestureListenerProxy implements com.apple.eawt.event.GestureListener { + + long __swiftObject; + + GestureListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java b/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java new file mode 100644 index 0000000..c78f571 --- /dev/null +++ b/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface com.apple.eawt.event.GesturePhaseListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class GesturePhaseListenerProxy implements com.apple.eawt.event.GesturePhaseListener { + + long __swiftObject; + + GesturePhaseListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.event.GesturePhaseListener.gestureBegan(com.apple.eawt.event.GesturePhaseEvent) + + public native void __gestureBegan( long __swiftObject, com.apple.eawt.event.GesturePhaseEvent arg0 ); + + public void gestureBegan( com.apple.eawt.event.GesturePhaseEvent arg0 ) { + __gestureBegan( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.event.GesturePhaseListener.gestureEnded(com.apple.eawt.event.GesturePhaseEvent) + + public native void __gestureEnded( long __swiftObject, com.apple.eawt.event.GesturePhaseEvent arg0 ); + + public void gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ) { + __gestureEnded( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/MagnificationListenerProxy.java b/src/org/swiftjava/com_apple/MagnificationListenerProxy.java new file mode 100644 index 0000000..14d5a39 --- /dev/null +++ b/src/org/swiftjava/com_apple/MagnificationListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.event.MagnificationListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class MagnificationListenerProxy implements com.apple.eawt.event.MagnificationListener { + + long __swiftObject; + + MagnificationListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.event.MagnificationListener.magnify(com.apple.eawt.event.MagnificationEvent) + + public native void __magnify( long __swiftObject, com.apple.eawt.event.MagnificationEvent arg0 ); + + public void magnify( com.apple.eawt.event.MagnificationEvent arg0 ) { + __magnify( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java b/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java new file mode 100644 index 0000000..27936b5 --- /dev/null +++ b/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.OpenFilesHandler /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class OpenFilesHandlerProxy implements com.apple.eawt.OpenFilesHandler { + + long __swiftObject; + + OpenFilesHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.OpenFilesHandler.openFiles(com.apple.eawt.AppEvent$OpenFilesEvent) + + public native void __openFiles( long __swiftObject, com.apple.eawt.AppEvent.OpenFilesEvent arg0 ); + + public void openFiles( com.apple.eawt.AppEvent.OpenFilesEvent arg0 ) { + __openFiles( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java b/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java new file mode 100644 index 0000000..0203d6a --- /dev/null +++ b/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.OpenURIHandler /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class OpenURIHandlerProxy implements com.apple.eawt.OpenURIHandler { + + long __swiftObject; + + OpenURIHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.OpenURIHandler.openURI(com.apple.eawt.AppEvent$OpenURIEvent) + + public native void __openURI( long __swiftObject, com.apple.eawt.AppEvent.OpenURIEvent arg0 ); + + public void openURI( com.apple.eawt.AppEvent.OpenURIEvent arg0 ) { + __openURI( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java b/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java new file mode 100644 index 0000000..dc291f6 --- /dev/null +++ b/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.PreferencesHandler /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class PreferencesHandlerProxy implements com.apple.eawt.PreferencesHandler { + + long __swiftObject; + + PreferencesHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.PreferencesHandler.handlePreferences(com.apple.eawt.AppEvent$PreferencesEvent) + + public native void __handlePreferences( long __swiftObject, com.apple.eawt.AppEvent.PreferencesEvent arg0 ); + + public void handlePreferences( com.apple.eawt.AppEvent.PreferencesEvent arg0 ) { + __handlePreferences( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java b/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java new file mode 100644 index 0000000..d2a82ac --- /dev/null +++ b/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.PrintFilesHandler /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class PrintFilesHandlerProxy implements com.apple.eawt.PrintFilesHandler { + + long __swiftObject; + + PrintFilesHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.PrintFilesHandler.printFiles(com.apple.eawt.AppEvent$PrintFilesEvent) + + public native void __printFiles( long __swiftObject, com.apple.eawt.AppEvent.PrintFilesEvent arg0 ); + + public void printFiles( com.apple.eawt.AppEvent.PrintFilesEvent arg0 ) { + __printFiles( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/QuitHandlerProxy.java b/src/org/swiftjava/com_apple/QuitHandlerProxy.java new file mode 100644 index 0000000..c905b17 --- /dev/null +++ b/src/org/swiftjava/com_apple/QuitHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.QuitHandler /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class QuitHandlerProxy implements com.apple.eawt.QuitHandler { + + long __swiftObject; + + QuitHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.QuitHandler.handleQuitRequestWith(com.apple.eawt.AppEvent$QuitEvent,com.apple.eawt.QuitResponse) + + public native void __handleQuitRequestWith( long __swiftObject, com.apple.eawt.AppEvent.QuitEvent arg0, com.apple.eawt.QuitResponse arg1 ); + + public void handleQuitRequestWith( com.apple.eawt.AppEvent.QuitEvent arg0, com.apple.eawt.QuitResponse arg1 ) { + __handleQuitRequestWith( __swiftObject, arg0, arg1 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/RotationListenerProxy.java b/src/org/swiftjava/com_apple/RotationListenerProxy.java new file mode 100644 index 0000000..f3cb030 --- /dev/null +++ b/src/org/swiftjava/com_apple/RotationListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.apple.eawt.event.RotationListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class RotationListenerProxy implements com.apple.eawt.event.RotationListener { + + long __swiftObject; + + RotationListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.event.RotationListener.rotate(com.apple.eawt.event.RotationEvent) + + public native void __rotate( long __swiftObject, com.apple.eawt.event.RotationEvent arg0 ); + + public void rotate( com.apple.eawt.event.RotationEvent arg0 ) { + __rotate( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java b/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java new file mode 100644 index 0000000..9ff9b2f --- /dev/null +++ b/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface com.apple.eawt.ScreenSleepListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class ScreenSleepListenerProxy implements com.apple.eawt.ScreenSleepListener { + + long __swiftObject; + + ScreenSleepListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.ScreenSleepListener.screenAwoke(com.apple.eawt.AppEvent$ScreenSleepEvent) + + public native void __screenAwoke( long __swiftObject, com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); + + public void screenAwoke( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) { + __screenAwoke( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.ScreenSleepListener.screenAboutToSleep(com.apple.eawt.AppEvent$ScreenSleepEvent) + + public native void __screenAboutToSleep( long __swiftObject, com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); + + public void screenAboutToSleep( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) { + __screenAboutToSleep( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/com_apple/SwipeListenerProxy.java b/src/org/swiftjava/com_apple/SwipeListenerProxy.java similarity index 50% rename from src/org/genie/com_apple/SwipeListenerProxy.java rename to src/org/swiftjava/com_apple/SwipeListenerProxy.java index e29e30e..9b67a2a 100644 --- a/src/org/genie/com_apple/SwipeListenerProxy.java +++ b/src/org/swiftjava/com_apple/SwipeListenerProxy.java @@ -1,46 +1,53 @@ /// interface com.apple.eawt.event.SwipeListener /// -package org.genie.com_apple; +package org.swiftjava.com_apple; +@SuppressWarnings("JniMissingFunction") public class SwipeListenerProxy implements com.apple.eawt.event.SwipeListener { - long swiftObject; + long __swiftObject; - SwipeListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; + SwipeListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; } /// public abstract void com.apple.eawt.event.SwipeListener.swipedDown(com.apple.eawt.event.SwipeEvent) - public native void __swipedDown( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedDown( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); public void swipedDown( com.apple.eawt.event.SwipeEvent arg0 ) { - __swipedDown( arg0 ); + __swipedDown( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.event.SwipeListener.swipedLeft(com.apple.eawt.event.SwipeEvent) - public native void __swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedLeft( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); public void swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ) { - __swipedLeft( arg0 ); + __swipedLeft( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.event.SwipeListener.swipedRight(com.apple.eawt.event.SwipeEvent) - public native void __swipedRight( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedRight( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); public void swipedRight( com.apple.eawt.event.SwipeEvent arg0 ) { - __swipedRight( arg0 ); + __swipedRight( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.event.SwipeListener.swipedUp(com.apple.eawt.event.SwipeEvent) - public native void __swipedUp( com.apple.eawt.event.SwipeEvent arg0 ); + public native void __swipedUp( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); public void swipedUp( com.apple.eawt.event.SwipeEvent arg0 ) { - __swipedUp( arg0 ); + __swipedUp( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); } } diff --git a/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java b/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java new file mode 100644 index 0000000..b5c7026 --- /dev/null +++ b/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface com.apple.eawt.SystemSleepListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class SystemSleepListenerProxy implements com.apple.eawt.SystemSleepListener { + + long __swiftObject; + + SystemSleepListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.SystemSleepListener.systemAwoke(com.apple.eawt.AppEvent$SystemSleepEvent) + + public native void __systemAwoke( long __swiftObject, com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); + + public void systemAwoke( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) { + __systemAwoke( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.SystemSleepListener.systemAboutToSleep(com.apple.eawt.AppEvent$SystemSleepEvent) + + public native void __systemAboutToSleep( long __swiftObject, com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); + + public void systemAboutToSleep( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) { + __systemAboutToSleep( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_apple/UserSessionListenerProxy.java b/src/org/swiftjava/com_apple/UserSessionListenerProxy.java new file mode 100644 index 0000000..a44c079 --- /dev/null +++ b/src/org/swiftjava/com_apple/UserSessionListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface com.apple.eawt.UserSessionListener /// + +package org.swiftjava.com_apple; + +@SuppressWarnings("JniMissingFunction") +public class UserSessionListenerProxy implements com.apple.eawt.UserSessionListener { + + long __swiftObject; + + UserSessionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.apple.eawt.UserSessionListener.userSessionDeactivated(com.apple.eawt.AppEvent$UserSessionEvent) + + public native void __userSessionDeactivated( long __swiftObject, com.apple.eawt.AppEvent.UserSessionEvent arg0 ); + + public void userSessionDeactivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ) { + __userSessionDeactivated( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.UserSessionListener.userSessionActivated(com.apple.eawt.AppEvent$UserSessionEvent) + + public native void __userSessionActivated( long __swiftObject, com.apple.eawt.AppEvent.UserSessionEvent arg0 ); + + public void userSessionActivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ) { + __userSessionActivated( __swiftObject, arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java new file mode 100644 index 0000000..1af6161 --- /dev/null +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java @@ -0,0 +1,69 @@ + +/// interface com.johnholdsworth.bindings.SwiftHelloBinding$Listener /// + +package org.swiftjava.com_johnholdsworth; + +@SuppressWarnings("JniMissingFunction") +public class SwiftHelloBinding_ListenerProxy implements com.johnholdsworth.bindings.SwiftHelloBinding.Listener { + + long __swiftObject; + + SwiftHelloBinding_ListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + public native void __setCacheDir( long __swiftObject, java.lang.String cacheDir ); + + public void setCacheDir( java.lang.String cacheDir ) { + __setCacheDir( __swiftObject, cacheDir ); + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + + public native void __processNumber( long __swiftObject, double number ); + + public void processNumber( double number ) { + __processNumber( __swiftObject, number ); + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + + public native void __processText( long __swiftObject, java.lang.String text ); + + public void processText( java.lang.String text ) { + __processText( __swiftObject, text ); + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + public native void __processedMap( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap map ); + + public void processedMap( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap map ) { + __processedMap( __swiftObject, map ); + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + public native void __processedMapList( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList map ); + + public void processedMapList( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList map ) { + __processedMapList( __swiftObject, map ); + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener __testResponder( long __swiftObject, int loopback ); + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener testResponder( int loopback ) { + return __testResponder( __swiftObject, loopback ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java new file mode 100644 index 0000000..4cba1a0 --- /dev/null +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java @@ -0,0 +1,285 @@ + +/// interface com.johnholdsworth.bindings.SwiftHelloTest$TestListener /// + +package org.swiftjava.com_johnholdsworth; + +@SuppressWarnings("JniMissingFunction") +public class SwiftHelloTest_TestListenerProxy implements com.johnholdsworth.bindings.SwiftHelloTest.TestListener { + + long __swiftObject; + + SwiftHelloTest_TestListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + + public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); + + public boolean[] booleanArrayMethod( boolean[] arg ) { + return __booleanArrayMethod( __swiftObject, arg ); + } + + /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + + public native boolean[][] __boolean2dArrayMethod( long __swiftObject, boolean[][] arg ); + + public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { + return __boolean2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + + public native byte __byteMethod( long __swiftObject, byte arg ); + + public byte byteMethod( byte arg ) { + return __byteMethod( __swiftObject, arg ); + } + + /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + + public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); + + public byte[] byteArrayMethod( byte[] arg ) { + return __byteArrayMethod( __swiftObject, arg ); + } + + /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + public native void __setLoopback( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ); + + public void setLoopback( com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ) { + __setLoopback( __swiftObject, loopback ); + } + + /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + public native boolean __booleanMethod( long __swiftObject, boolean arg ); + + public boolean booleanMethod( boolean arg ) { + return __booleanMethod( __swiftObject, arg ); + } + + /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + public native byte[][] __byte2dArrayMethod( long __swiftObject, byte[][] arg ); + + public byte[][] byte2dArrayMethod( byte[][] arg ) { + return __byte2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + + public native char __charMethod( long __swiftObject, char arg ); + + public char charMethod( char arg ) { + return __charMethod( __swiftObject, arg ); + } + + /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + + public native char[] __charArrayMethod( long __swiftObject, char[] arg ); + + public char[] charArrayMethod( char[] arg ) { + return __charArrayMethod( __swiftObject, arg ); + } + + /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + + public native char[][] __char2dArrayMethod( long __swiftObject, char[][] arg ); + + public char[][] char2dArrayMethod( char[][] arg ) { + return __char2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + + public native short __shortMethod( long __swiftObject, short arg ); + + public short shortMethod( short arg ) { + return __shortMethod( __swiftObject, arg ); + } + + /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + + public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); + + public short[] shortArrayMethod( short[] arg ) { + return __shortArrayMethod( __swiftObject, arg ); + } + + /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + + public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); + + public short[][] short2dArrayMethod( short[][] arg ) { + return __short2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + + public native int __intMethod( long __swiftObject, int arg ); + + public int intMethod( int arg ) { + return __intMethod( __swiftObject, arg ); + } + + /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + + public native int[] __intArrayMethod( long __swiftObject, int[] arg ); + + public int[] intArrayMethod( int[] arg ) { + return __intArrayMethod( __swiftObject, arg ); + } + + /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + + public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); + + public int[][] int2dArrayMethod( int[][] arg ) { + return __int2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + + public native long __longMethod( long __swiftObject, long arg ); + + public long longMethod( long arg ) { + return __longMethod( __swiftObject, arg ); + } + + /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + + public native long[] __longArrayMethod( long __swiftObject, long[] arg ); + + public long[] longArrayMethod( long[] arg ) { + return __longArrayMethod( __swiftObject, arg ); + } + + /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + + public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); + + public long[][] long2dArrayMethod( long[][] arg ) { + return __long2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + + public native float __floatMethod( long __swiftObject, float arg ); + + public float floatMethod( float arg ) { + return __floatMethod( __swiftObject, arg ); + } + + /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + + public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); + + public float[] floatArrayMethod( float[] arg ) { + return __floatArrayMethod( __swiftObject, arg ); + } + + /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + + public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); + + public float[][] float2dArrayMethod( float[][] arg ) { + return __float2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + + public native double __doubleMethod( long __swiftObject, double arg ); + + public double doubleMethod( double arg ) { + return __doubleMethod( __swiftObject, arg ); + } + + /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + + public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); + + public double[] doubleArrayMethod( double[] arg ) { + return __doubleArrayMethod( __swiftObject, arg ); + } + + /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + + public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); + + public double[][] double2dArrayMethod( double[][] arg ) { + return __double2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + + public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); + + public java.lang.String StringMethod( java.lang.String arg ) { + return __StringMethod( __swiftObject, arg ); + } + + /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + + public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); + + public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { + return __StringArrayMethod( __swiftObject, arg ); + } + + /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + + public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); + + public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { + return __String2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ); + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ) { + return __TestListenerMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ); + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ) { + return __TestListenerArrayMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ); + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ) { + return __TestListener2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ); + + public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ) { + return __testMap( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ); + + public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ) { + return __testMapList( __swiftObject, arg ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java new file mode 100644 index 0000000..48a96bc --- /dev/null +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java @@ -0,0 +1,635 @@ + +/// class com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter /// + +package org.swiftjava.com_johnholdsworth; + +@SuppressWarnings("JniMissingFunction") +public class SwiftHelloTest_TestResponderAdapterProxy extends com.johnholdsworth.bindings.SwiftHelloTest.TestResponderAdapter { + + long __swiftObject; + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter() + + SwiftHelloTest_TestResponderAdapterProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) + + public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); + + boolean entered_booleanArrayMethod_0; + + public boolean[] booleanArrayMethod( boolean[] arg ) { + if ( !entered_booleanArrayMethod_0 ) { + entered_booleanArrayMethod_0 = true; + boolean[] __return = __booleanArrayMethod( __swiftObject, arg); + entered_booleanArrayMethod_0 = false; + return __return; + } + else + return super.booleanArrayMethod( arg ); + } + + /// public boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) + + public native boolean[][] __boolean2dArrayMethod( long __swiftObject, boolean[][] arg ); + + boolean entered_boolean2dArrayMethod_1; + + public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { + if ( !entered_boolean2dArrayMethod_1 ) { + entered_boolean2dArrayMethod_1 = true; + boolean[][] __return = __boolean2dArrayMethod( __swiftObject, arg); + entered_boolean2dArrayMethod_1 = false; + return __return; + } + else + return super.boolean2dArrayMethod( arg ); + } + + /// public byte com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) + + public native byte __byteMethod( long __swiftObject, byte arg ); + + boolean entered_byteMethod_2; + + public byte byteMethod( byte arg ) { + if ( !entered_byteMethod_2 ) { + entered_byteMethod_2 = true; + byte __return = __byteMethod( __swiftObject, arg); + entered_byteMethod_2 = false; + return __return; + } + else + return super.byteMethod( arg ); + } + + /// public byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) + + public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); + + boolean entered_byteArrayMethod_3; + + public byte[] byteArrayMethod( byte[] arg ) { + if ( !entered_byteArrayMethod_3 ) { + entered_byteArrayMethod_3 = true; + byte[] __return = __byteArrayMethod( __swiftObject, arg); + entered_byteArrayMethod_3 = false; + return __return; + } + else + return super.byteArrayMethod( arg ); + } + + /// public void com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + public native void __setLoopback( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ); + + boolean entered_setLoopback_4; + + public void setLoopback( com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ) { + if ( !entered_setLoopback_4 ) { + entered_setLoopback_4 = true; + __setLoopback( __swiftObject, loopback); + entered_setLoopback_4 = false; + } + else + super.setLoopback( loopback ); + } + + /// public boolean com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) + + public native boolean __booleanMethod( long __swiftObject, boolean arg ); + + boolean entered_booleanMethod_5; + + public boolean booleanMethod( boolean arg ) { + if ( !entered_booleanMethod_5 ) { + entered_booleanMethod_5 = true; + boolean __return = __booleanMethod( __swiftObject, arg); + entered_booleanMethod_5 = false; + return __return; + } + else + return super.booleanMethod( arg ); + } + + /// public byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) + + public native byte[][] __byte2dArrayMethod( long __swiftObject, byte[][] arg ); + + boolean entered_byte2dArrayMethod_6; + + public byte[][] byte2dArrayMethod( byte[][] arg ) { + if ( !entered_byte2dArrayMethod_6 ) { + entered_byte2dArrayMethod_6 = true; + byte[][] __return = __byte2dArrayMethod( __swiftObject, arg); + entered_byte2dArrayMethod_6 = false; + return __return; + } + else + return super.byte2dArrayMethod( arg ); + } + + /// public char com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) + + public native char __charMethod( long __swiftObject, char arg ); + + boolean entered_charMethod_7; + + public char charMethod( char arg ) { + if ( !entered_charMethod_7 ) { + entered_charMethod_7 = true; + char __return = __charMethod( __swiftObject, arg); + entered_charMethod_7 = false; + return __return; + } + else + return super.charMethod( arg ); + } + + /// public char[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) + + public native char[] __charArrayMethod( long __swiftObject, char[] arg ); + + boolean entered_charArrayMethod_8; + + public char[] charArrayMethod( char[] arg ) { + if ( !entered_charArrayMethod_8 ) { + entered_charArrayMethod_8 = true; + char[] __return = __charArrayMethod( __swiftObject, arg); + entered_charArrayMethod_8 = false; + return __return; + } + else + return super.charArrayMethod( arg ); + } + + /// public char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) + + public native char[][] __char2dArrayMethod( long __swiftObject, char[][] arg ); + + boolean entered_char2dArrayMethod_9; + + public char[][] char2dArrayMethod( char[][] arg ) { + if ( !entered_char2dArrayMethod_9 ) { + entered_char2dArrayMethod_9 = true; + char[][] __return = __char2dArrayMethod( __swiftObject, arg); + entered_char2dArrayMethod_9 = false; + return __return; + } + else + return super.char2dArrayMethod( arg ); + } + + /// public short com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) + + public native short __shortMethod( long __swiftObject, short arg ); + + boolean entered_shortMethod_10; + + public short shortMethod( short arg ) { + if ( !entered_shortMethod_10 ) { + entered_shortMethod_10 = true; + short __return = __shortMethod( __swiftObject, arg); + entered_shortMethod_10 = false; + return __return; + } + else + return super.shortMethod( arg ); + } + + /// public short[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) + + public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); + + boolean entered_shortArrayMethod_11; + + public short[] shortArrayMethod( short[] arg ) { + if ( !entered_shortArrayMethod_11 ) { + entered_shortArrayMethod_11 = true; + short[] __return = __shortArrayMethod( __swiftObject, arg); + entered_shortArrayMethod_11 = false; + return __return; + } + else + return super.shortArrayMethod( arg ); + } + + /// public short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + + public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); + + boolean entered_short2dArrayMethod_12; + + public short[][] short2dArrayMethod( short[][] arg ) { + if ( !entered_short2dArrayMethod_12 ) { + entered_short2dArrayMethod_12 = true; + short[][] __return = __short2dArrayMethod( __swiftObject, arg); + entered_short2dArrayMethod_12 = false; + return __return; + } + else + return super.short2dArrayMethod( arg ); + } + + /// public int com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) + + public native int __intMethod( long __swiftObject, int arg ); + + boolean entered_intMethod_13; + + public int intMethod( int arg ) { + if ( !entered_intMethod_13 ) { + entered_intMethod_13 = true; + int __return = __intMethod( __swiftObject, arg); + entered_intMethod_13 = false; + return __return; + } + else + return super.intMethod( arg ); + } + + /// public int[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) + + public native int[] __intArrayMethod( long __swiftObject, int[] arg ); + + boolean entered_intArrayMethod_14; + + public int[] intArrayMethod( int[] arg ) { + if ( !entered_intArrayMethod_14 ) { + entered_intArrayMethod_14 = true; + int[] __return = __intArrayMethod( __swiftObject, arg); + entered_intArrayMethod_14 = false; + return __return; + } + else + return super.intArrayMethod( arg ); + } + + /// public int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) + + public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); + + boolean entered_int2dArrayMethod_15; + + public int[][] int2dArrayMethod( int[][] arg ) { + if ( !entered_int2dArrayMethod_15 ) { + entered_int2dArrayMethod_15 = true; + int[][] __return = __int2dArrayMethod( __swiftObject, arg); + entered_int2dArrayMethod_15 = false; + return __return; + } + else + return super.int2dArrayMethod( arg ); + } + + /// public long com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) + + public native long __longMethod( long __swiftObject, long arg ); + + boolean entered_longMethod_16; + + public long longMethod( long arg ) { + if ( !entered_longMethod_16 ) { + entered_longMethod_16 = true; + long __return = __longMethod( __swiftObject, arg); + entered_longMethod_16 = false; + return __return; + } + else + return super.longMethod( arg ); + } + + /// public long[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) + + public native long[] __longArrayMethod( long __swiftObject, long[] arg ); + + boolean entered_longArrayMethod_17; + + public long[] longArrayMethod( long[] arg ) { + if ( !entered_longArrayMethod_17 ) { + entered_longArrayMethod_17 = true; + long[] __return = __longArrayMethod( __swiftObject, arg); + entered_longArrayMethod_17 = false; + return __return; + } + else + return super.longArrayMethod( arg ); + } + + /// public long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) + + public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); + + boolean entered_long2dArrayMethod_18; + + public long[][] long2dArrayMethod( long[][] arg ) { + if ( !entered_long2dArrayMethod_18 ) { + entered_long2dArrayMethod_18 = true; + long[][] __return = __long2dArrayMethod( __swiftObject, arg); + entered_long2dArrayMethod_18 = false; + return __return; + } + else + return super.long2dArrayMethod( arg ); + } + + /// public float com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) + + public native float __floatMethod( long __swiftObject, float arg ); + + boolean entered_floatMethod_19; + + public float floatMethod( float arg ) { + if ( !entered_floatMethod_19 ) { + entered_floatMethod_19 = true; + float __return = __floatMethod( __swiftObject, arg); + entered_floatMethod_19 = false; + return __return; + } + else + return super.floatMethod( arg ); + } + + /// public float[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) + + public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); + + boolean entered_floatArrayMethod_20; + + public float[] floatArrayMethod( float[] arg ) { + if ( !entered_floatArrayMethod_20 ) { + entered_floatArrayMethod_20 = true; + float[] __return = __floatArrayMethod( __swiftObject, arg); + entered_floatArrayMethod_20 = false; + return __return; + } + else + return super.floatArrayMethod( arg ); + } + + /// public float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) + + public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); + + boolean entered_float2dArrayMethod_21; + + public float[][] float2dArrayMethod( float[][] arg ) { + if ( !entered_float2dArrayMethod_21 ) { + entered_float2dArrayMethod_21 = true; + float[][] __return = __float2dArrayMethod( __swiftObject, arg); + entered_float2dArrayMethod_21 = false; + return __return; + } + else + return super.float2dArrayMethod( arg ); + } + + /// public double com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) + + public native double __doubleMethod( long __swiftObject, double arg ); + + boolean entered_doubleMethod_22; + + public double doubleMethod( double arg ) { + if ( !entered_doubleMethod_22 ) { + entered_doubleMethod_22 = true; + double __return = __doubleMethod( __swiftObject, arg); + entered_doubleMethod_22 = false; + return __return; + } + else + return super.doubleMethod( arg ); + } + + /// public double[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) + + public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); + + boolean entered_doubleArrayMethod_23; + + public double[] doubleArrayMethod( double[] arg ) { + if ( !entered_doubleArrayMethod_23 ) { + entered_doubleArrayMethod_23 = true; + double[] __return = __doubleArrayMethod( __swiftObject, arg); + entered_doubleArrayMethod_23 = false; + return __return; + } + else + return super.doubleArrayMethod( arg ); + } + + /// public double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) + + public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); + + boolean entered_double2dArrayMethod_24; + + public double[][] double2dArrayMethod( double[][] arg ) { + if ( !entered_double2dArrayMethod_24 ) { + entered_double2dArrayMethod_24 = true; + double[][] __return = __double2dArrayMethod( __swiftObject, arg); + entered_double2dArrayMethod_24 = false; + return __return; + } + else + return super.double2dArrayMethod( arg ); + } + + /// public java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) + + public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); + + boolean entered_StringMethod_25; + + public java.lang.String StringMethod( java.lang.String arg ) { + if ( !entered_StringMethod_25 ) { + entered_StringMethod_25 = true; + java.lang.String __return = __StringMethod( __swiftObject, arg); + entered_StringMethod_25 = false; + return __return; + } + else + return super.StringMethod( arg ); + } + + /// public java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) + + public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); + + boolean entered_StringArrayMethod_26; + + public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { + if ( !entered_StringArrayMethod_26 ) { + entered_StringArrayMethod_26 = true; + java.lang.String[] __return = __StringArrayMethod( __swiftObject, arg); + entered_StringArrayMethod_26 = false; + return __return; + } + else + return super.StringArrayMethod( arg ); + } + + /// public java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) + + public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); + + boolean entered_String2dArrayMethod_27; + + public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { + if ( !entered_String2dArrayMethod_27 ) { + entered_String2dArrayMethod_27 = true; + java.lang.String[][] __return = __String2dArrayMethod( __swiftObject, arg); + entered_String2dArrayMethod_27 = false; + return __return; + } + else + return super.String2dArrayMethod( arg ); + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ); + + boolean entered_TestListenerMethod_28; + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ) { + if ( !entered_TestListenerMethod_28 ) { + entered_TestListenerMethod_28 = true; + com.johnholdsworth.bindings.SwiftHelloTest.TestListener __return = __TestListenerMethod( __swiftObject, arg); + entered_TestListenerMethod_28 = false; + return __return; + } + else + return super.TestListenerMethod( arg ); + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ); + + boolean entered_TestListenerArrayMethod_29; + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ) { + if ( !entered_TestListenerArrayMethod_29 ) { + entered_TestListenerArrayMethod_29 = true; + com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] __return = __TestListenerArrayMethod( __swiftObject, arg); + entered_TestListenerArrayMethod_29 = false; + return __return; + } + else + return super.TestListenerArrayMethod( arg ); + } + + /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + + public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ); + + boolean entered_TestListener2dArrayMethod_30; + + public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ) { + if ( !entered_TestListener2dArrayMethod_30 ) { + entered_TestListener2dArrayMethod_30 = true; + com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] __return = __TestListener2dArrayMethod( __swiftObject, arg); + entered_TestListener2dArrayMethod_30 = false; + return __return; + } + else + return super.TestListener2dArrayMethod( arg ); + } + + /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + + public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ); + + boolean entered_testMap_31; + + public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ) { + if ( !entered_testMap_31 ) { + entered_testMap_31 = true; + com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap __return = __testMap( __swiftObject, arg); + entered_testMap_31 = false; + return __return; + } + else + return super.testMap( arg ); + } + + /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ); + + boolean entered_testMapList_32; + + public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ) { + if ( !entered_testMapList_32 ) { + entered_testMapList_32 = true; + com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList __return = __testMapList( __swiftObject, arg); + entered_testMapList_32 = false; + return __return; + } + else + return super.testMapList( arg ); + } + + /// public boolean java.lang.Object.equals(java.lang.Object) + + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + + boolean entered_equals_33; + + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_33 ) { + entered_equals_33 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_33 = false; + return __return; + } + else + return super.equals( arg0 ); + } + + /// public java.lang.String java.lang.Object.toString() + + public native java.lang.String __toString( long __swiftObject ); + + boolean entered_toString_34; + + public java.lang.String toString() { + if ( !entered_toString_34 ) { + entered_toString_34 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_34 = false; + return __return; + } + else + return super.toString( ); + } + + /// public native int java.lang.Object.hashCode() + + public native int __hashCode( long __swiftObject ); + + boolean entered_hashCode_35; + + public int hashCode() { + if ( !entered_hashCode_35 ) { + entered_hashCode_35 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_35 = false; + return __return; + } + else + return super.hashCode( ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java new file mode 100644 index 0000000..5120488 --- /dev/null +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface com.johnholdsworth.bindings.SwiftHelloTypes$TextListener /// + +package org.swiftjava.com_johnholdsworth; + +@SuppressWarnings("JniMissingFunction") +public class SwiftHelloTypes_TextListenerProxy implements com.johnholdsworth.bindings.SwiftHelloTypes.TextListener { + + long __swiftObject; + + SwiftHelloTypes_TextListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + + public native java.lang.String __getText( long __swiftObject ); + + public java.lang.String getText() { + return __getText( __swiftObject ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/AWTEventListenerProxy.java b/src/org/swiftjava/java_awt/AWTEventListenerProxy.java new file mode 100644 index 0000000..5ea9806 --- /dev/null +++ b/src/org/swiftjava/java_awt/AWTEventListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.AWTEventListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class AWTEventListenerProxy implements java.awt.event.AWTEventListener { + + long __swiftObject; + + AWTEventListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.AWTEventListener.eventDispatched(java.awt.AWTEvent) + + public native void __eventDispatched( long __swiftObject, java.awt.AWTEvent event ); + + public void eventDispatched( java.awt.AWTEvent event ) { + __eventDispatched( __swiftObject, event ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/ActionListenerProxy.java b/src/org/swiftjava/java_awt/ActionListenerProxy.java new file mode 100644 index 0000000..e92b516 --- /dev/null +++ b/src/org/swiftjava/java_awt/ActionListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.ActionListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class ActionListenerProxy implements java.awt.event.ActionListener { + + long __swiftObject; + + ActionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.ActionListener.actionPerformed(java.awt.event.ActionEvent) + + public native void __actionPerformed( long __swiftObject, java.awt.event.ActionEvent e ); + + public void actionPerformed( java.awt.event.ActionEvent e ) { + __actionPerformed( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java b/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java new file mode 100644 index 0000000..b200dab --- /dev/null +++ b/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.AdjustmentListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class AdjustmentListenerProxy implements java.awt.event.AdjustmentListener { + + long __swiftObject; + + AdjustmentListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.AdjustmentListener.adjustmentValueChanged(java.awt.event.AdjustmentEvent) + + public native void __adjustmentValueChanged( long __swiftObject, java.awt.event.AdjustmentEvent e ); + + public void adjustmentValueChanged( java.awt.event.AdjustmentEvent e ) { + __adjustmentValueChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/CanvasProxy.java b/src/org/swiftjava/java_awt/CanvasProxy.java new file mode 100644 index 0000000..07e6dfd --- /dev/null +++ b/src/org/swiftjava/java_awt/CanvasProxy.java @@ -0,0 +1,63 @@ + +/// class java.awt.Canvas /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class CanvasProxy extends java.awt.Canvas { + + long __swiftObject; + + /// public java.awt.Canvas() + + CanvasProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.Canvas(java.awt.GraphicsConfiguration) + + CanvasProxy( java.awt.GraphicsConfiguration config , long __swiftObject ) { + super( config ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.Canvas.update(java.awt.Graphics) + + public native void __update( long __swiftObject, java.awt.Graphics g ); + + boolean entered_update_0; + + public void update( java.awt.Graphics g ) { + if ( !entered_update_0 ) { + entered_update_0 = true; + __update( __swiftObject, g); + entered_update_0 = false; + } + else + super.update( g ); + } + + /// public void java.awt.Canvas.paint(java.awt.Graphics) + + public native void __paint( long __swiftObject, java.awt.Graphics g ); + + boolean entered_paint_1; + + public void paint( java.awt.Graphics g ) { + if ( !entered_paint_1 ) { + entered_paint_1 = true; + __paint( __swiftObject, g); + entered_paint_1 = false; + } + else + super.paint( g ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/ComponentAdapterProxy.java b/src/org/swiftjava/java_awt/ComponentAdapterProxy.java similarity index 60% rename from src/org/genie/java_awt/ComponentAdapterProxy.java rename to src/org/swiftjava/java_awt/ComponentAdapterProxy.java index 92e2488..9404e32 100644 --- a/src/org/genie/java_awt/ComponentAdapterProxy.java +++ b/src/org/swiftjava/java_awt/ComponentAdapterProxy.java @@ -1,93 +1,94 @@ /// class java.awt.event.ComponentAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class ComponentAdapterProxy extends java.awt.event.ComponentAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.ComponentAdapter() - ComponentAdapterProxy( long swiftObject ) { + ComponentAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.ComponentAdapter.componentResized(java.awt.event.ComponentEvent) - public native void __componentResized( java.awt.event.ComponentEvent arg0 ); + public native void __componentResized( long __swiftObject, java.awt.event.ComponentEvent e ); boolean entered_componentResized_0; - public void componentResized( java.awt.event.ComponentEvent arg0 ) { + public void componentResized( java.awt.event.ComponentEvent e ) { if ( !entered_componentResized_0 ) { entered_componentResized_0 = true; - __componentResized( arg0 ); + __componentResized( __swiftObject, e); entered_componentResized_0 = false; } else - super.componentResized( arg0 ); + super.componentResized( e ); } /// public void java.awt.event.ComponentAdapter.componentMoved(java.awt.event.ComponentEvent) - public native void __componentMoved( java.awt.event.ComponentEvent arg0 ); + public native void __componentMoved( long __swiftObject, java.awt.event.ComponentEvent e ); boolean entered_componentMoved_1; - public void componentMoved( java.awt.event.ComponentEvent arg0 ) { + public void componentMoved( java.awt.event.ComponentEvent e ) { if ( !entered_componentMoved_1 ) { entered_componentMoved_1 = true; - __componentMoved( arg0 ); + __componentMoved( __swiftObject, e); entered_componentMoved_1 = false; } else - super.componentMoved( arg0 ); + super.componentMoved( e ); } /// public void java.awt.event.ComponentAdapter.componentShown(java.awt.event.ComponentEvent) - public native void __componentShown( java.awt.event.ComponentEvent arg0 ); + public native void __componentShown( long __swiftObject, java.awt.event.ComponentEvent e ); boolean entered_componentShown_2; - public void componentShown( java.awt.event.ComponentEvent arg0 ) { + public void componentShown( java.awt.event.ComponentEvent e ) { if ( !entered_componentShown_2 ) { entered_componentShown_2 = true; - __componentShown( arg0 ); + __componentShown( __swiftObject, e); entered_componentShown_2 = false; } else - super.componentShown( arg0 ); + super.componentShown( e ); } /// public void java.awt.event.ComponentAdapter.componentHidden(java.awt.event.ComponentEvent) - public native void __componentHidden( java.awt.event.ComponentEvent arg0 ); + public native void __componentHidden( long __swiftObject, java.awt.event.ComponentEvent e ); boolean entered_componentHidden_3; - public void componentHidden( java.awt.event.ComponentEvent arg0 ) { + public void componentHidden( java.awt.event.ComponentEvent e ) { if ( !entered_componentHidden_3 ) { entered_componentHidden_3 = true; - __componentHidden( arg0 ); + __componentHidden( __swiftObject, e); entered_componentHidden_3 = false; } else - super.componentHidden( arg0 ); + super.componentHidden( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_4; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_4 ) { entered_equals_4 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_4 = false; return __return; } @@ -97,14 +98,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_5; public java.lang.String toString() { if ( !entered_toString_5 ) { entered_toString_5 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_5 = false; return __return; } @@ -114,14 +115,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_6; public int hashCode() { if ( !entered_hashCode_6 ) { entered_hashCode_6 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_6 = false; return __return; } @@ -129,4 +130,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/ComponentListenerProxy.java b/src/org/swiftjava/java_awt/ComponentListenerProxy.java new file mode 100644 index 0000000..bbedf7c --- /dev/null +++ b/src/org/swiftjava/java_awt/ComponentListenerProxy.java @@ -0,0 +1,53 @@ + +/// interface java.awt.event.ComponentListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class ComponentListenerProxy implements java.awt.event.ComponentListener { + + long __swiftObject; + + ComponentListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.ComponentListener.componentResized(java.awt.event.ComponentEvent) + + public native void __componentResized( long __swiftObject, java.awt.event.ComponentEvent e ); + + public void componentResized( java.awt.event.ComponentEvent e ) { + __componentResized( __swiftObject, e ); + } + + /// public abstract void java.awt.event.ComponentListener.componentMoved(java.awt.event.ComponentEvent) + + public native void __componentMoved( long __swiftObject, java.awt.event.ComponentEvent e ); + + public void componentMoved( java.awt.event.ComponentEvent e ) { + __componentMoved( __swiftObject, e ); + } + + /// public abstract void java.awt.event.ComponentListener.componentShown(java.awt.event.ComponentEvent) + + public native void __componentShown( long __swiftObject, java.awt.event.ComponentEvent e ); + + public void componentShown( java.awt.event.ComponentEvent e ) { + __componentShown( __swiftObject, e ); + } + + /// public abstract void java.awt.event.ComponentListener.componentHidden(java.awt.event.ComponentEvent) + + public native void __componentHidden( long __swiftObject, java.awt.event.ComponentEvent e ); + + public void componentHidden( java.awt.event.ComponentEvent e ) { + __componentHidden( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/ContainerAdapterProxy.java b/src/org/swiftjava/java_awt/ContainerAdapterProxy.java similarity index 62% rename from src/org/genie/java_awt/ContainerAdapterProxy.java rename to src/org/swiftjava/java_awt/ContainerAdapterProxy.java index 86e5d1c..b4b52a9 100644 --- a/src/org/genie/java_awt/ContainerAdapterProxy.java +++ b/src/org/swiftjava/java_awt/ContainerAdapterProxy.java @@ -1,61 +1,62 @@ /// class java.awt.event.ContainerAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class ContainerAdapterProxy extends java.awt.event.ContainerAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.ContainerAdapter() - ContainerAdapterProxy( long swiftObject ) { + ContainerAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.ContainerAdapter.componentAdded(java.awt.event.ContainerEvent) - public native void __componentAdded( java.awt.event.ContainerEvent arg0 ); + public native void __componentAdded( long __swiftObject, java.awt.event.ContainerEvent e ); boolean entered_componentAdded_0; - public void componentAdded( java.awt.event.ContainerEvent arg0 ) { + public void componentAdded( java.awt.event.ContainerEvent e ) { if ( !entered_componentAdded_0 ) { entered_componentAdded_0 = true; - __componentAdded( arg0 ); + __componentAdded( __swiftObject, e); entered_componentAdded_0 = false; } else - super.componentAdded( arg0 ); + super.componentAdded( e ); } /// public void java.awt.event.ContainerAdapter.componentRemoved(java.awt.event.ContainerEvent) - public native void __componentRemoved( java.awt.event.ContainerEvent arg0 ); + public native void __componentRemoved( long __swiftObject, java.awt.event.ContainerEvent e ); boolean entered_componentRemoved_1; - public void componentRemoved( java.awt.event.ContainerEvent arg0 ) { + public void componentRemoved( java.awt.event.ContainerEvent e ) { if ( !entered_componentRemoved_1 ) { entered_componentRemoved_1 = true; - __componentRemoved( arg0 ); + __componentRemoved( __swiftObject, e); entered_componentRemoved_1 = false; } else - super.componentRemoved( arg0 ); + super.componentRemoved( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_2; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_2 ) { entered_equals_2 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_2 = false; return __return; } @@ -65,14 +66,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_3; public java.lang.String toString() { if ( !entered_toString_3 ) { entered_toString_3 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_3 = false; return __return; } @@ -82,14 +83,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_4; public int hashCode() { if ( !entered_hashCode_4 ) { entered_hashCode_4 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_4 = false; return __return; } @@ -97,4 +98,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/ContainerListenerProxy.java b/src/org/swiftjava/java_awt/ContainerListenerProxy.java new file mode 100644 index 0000000..4d711a2 --- /dev/null +++ b/src/org/swiftjava/java_awt/ContainerListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.awt.event.ContainerListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class ContainerListenerProxy implements java.awt.event.ContainerListener { + + long __swiftObject; + + ContainerListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.ContainerListener.componentAdded(java.awt.event.ContainerEvent) + + public native void __componentAdded( long __swiftObject, java.awt.event.ContainerEvent e ); + + public void componentAdded( java.awt.event.ContainerEvent e ) { + __componentAdded( __swiftObject, e ); + } + + /// public abstract void java.awt.event.ContainerListener.componentRemoved(java.awt.event.ContainerEvent) + + public native void __componentRemoved( long __swiftObject, java.awt.event.ContainerEvent e ); + + public void componentRemoved( java.awt.event.ContainerEvent e ) { + __componentRemoved( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/DialogProxy.java b/src/org/swiftjava/java_awt/DialogProxy.java similarity index 62% rename from src/org/genie/java_awt/DialogProxy.java rename to src/org/swiftjava/java_awt/DialogProxy.java index 1da066d..a8d1f74 100644 --- a/src/org/genie/java_awt/DialogProxy.java +++ b/src/org/swiftjava/java_awt/DialogProxy.java @@ -1,124 +1,131 @@ /// class java.awt.Dialog /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class DialogProxy extends java.awt.Dialog { - long swiftObject; + long __swiftObject; - /// public java.awt.Dialog(java.awt.Frame) + /// public java.awt.Dialog(java.awt.Window,java.lang.String) - DialogProxy( java.awt.Frame arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Window arg0, java.lang.String arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Frame,boolean) + /// public java.awt.Dialog(java.awt.Window) - DialogProxy( java.awt.Frame arg0, boolean arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Window arg0 , long __swiftObject ) { + super( arg0 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Frame,java.lang.String) + /// public java.awt.Dialog(java.awt.Dialog,java.lang.String,boolean,java.awt.GraphicsConfiguration) - DialogProxy( java.awt.Frame arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Dialog arg0, java.lang.String arg1, boolean arg2, java.awt.GraphicsConfiguration arg3 , long __swiftObject ) { + super( arg0, arg1, arg2, arg3 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Frame,java.lang.String,boolean) + /// public java.awt.Dialog(java.awt.Dialog,java.lang.String,boolean) - DialogProxy( java.awt.Frame arg0, java.lang.String arg1, boolean arg2 , long swiftObject ) { + DialogProxy( java.awt.Dialog arg0, java.lang.String arg1, boolean arg2 , long __swiftObject ) { super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Frame,java.lang.String,boolean,java.awt.GraphicsConfiguration) + /// public java.awt.Dialog(java.awt.Window,java.awt.Dialog$ModalityType) - DialogProxy( java.awt.Frame arg0, java.lang.String arg1, boolean arg2, java.awt.GraphicsConfiguration arg3 , long swiftObject ) { - super( arg0, arg1, arg2, arg3 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Window arg0, java.awt.Dialog.ModalityType arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Dialog) + /// public java.awt.Dialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType) - DialogProxy( java.awt.Dialog arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Window arg0, java.lang.String arg1, java.awt.Dialog.ModalityType arg2 , long __swiftObject ) { + super( arg0, arg1, arg2 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Dialog,java.lang.String) + /// public java.awt.Dialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType,java.awt.GraphicsConfiguration) - DialogProxy( java.awt.Dialog arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Window arg0, java.lang.String arg1, java.awt.Dialog.ModalityType arg2, java.awt.GraphicsConfiguration arg3 , long __swiftObject ) { + super( arg0, arg1, arg2, arg3 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Dialog,java.lang.String,boolean) + /// public java.awt.Dialog(java.awt.Frame,java.lang.String,boolean) - DialogProxy( java.awt.Dialog arg0, java.lang.String arg1, boolean arg2 , long swiftObject ) { + DialogProxy( java.awt.Frame arg0, java.lang.String arg1, boolean arg2 , long __swiftObject ) { super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Dialog,java.lang.String,boolean,java.awt.GraphicsConfiguration) + /// public java.awt.Dialog(java.awt.Frame,java.lang.String) - DialogProxy( java.awt.Dialog arg0, java.lang.String arg1, boolean arg2, java.awt.GraphicsConfiguration arg3 , long swiftObject ) { - super( arg0, arg1, arg2, arg3 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Frame arg0, java.lang.String arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Window) + /// public java.awt.Dialog(java.awt.Frame,boolean) - DialogProxy( java.awt.Window arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Frame arg0, boolean arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Window,java.lang.String) + /// public java.awt.Dialog(java.awt.Frame) - DialogProxy( java.awt.Window arg0, java.lang.String arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Frame arg0 , long __swiftObject ) { + super( arg0 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Window,java.awt.Dialog$ModalityType) + /// public java.awt.Dialog(java.awt.Dialog,java.lang.String) - DialogProxy( java.awt.Window arg0, java.awt.Dialog.ModalityType arg1 , long swiftObject ) { + DialogProxy( java.awt.Dialog arg0, java.lang.String arg1 , long __swiftObject ) { super( arg0, arg1 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType) + /// public java.awt.Dialog(java.awt.Dialog) - DialogProxy( java.awt.Window arg0, java.lang.String arg1, java.awt.Dialog.ModalityType arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; + DialogProxy( java.awt.Dialog arg0 , long __swiftObject ) { + super( arg0 ); + this.__swiftObject = __swiftObject; } - /// public java.awt.Dialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType,java.awt.GraphicsConfiguration) + /// public java.awt.Dialog(java.awt.Frame,java.lang.String,boolean,java.awt.GraphicsConfiguration) - DialogProxy( java.awt.Window arg0, java.lang.String arg1, java.awt.Dialog.ModalityType arg2, java.awt.GraphicsConfiguration arg3 , long swiftObject ) { + DialogProxy( java.awt.Frame arg0, java.lang.String arg1, boolean arg2, java.awt.GraphicsConfiguration arg3 , long __swiftObject ) { super( arg0, arg1, arg2, arg3 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.Window.paint(java.awt.Graphics) - public native void __paint( java.awt.Graphics arg0 ); + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); boolean entered_paint_0; public void paint( java.awt.Graphics arg0 ) { if ( !entered_paint_0 ) { entered_paint_0 = true; - __paint( arg0 ); + __paint( __swiftObject, arg0); entered_paint_0 = false; } else super.paint( arg0 ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/DragGestureListenerProxy.java b/src/org/swiftjava/java_awt/DragGestureListenerProxy.java new file mode 100644 index 0000000..303b802 --- /dev/null +++ b/src/org/swiftjava/java_awt/DragGestureListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.dnd.DragGestureListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class DragGestureListenerProxy implements java.awt.dnd.DragGestureListener { + + long __swiftObject; + + DragGestureListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.dnd.DragGestureListener.dragGestureRecognized(java.awt.dnd.DragGestureEvent) + + public native void __dragGestureRecognized( long __swiftObject, java.awt.dnd.DragGestureEvent dge ); + + public void dragGestureRecognized( java.awt.dnd.DragGestureEvent dge ) { + __dragGestureRecognized( __swiftObject, dge ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/DragSourceAdapterProxy.java b/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java similarity index 59% rename from src/org/genie/java_awt/DragSourceAdapterProxy.java rename to src/org/swiftjava/java_awt/DragSourceAdapterProxy.java index 6deb641..18e0034 100644 --- a/src/org/genie/java_awt/DragSourceAdapterProxy.java +++ b/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java @@ -1,125 +1,126 @@ /// class java.awt.dnd.DragSourceAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class DragSourceAdapterProxy extends java.awt.dnd.DragSourceAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.dnd.DragSourceAdapter() - DragSourceAdapterProxy( long swiftObject ) { + DragSourceAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.dnd.DragSourceAdapter.dragEnter(java.awt.dnd.DragSourceDragEvent) - public native void __dragEnter( java.awt.dnd.DragSourceDragEvent arg0 ); + public native void __dragEnter( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); boolean entered_dragEnter_0; - public void dragEnter( java.awt.dnd.DragSourceDragEvent arg0 ) { + public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { if ( !entered_dragEnter_0 ) { entered_dragEnter_0 = true; - __dragEnter( arg0 ); + __dragEnter( __swiftObject, dsde); entered_dragEnter_0 = false; } else - super.dragEnter( arg0 ); + super.dragEnter( dsde ); } /// public void java.awt.dnd.DragSourceAdapter.dragOver(java.awt.dnd.DragSourceDragEvent) - public native void __dragOver( java.awt.dnd.DragSourceDragEvent arg0 ); + public native void __dragOver( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); boolean entered_dragOver_1; - public void dragOver( java.awt.dnd.DragSourceDragEvent arg0 ) { + public void dragOver( java.awt.dnd.DragSourceDragEvent dsde ) { if ( !entered_dragOver_1 ) { entered_dragOver_1 = true; - __dragOver( arg0 ); + __dragOver( __swiftObject, dsde); entered_dragOver_1 = false; } else - super.dragOver( arg0 ); + super.dragOver( dsde ); } /// public void java.awt.dnd.DragSourceAdapter.dropActionChanged(java.awt.dnd.DragSourceDragEvent) - public native void __dropActionChanged( java.awt.dnd.DragSourceDragEvent arg0 ); + public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); boolean entered_dropActionChanged_2; - public void dropActionChanged( java.awt.dnd.DragSourceDragEvent arg0 ) { + public void dropActionChanged( java.awt.dnd.DragSourceDragEvent dsde ) { if ( !entered_dropActionChanged_2 ) { entered_dropActionChanged_2 = true; - __dropActionChanged( arg0 ); + __dropActionChanged( __swiftObject, dsde); entered_dropActionChanged_2 = false; } else - super.dropActionChanged( arg0 ); + super.dropActionChanged( dsde ); } /// public void java.awt.dnd.DragSourceAdapter.dragExit(java.awt.dnd.DragSourceEvent) - public native void __dragExit( java.awt.dnd.DragSourceEvent arg0 ); + public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); boolean entered_dragExit_3; - public void dragExit( java.awt.dnd.DragSourceEvent arg0 ) { + public void dragExit( java.awt.dnd.DragSourceEvent dse ) { if ( !entered_dragExit_3 ) { entered_dragExit_3 = true; - __dragExit( arg0 ); + __dragExit( __swiftObject, dse); entered_dragExit_3 = false; } else - super.dragExit( arg0 ); + super.dragExit( dse ); } /// public void java.awt.dnd.DragSourceAdapter.dragDropEnd(java.awt.dnd.DragSourceDropEvent) - public native void __dragDropEnd( java.awt.dnd.DragSourceDropEvent arg0 ); + public native void __dragDropEnd( long __swiftObject, java.awt.dnd.DragSourceDropEvent dsde ); boolean entered_dragDropEnd_4; - public void dragDropEnd( java.awt.dnd.DragSourceDropEvent arg0 ) { + public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { if ( !entered_dragDropEnd_4 ) { entered_dragDropEnd_4 = true; - __dragDropEnd( arg0 ); + __dragDropEnd( __swiftObject, dsde); entered_dragDropEnd_4 = false; } else - super.dragDropEnd( arg0 ); + super.dragDropEnd( dsde ); } /// public void java.awt.dnd.DragSourceAdapter.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) - public native void __dragMouseMoved( java.awt.dnd.DragSourceDragEvent arg0 ); + public native void __dragMouseMoved( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); boolean entered_dragMouseMoved_5; - public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent arg0 ) { + public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent dsde ) { if ( !entered_dragMouseMoved_5 ) { entered_dragMouseMoved_5 = true; - __dragMouseMoved( arg0 ); + __dragMouseMoved( __swiftObject, dsde); entered_dragMouseMoved_5 = false; } else - super.dragMouseMoved( arg0 ); + super.dragMouseMoved( dsde ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_6; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_6 ) { entered_equals_6 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_6 = false; return __return; } @@ -129,14 +130,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_7; public java.lang.String toString() { if ( !entered_toString_7 ) { entered_toString_7 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_7 = false; return __return; } @@ -146,14 +147,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_8; public int hashCode() { if ( !entered_hashCode_8 ) { entered_hashCode_8 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_8 = false; return __return; } @@ -161,4 +162,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/DragSourceListenerProxy.java b/src/org/swiftjava/java_awt/DragSourceListenerProxy.java new file mode 100644 index 0000000..8e62f87 --- /dev/null +++ b/src/org/swiftjava/java_awt/DragSourceListenerProxy.java @@ -0,0 +1,61 @@ + +/// interface java.awt.dnd.DragSourceListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class DragSourceListenerProxy implements java.awt.dnd.DragSourceListener { + + long __swiftObject; + + DragSourceListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.dnd.DragSourceListener.dragEnter(java.awt.dnd.DragSourceDragEvent) + + public native void __dragEnter( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + + public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { + __dragEnter( __swiftObject, dsde ); + } + + /// public abstract void java.awt.dnd.DragSourceListener.dragOver(java.awt.dnd.DragSourceDragEvent) + + public native void __dragOver( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + + public void dragOver( java.awt.dnd.DragSourceDragEvent dsde ) { + __dragOver( __swiftObject, dsde ); + } + + /// public abstract void java.awt.dnd.DragSourceListener.dropActionChanged(java.awt.dnd.DragSourceDragEvent) + + public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + + public void dropActionChanged( java.awt.dnd.DragSourceDragEvent dsde ) { + __dropActionChanged( __swiftObject, dsde ); + } + + /// public abstract void java.awt.dnd.DragSourceListener.dragExit(java.awt.dnd.DragSourceEvent) + + public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); + + public void dragExit( java.awt.dnd.DragSourceEvent dse ) { + __dragExit( __swiftObject, dse ); + } + + /// public abstract void java.awt.dnd.DragSourceListener.dragDropEnd(java.awt.dnd.DragSourceDropEvent) + + public native void __dragDropEnd( long __swiftObject, java.awt.dnd.DragSourceDropEvent dsde ); + + public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { + __dragDropEnd( __swiftObject, dsde ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java b/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java new file mode 100644 index 0000000..f318fab --- /dev/null +++ b/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.dnd.DragSourceMotionListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class DragSourceMotionListenerProxy implements java.awt.dnd.DragSourceMotionListener { + + long __swiftObject; + + DragSourceMotionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.dnd.DragSourceMotionListener.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) + + public native void __dragMouseMoved( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + + public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent dsde ) { + __dragMouseMoved( __swiftObject, dsde ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/DropTargetListenerProxy.java b/src/org/swiftjava/java_awt/DropTargetListenerProxy.java new file mode 100644 index 0000000..0a1f16b --- /dev/null +++ b/src/org/swiftjava/java_awt/DropTargetListenerProxy.java @@ -0,0 +1,61 @@ + +/// interface java.awt.dnd.DropTargetListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class DropTargetListenerProxy implements java.awt.dnd.DropTargetListener { + + long __swiftObject; + + DropTargetListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.dnd.DropTargetListener.dragEnter(java.awt.dnd.DropTargetDragEvent) + + public native void __dragEnter( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + public void dragEnter( java.awt.dnd.DropTargetDragEvent dtde ) { + __dragEnter( __swiftObject, dtde ); + } + + /// public abstract void java.awt.dnd.DropTargetListener.dragOver(java.awt.dnd.DropTargetDragEvent) + + public native void __dragOver( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + public void dragOver( java.awt.dnd.DropTargetDragEvent dtde ) { + __dragOver( __swiftObject, dtde ); + } + + /// public abstract void java.awt.dnd.DropTargetListener.dropActionChanged(java.awt.dnd.DropTargetDragEvent) + + public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + public void dropActionChanged( java.awt.dnd.DropTargetDragEvent dtde ) { + __dropActionChanged( __swiftObject, dtde ); + } + + /// public abstract void java.awt.dnd.DropTargetListener.dragExit(java.awt.dnd.DropTargetEvent) + + public native void __dragExit( long __swiftObject, java.awt.dnd.DropTargetEvent dte ); + + public void dragExit( java.awt.dnd.DropTargetEvent dte ) { + __dragExit( __swiftObject, dte ); + } + + /// public abstract void java.awt.dnd.DropTargetListener.drop(java.awt.dnd.DropTargetDropEvent) + + public native void __drop( long __swiftObject, java.awt.dnd.DropTargetDropEvent dtde ); + + public void drop( java.awt.dnd.DropTargetDropEvent dtde ) { + __drop( __swiftObject, dtde ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/FileDialogProxy.java b/src/org/swiftjava/java_awt/FileDialogProxy.java new file mode 100644 index 0000000..47badcb --- /dev/null +++ b/src/org/swiftjava/java_awt/FileDialogProxy.java @@ -0,0 +1,75 @@ + +/// class java.awt.FileDialog /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class FileDialogProxy extends java.awt.FileDialog { + + long __swiftObject; + + /// public java.awt.FileDialog(java.awt.Dialog,java.lang.String) + + FileDialogProxy( java.awt.Dialog parent, java.lang.String title , long __swiftObject ) { + super( parent, title ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.FileDialog(java.awt.Dialog) + + FileDialogProxy( java.awt.Dialog parent , long __swiftObject ) { + super( parent ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.FileDialog(java.awt.Frame,java.lang.String,int) + + FileDialogProxy( java.awt.Frame parent, java.lang.String title, int mode , long __swiftObject ) { + super( parent, title, mode ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.FileDialog(java.awt.Dialog,java.lang.String,int) + + FileDialogProxy( java.awt.Dialog parent, java.lang.String title, int mode , long __swiftObject ) { + super( parent, title, mode ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.FileDialog(java.awt.Frame) + + FileDialogProxy( java.awt.Frame parent , long __swiftObject ) { + super( parent ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.FileDialog(java.awt.Frame,java.lang.String) + + FileDialogProxy( java.awt.Frame parent, java.lang.String title , long __swiftObject ) { + super( parent, title ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.Window.paint(java.awt.Graphics) + + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); + + boolean entered_paint_0; + + public void paint( java.awt.Graphics arg0 ) { + if ( !entered_paint_0 ) { + entered_paint_0 = true; + __paint( __swiftObject, arg0); + entered_paint_0 = false; + } + else + super.paint( arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/FlavorListenerProxy.java b/src/org/swiftjava/java_awt/FlavorListenerProxy.java new file mode 100644 index 0000000..2c38ce0 --- /dev/null +++ b/src/org/swiftjava/java_awt/FlavorListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.datatransfer.FlavorListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class FlavorListenerProxy implements java.awt.datatransfer.FlavorListener { + + long __swiftObject; + + FlavorListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.datatransfer.FlavorListener.flavorsChanged(java.awt.datatransfer.FlavorEvent) + + public native void __flavorsChanged( long __swiftObject, java.awt.datatransfer.FlavorEvent e ); + + public void flavorsChanged( java.awt.datatransfer.FlavorEvent e ) { + __flavorsChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/FocusAdapterProxy.java b/src/org/swiftjava/java_awt/FocusAdapterProxy.java similarity index 60% rename from src/org/genie/java_awt/FocusAdapterProxy.java rename to src/org/swiftjava/java_awt/FocusAdapterProxy.java index be1776d..50ee35b 100644 --- a/src/org/genie/java_awt/FocusAdapterProxy.java +++ b/src/org/swiftjava/java_awt/FocusAdapterProxy.java @@ -1,61 +1,62 @@ /// class java.awt.event.FocusAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class FocusAdapterProxy extends java.awt.event.FocusAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.FocusAdapter() - FocusAdapterProxy( long swiftObject ) { + FocusAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.FocusAdapter.focusGained(java.awt.event.FocusEvent) - public native void __focusGained( java.awt.event.FocusEvent arg0 ); + public native void __focusGained( long __swiftObject, java.awt.event.FocusEvent e ); boolean entered_focusGained_0; - public void focusGained( java.awt.event.FocusEvent arg0 ) { + public void focusGained( java.awt.event.FocusEvent e ) { if ( !entered_focusGained_0 ) { entered_focusGained_0 = true; - __focusGained( arg0 ); + __focusGained( __swiftObject, e); entered_focusGained_0 = false; } else - super.focusGained( arg0 ); + super.focusGained( e ); } /// public void java.awt.event.FocusAdapter.focusLost(java.awt.event.FocusEvent) - public native void __focusLost( java.awt.event.FocusEvent arg0 ); + public native void __focusLost( long __swiftObject, java.awt.event.FocusEvent e ); boolean entered_focusLost_1; - public void focusLost( java.awt.event.FocusEvent arg0 ) { + public void focusLost( java.awt.event.FocusEvent e ) { if ( !entered_focusLost_1 ) { entered_focusLost_1 = true; - __focusLost( arg0 ); + __focusLost( __swiftObject, e); entered_focusLost_1 = false; } else - super.focusLost( arg0 ); + super.focusLost( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_2; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_2 ) { entered_equals_2 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_2 = false; return __return; } @@ -65,14 +66,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_3; public java.lang.String toString() { if ( !entered_toString_3 ) { entered_toString_3 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_3 = false; return __return; } @@ -82,14 +83,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_4; public int hashCode() { if ( !entered_hashCode_4 ) { entered_hashCode_4 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_4 = false; return __return; } @@ -97,4 +98,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/FocusListenerProxy.java b/src/org/swiftjava/java_awt/FocusListenerProxy.java new file mode 100644 index 0000000..d0cd52c --- /dev/null +++ b/src/org/swiftjava/java_awt/FocusListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.awt.event.FocusListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class FocusListenerProxy implements java.awt.event.FocusListener { + + long __swiftObject; + + FocusListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.FocusListener.focusGained(java.awt.event.FocusEvent) + + public native void __focusGained( long __swiftObject, java.awt.event.FocusEvent e ); + + public void focusGained( java.awt.event.FocusEvent e ) { + __focusGained( __swiftObject, e ); + } + + /// public abstract void java.awt.event.FocusListener.focusLost(java.awt.event.FocusEvent) + + public native void __focusLost( long __swiftObject, java.awt.event.FocusEvent e ); + + public void focusLost( java.awt.event.FocusEvent e ) { + __focusLost( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/FrameProxy.java b/src/org/swiftjava/java_awt/FrameProxy.java new file mode 100644 index 0000000..5ca6059 --- /dev/null +++ b/src/org/swiftjava/java_awt/FrameProxy.java @@ -0,0 +1,61 @@ + +/// class java.awt.Frame /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class FrameProxy extends java.awt.Frame { + + long __swiftObject; + + /// public java.awt.Frame(java.lang.String,java.awt.GraphicsConfiguration) + + FrameProxy( java.lang.String title, java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( title, gc ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.Frame(java.lang.String) throws java.awt.HeadlessException + + FrameProxy( java.lang.String title , long __swiftObject ) { + super( title ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.Frame(java.awt.GraphicsConfiguration) + + FrameProxy( java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( gc ); + this.__swiftObject = __swiftObject; + } + + /// public java.awt.Frame() throws java.awt.HeadlessException + + FrameProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.Window.paint(java.awt.Graphics) + + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); + + boolean entered_paint_0; + + public void paint( java.awt.Graphics arg0 ) { + if ( !entered_paint_0 ) { + entered_paint_0 = true; + __paint( __swiftObject, arg0); + entered_paint_0 = false; + } + else + super.paint( arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/HierarchyBoundsAdapterProxy.java b/src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java similarity index 60% rename from src/org/genie/java_awt/HierarchyBoundsAdapterProxy.java rename to src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java index c36b274..f369b95 100644 --- a/src/org/genie/java_awt/HierarchyBoundsAdapterProxy.java +++ b/src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java @@ -1,61 +1,62 @@ /// class java.awt.event.HierarchyBoundsAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class HierarchyBoundsAdapterProxy extends java.awt.event.HierarchyBoundsAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.HierarchyBoundsAdapter() - HierarchyBoundsAdapterProxy( long swiftObject ) { + HierarchyBoundsAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.HierarchyBoundsAdapter.ancestorMoved(java.awt.event.HierarchyEvent) - public native void __ancestorMoved( java.awt.event.HierarchyEvent arg0 ); + public native void __ancestorMoved( long __swiftObject, java.awt.event.HierarchyEvent e ); boolean entered_ancestorMoved_0; - public void ancestorMoved( java.awt.event.HierarchyEvent arg0 ) { + public void ancestorMoved( java.awt.event.HierarchyEvent e ) { if ( !entered_ancestorMoved_0 ) { entered_ancestorMoved_0 = true; - __ancestorMoved( arg0 ); + __ancestorMoved( __swiftObject, e); entered_ancestorMoved_0 = false; } else - super.ancestorMoved( arg0 ); + super.ancestorMoved( e ); } /// public void java.awt.event.HierarchyBoundsAdapter.ancestorResized(java.awt.event.HierarchyEvent) - public native void __ancestorResized( java.awt.event.HierarchyEvent arg0 ); + public native void __ancestorResized( long __swiftObject, java.awt.event.HierarchyEvent e ); boolean entered_ancestorResized_1; - public void ancestorResized( java.awt.event.HierarchyEvent arg0 ) { + public void ancestorResized( java.awt.event.HierarchyEvent e ) { if ( !entered_ancestorResized_1 ) { entered_ancestorResized_1 = true; - __ancestorResized( arg0 ); + __ancestorResized( __swiftObject, e); entered_ancestorResized_1 = false; } else - super.ancestorResized( arg0 ); + super.ancestorResized( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_2; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_2 ) { entered_equals_2 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_2 = false; return __return; } @@ -65,14 +66,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_3; public java.lang.String toString() { if ( !entered_toString_3 ) { entered_toString_3 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_3 = false; return __return; } @@ -82,14 +83,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_4; public int hashCode() { if ( !entered_hashCode_4 ) { entered_hashCode_4 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_4 = false; return __return; } @@ -97,4 +98,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java b/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java new file mode 100644 index 0000000..452b762 --- /dev/null +++ b/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.awt.event.HierarchyBoundsListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class HierarchyBoundsListenerProxy implements java.awt.event.HierarchyBoundsListener { + + long __swiftObject; + + HierarchyBoundsListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.HierarchyBoundsListener.ancestorMoved(java.awt.event.HierarchyEvent) + + public native void __ancestorMoved( long __swiftObject, java.awt.event.HierarchyEvent e ); + + public void ancestorMoved( java.awt.event.HierarchyEvent e ) { + __ancestorMoved( __swiftObject, e ); + } + + /// public abstract void java.awt.event.HierarchyBoundsListener.ancestorResized(java.awt.event.HierarchyEvent) + + public native void __ancestorResized( long __swiftObject, java.awt.event.HierarchyEvent e ); + + public void ancestorResized( java.awt.event.HierarchyEvent e ) { + __ancestorResized( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/HierarchyListenerProxy.java b/src/org/swiftjava/java_awt/HierarchyListenerProxy.java new file mode 100644 index 0000000..645d6a4 --- /dev/null +++ b/src/org/swiftjava/java_awt/HierarchyListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.HierarchyListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class HierarchyListenerProxy implements java.awt.event.HierarchyListener { + + long __swiftObject; + + HierarchyListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.HierarchyListener.hierarchyChanged(java.awt.event.HierarchyEvent) + + public native void __hierarchyChanged( long __swiftObject, java.awt.event.HierarchyEvent e ); + + public void hierarchyChanged( java.awt.event.HierarchyEvent e ) { + __hierarchyChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/InputMethodListenerProxy.java b/src/org/swiftjava/java_awt/InputMethodListenerProxy.java new file mode 100644 index 0000000..a729acb --- /dev/null +++ b/src/org/swiftjava/java_awt/InputMethodListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.awt.event.InputMethodListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class InputMethodListenerProxy implements java.awt.event.InputMethodListener { + + long __swiftObject; + + InputMethodListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.InputMethodListener.inputMethodTextChanged(java.awt.event.InputMethodEvent) + + public native void __inputMethodTextChanged( long __swiftObject, java.awt.event.InputMethodEvent event ); + + public void inputMethodTextChanged( java.awt.event.InputMethodEvent event ) { + __inputMethodTextChanged( __swiftObject, event ); + } + + /// public abstract void java.awt.event.InputMethodListener.caretPositionChanged(java.awt.event.InputMethodEvent) + + public native void __caretPositionChanged( long __swiftObject, java.awt.event.InputMethodEvent event ); + + public void caretPositionChanged( java.awt.event.InputMethodEvent event ) { + __caretPositionChanged( __swiftObject, event ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/ItemListenerProxy.java b/src/org/swiftjava/java_awt/ItemListenerProxy.java new file mode 100644 index 0000000..5772765 --- /dev/null +++ b/src/org/swiftjava/java_awt/ItemListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.ItemListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class ItemListenerProxy implements java.awt.event.ItemListener { + + long __swiftObject; + + ItemListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.ItemListener.itemStateChanged(java.awt.event.ItemEvent) + + public native void __itemStateChanged( long __swiftObject, java.awt.event.ItemEvent e ); + + public void itemStateChanged( java.awt.event.ItemEvent e ) { + __itemStateChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/KeyAdapterProxy.java b/src/org/swiftjava/java_awt/KeyAdapterProxy.java similarity index 59% rename from src/org/genie/java_awt/KeyAdapterProxy.java rename to src/org/swiftjava/java_awt/KeyAdapterProxy.java index d79fa3e..7b8e52d 100644 --- a/src/org/genie/java_awt/KeyAdapterProxy.java +++ b/src/org/swiftjava/java_awt/KeyAdapterProxy.java @@ -1,77 +1,78 @@ /// class java.awt.event.KeyAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class KeyAdapterProxy extends java.awt.event.KeyAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.KeyAdapter() - KeyAdapterProxy( long swiftObject ) { + KeyAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.KeyAdapter.keyTyped(java.awt.event.KeyEvent) - public native void __keyTyped( java.awt.event.KeyEvent arg0 ); + public native void __keyTyped( long __swiftObject, java.awt.event.KeyEvent e ); boolean entered_keyTyped_0; - public void keyTyped( java.awt.event.KeyEvent arg0 ) { + public void keyTyped( java.awt.event.KeyEvent e ) { if ( !entered_keyTyped_0 ) { entered_keyTyped_0 = true; - __keyTyped( arg0 ); + __keyTyped( __swiftObject, e); entered_keyTyped_0 = false; } else - super.keyTyped( arg0 ); + super.keyTyped( e ); } /// public void java.awt.event.KeyAdapter.keyPressed(java.awt.event.KeyEvent) - public native void __keyPressed( java.awt.event.KeyEvent arg0 ); + public native void __keyPressed( long __swiftObject, java.awt.event.KeyEvent e ); boolean entered_keyPressed_1; - public void keyPressed( java.awt.event.KeyEvent arg0 ) { + public void keyPressed( java.awt.event.KeyEvent e ) { if ( !entered_keyPressed_1 ) { entered_keyPressed_1 = true; - __keyPressed( arg0 ); + __keyPressed( __swiftObject, e); entered_keyPressed_1 = false; } else - super.keyPressed( arg0 ); + super.keyPressed( e ); } /// public void java.awt.event.KeyAdapter.keyReleased(java.awt.event.KeyEvent) - public native void __keyReleased( java.awt.event.KeyEvent arg0 ); + public native void __keyReleased( long __swiftObject, java.awt.event.KeyEvent e ); boolean entered_keyReleased_2; - public void keyReleased( java.awt.event.KeyEvent arg0 ) { + public void keyReleased( java.awt.event.KeyEvent e ) { if ( !entered_keyReleased_2 ) { entered_keyReleased_2 = true; - __keyReleased( arg0 ); + __keyReleased( __swiftObject, e); entered_keyReleased_2 = false; } else - super.keyReleased( arg0 ); + super.keyReleased( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_3; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_3 ) { entered_equals_3 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_3 = false; return __return; } @@ -81,14 +82,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_4; public java.lang.String toString() { if ( !entered_toString_4 ) { entered_toString_4 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_4 = false; return __return; } @@ -98,14 +99,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_5; public int hashCode() { if ( !entered_hashCode_5 ) { entered_hashCode_5 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_5 = false; return __return; } @@ -113,4 +114,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/KeyListenerProxy.java b/src/org/swiftjava/java_awt/KeyListenerProxy.java new file mode 100644 index 0000000..0fc3f10 --- /dev/null +++ b/src/org/swiftjava/java_awt/KeyListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface java.awt.event.KeyListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class KeyListenerProxy implements java.awt.event.KeyListener { + + long __swiftObject; + + KeyListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.KeyListener.keyTyped(java.awt.event.KeyEvent) + + public native void __keyTyped( long __swiftObject, java.awt.event.KeyEvent e ); + + public void keyTyped( java.awt.event.KeyEvent e ) { + __keyTyped( __swiftObject, e ); + } + + /// public abstract void java.awt.event.KeyListener.keyPressed(java.awt.event.KeyEvent) + + public native void __keyPressed( long __swiftObject, java.awt.event.KeyEvent e ); + + public void keyPressed( java.awt.event.KeyEvent e ) { + __keyPressed( __swiftObject, e ); + } + + /// public abstract void java.awt.event.KeyListener.keyReleased(java.awt.event.KeyEvent) + + public native void __keyReleased( long __swiftObject, java.awt.event.KeyEvent e ); + + public void keyReleased( java.awt.event.KeyEvent e ) { + __keyReleased( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/LayoutManagerProxy.java b/src/org/swiftjava/java_awt/LayoutManagerProxy.java new file mode 100644 index 0000000..590c7b6 --- /dev/null +++ b/src/org/swiftjava/java_awt/LayoutManagerProxy.java @@ -0,0 +1,61 @@ + +/// interface java.awt.LayoutManager /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class LayoutManagerProxy implements java.awt.LayoutManager { + + long __swiftObject; + + LayoutManagerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.LayoutManager.removeLayoutComponent(java.awt.Component) + + public native void __removeLayoutComponent( long __swiftObject, java.awt.Component comp ); + + public void removeLayoutComponent( java.awt.Component comp ) { + __removeLayoutComponent( __swiftObject, comp ); + } + + /// public abstract void java.awt.LayoutManager.addLayoutComponent(java.lang.String,java.awt.Component) + + public native void __addLayoutComponent( long __swiftObject, java.lang.String name, java.awt.Component comp ); + + public void addLayoutComponent( java.lang.String name, java.awt.Component comp ) { + __addLayoutComponent( __swiftObject, name, comp ); + } + + /// public abstract void java.awt.LayoutManager.layoutContainer(java.awt.Container) + + public native void __layoutContainer( long __swiftObject, java.awt.Container parent ); + + public void layoutContainer( java.awt.Container parent ) { + __layoutContainer( __swiftObject, parent ); + } + + /// public abstract java.awt.Dimension java.awt.LayoutManager.preferredLayoutSize(java.awt.Container) + + public native java.awt.Dimension __preferredLayoutSize( long __swiftObject, java.awt.Container parent ); + + public java.awt.Dimension preferredLayoutSize( java.awt.Container parent ) { + return __preferredLayoutSize( __swiftObject, parent ); + } + + /// public abstract java.awt.Dimension java.awt.LayoutManager.minimumLayoutSize(java.awt.Container) + + public native java.awt.Dimension __minimumLayoutSize( long __swiftObject, java.awt.Container parent ); + + public java.awt.Dimension minimumLayoutSize( java.awt.Container parent ) { + return __minimumLayoutSize( __swiftObject, parent ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/MouseAdapterProxy.java b/src/org/swiftjava/java_awt/MouseAdapterProxy.java similarity index 58% rename from src/org/genie/java_awt/MouseAdapterProxy.java rename to src/org/swiftjava/java_awt/MouseAdapterProxy.java index 8d1bb17..c9e329c 100644 --- a/src/org/genie/java_awt/MouseAdapterProxy.java +++ b/src/org/swiftjava/java_awt/MouseAdapterProxy.java @@ -1,157 +1,158 @@ /// class java.awt.event.MouseAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class MouseAdapterProxy extends java.awt.event.MouseAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.MouseAdapter() - MouseAdapterProxy( long swiftObject ) { + MouseAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.MouseAdapter.mousePressed(java.awt.event.MouseEvent) - public native void __mousePressed( java.awt.event.MouseEvent arg0 ); + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mousePressed_0; - public void mousePressed( java.awt.event.MouseEvent arg0 ) { + public void mousePressed( java.awt.event.MouseEvent e ) { if ( !entered_mousePressed_0 ) { entered_mousePressed_0 = true; - __mousePressed( arg0 ); + __mousePressed( __swiftObject, e); entered_mousePressed_0 = false; } else - super.mousePressed( arg0 ); + super.mousePressed( e ); } /// public void java.awt.event.MouseAdapter.mouseReleased(java.awt.event.MouseEvent) - public native void __mouseReleased( java.awt.event.MouseEvent arg0 ); + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseReleased_1; - public void mouseReleased( java.awt.event.MouseEvent arg0 ) { + public void mouseReleased( java.awt.event.MouseEvent e ) { if ( !entered_mouseReleased_1 ) { entered_mouseReleased_1 = true; - __mouseReleased( arg0 ); + __mouseReleased( __swiftObject, e); entered_mouseReleased_1 = false; } else - super.mouseReleased( arg0 ); + super.mouseReleased( e ); } /// public void java.awt.event.MouseAdapter.mouseClicked(java.awt.event.MouseEvent) - public native void __mouseClicked( java.awt.event.MouseEvent arg0 ); + public native void __mouseClicked( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseClicked_2; - public void mouseClicked( java.awt.event.MouseEvent arg0 ) { + public void mouseClicked( java.awt.event.MouseEvent e ) { if ( !entered_mouseClicked_2 ) { entered_mouseClicked_2 = true; - __mouseClicked( arg0 ); + __mouseClicked( __swiftObject, e); entered_mouseClicked_2 = false; } else - super.mouseClicked( arg0 ); + super.mouseClicked( e ); } /// public void java.awt.event.MouseAdapter.mouseExited(java.awt.event.MouseEvent) - public native void __mouseExited( java.awt.event.MouseEvent arg0 ); + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseExited_3; - public void mouseExited( java.awt.event.MouseEvent arg0 ) { + public void mouseExited( java.awt.event.MouseEvent e ) { if ( !entered_mouseExited_3 ) { entered_mouseExited_3 = true; - __mouseExited( arg0 ); + __mouseExited( __swiftObject, e); entered_mouseExited_3 = false; } else - super.mouseExited( arg0 ); + super.mouseExited( e ); } /// public void java.awt.event.MouseAdapter.mouseEntered(java.awt.event.MouseEvent) - public native void __mouseEntered( java.awt.event.MouseEvent arg0 ); + public native void __mouseEntered( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseEntered_4; - public void mouseEntered( java.awt.event.MouseEvent arg0 ) { + public void mouseEntered( java.awt.event.MouseEvent e ) { if ( !entered_mouseEntered_4 ) { entered_mouseEntered_4 = true; - __mouseEntered( arg0 ); + __mouseEntered( __swiftObject, e); entered_mouseEntered_4 = false; } else - super.mouseEntered( arg0 ); + super.mouseEntered( e ); } /// public void java.awt.event.MouseAdapter.mouseMoved(java.awt.event.MouseEvent) - public native void __mouseMoved( java.awt.event.MouseEvent arg0 ); + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseMoved_5; - public void mouseMoved( java.awt.event.MouseEvent arg0 ) { + public void mouseMoved( java.awt.event.MouseEvent e ) { if ( !entered_mouseMoved_5 ) { entered_mouseMoved_5 = true; - __mouseMoved( arg0 ); + __mouseMoved( __swiftObject, e); entered_mouseMoved_5 = false; } else - super.mouseMoved( arg0 ); + super.mouseMoved( e ); } /// public void java.awt.event.MouseAdapter.mouseDragged(java.awt.event.MouseEvent) - public native void __mouseDragged( java.awt.event.MouseEvent arg0 ); + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseDragged_6; - public void mouseDragged( java.awt.event.MouseEvent arg0 ) { + public void mouseDragged( java.awt.event.MouseEvent e ) { if ( !entered_mouseDragged_6 ) { entered_mouseDragged_6 = true; - __mouseDragged( arg0 ); + __mouseDragged( __swiftObject, e); entered_mouseDragged_6 = false; } else - super.mouseDragged( arg0 ); + super.mouseDragged( e ); } /// public void java.awt.event.MouseAdapter.mouseWheelMoved(java.awt.event.MouseWheelEvent) - public native void __mouseWheelMoved( java.awt.event.MouseWheelEvent arg0 ); + public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); boolean entered_mouseWheelMoved_7; - public void mouseWheelMoved( java.awt.event.MouseWheelEvent arg0 ) { + public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { if ( !entered_mouseWheelMoved_7 ) { entered_mouseWheelMoved_7 = true; - __mouseWheelMoved( arg0 ); + __mouseWheelMoved( __swiftObject, e); entered_mouseWheelMoved_7 = false; } else - super.mouseWheelMoved( arg0 ); + super.mouseWheelMoved( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_8; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_8 ) { entered_equals_8 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_8 = false; return __return; } @@ -161,14 +162,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_9; public java.lang.String toString() { if ( !entered_toString_9 ) { entered_toString_9 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_9 = false; return __return; } @@ -178,14 +179,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_10; public int hashCode() { if ( !entered_hashCode_10 ) { entered_hashCode_10 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_10 = false; return __return; } @@ -193,4 +194,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/MouseListenerProxy.java b/src/org/swiftjava/java_awt/MouseListenerProxy.java new file mode 100644 index 0000000..742f535 --- /dev/null +++ b/src/org/swiftjava/java_awt/MouseListenerProxy.java @@ -0,0 +1,61 @@ + +/// interface java.awt.event.MouseListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class MouseListenerProxy implements java.awt.event.MouseListener { + + long __swiftObject; + + MouseListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) + + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mousePressed( java.awt.event.MouseEvent e ) { + __mousePressed( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) + + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseReleased( java.awt.event.MouseEvent e ) { + __mouseReleased( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseClicked(java.awt.event.MouseEvent) + + public native void __mouseClicked( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseClicked( java.awt.event.MouseEvent e ) { + __mouseClicked( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) + + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseExited( java.awt.event.MouseEvent e ) { + __mouseExited( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) + + public native void __mouseEntered( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseEntered( java.awt.event.MouseEvent e ) { + __mouseEntered( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/MouseMotionAdapterProxy.java b/src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java similarity index 60% rename from src/org/genie/java_awt/MouseMotionAdapterProxy.java rename to src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java index 04b7a40..1a2afac 100644 --- a/src/org/genie/java_awt/MouseMotionAdapterProxy.java +++ b/src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java @@ -1,61 +1,62 @@ /// class java.awt.event.MouseMotionAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class MouseMotionAdapterProxy extends java.awt.event.MouseMotionAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.MouseMotionAdapter() - MouseMotionAdapterProxy( long swiftObject ) { + MouseMotionAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.MouseMotionAdapter.mouseMoved(java.awt.event.MouseEvent) - public native void __mouseMoved( java.awt.event.MouseEvent arg0 ); + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseMoved_0; - public void mouseMoved( java.awt.event.MouseEvent arg0 ) { + public void mouseMoved( java.awt.event.MouseEvent e ) { if ( !entered_mouseMoved_0 ) { entered_mouseMoved_0 = true; - __mouseMoved( arg0 ); + __mouseMoved( __swiftObject, e); entered_mouseMoved_0 = false; } else - super.mouseMoved( arg0 ); + super.mouseMoved( e ); } /// public void java.awt.event.MouseMotionAdapter.mouseDragged(java.awt.event.MouseEvent) - public native void __mouseDragged( java.awt.event.MouseEvent arg0 ); + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseDragged_1; - public void mouseDragged( java.awt.event.MouseEvent arg0 ) { + public void mouseDragged( java.awt.event.MouseEvent e ) { if ( !entered_mouseDragged_1 ) { entered_mouseDragged_1 = true; - __mouseDragged( arg0 ); + __mouseDragged( __swiftObject, e); entered_mouseDragged_1 = false; } else - super.mouseDragged( arg0 ); + super.mouseDragged( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_2; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_2 ) { entered_equals_2 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_2 = false; return __return; } @@ -65,14 +66,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_3; public java.lang.String toString() { if ( !entered_toString_3 ) { entered_toString_3 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_3 = false; return __return; } @@ -82,14 +83,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_4; public int hashCode() { if ( !entered_hashCode_4 ) { entered_hashCode_4 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_4 = false; return __return; } @@ -97,4 +98,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java b/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java new file mode 100644 index 0000000..4189677 --- /dev/null +++ b/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.awt.event.MouseMotionListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class MouseMotionListenerProxy implements java.awt.event.MouseMotionListener { + + long __swiftObject; + + MouseMotionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) + + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseMoved( java.awt.event.MouseEvent e ) { + __mouseMoved( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) + + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseDragged( java.awt.event.MouseEvent e ) { + __mouseDragged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java b/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java new file mode 100644 index 0000000..bfb6d51 --- /dev/null +++ b/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.MouseWheelListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class MouseWheelListenerProxy implements java.awt.event.MouseWheelListener { + + long __swiftObject; + + MouseWheelListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.MouseWheelListener.mouseWheelMoved(java.awt.event.MouseWheelEvent) + + public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); + + public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { + __mouseWheelMoved( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/TextListenerProxy.java b/src/org/swiftjava/java_awt/TextListenerProxy.java new file mode 100644 index 0000000..0a547e8 --- /dev/null +++ b/src/org/swiftjava/java_awt/TextListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.TextListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class TextListenerProxy implements java.awt.event.TextListener { + + long __swiftObject; + + TextListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.TextListener.textValueChanged(java.awt.event.TextEvent) + + public native void __textValueChanged( long __swiftObject, java.awt.event.TextEvent e ); + + public void textValueChanged( java.awt.event.TextEvent e ) { + __textValueChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/WindowAdapterProxy.java b/src/org/swiftjava/java_awt/WindowAdapterProxy.java similarity index 57% rename from src/org/genie/java_awt/WindowAdapterProxy.java rename to src/org/swiftjava/java_awt/WindowAdapterProxy.java index 41a46c0..d655518 100644 --- a/src/org/genie/java_awt/WindowAdapterProxy.java +++ b/src/org/swiftjava/java_awt/WindowAdapterProxy.java @@ -1,189 +1,190 @@ /// class java.awt.event.WindowAdapter /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class WindowAdapterProxy extends java.awt.event.WindowAdapter { - long swiftObject; + long __swiftObject; /// public java.awt.event.WindowAdapter() - WindowAdapterProxy( long swiftObject ) { + WindowAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.WindowAdapter.windowOpened(java.awt.event.WindowEvent) - public native void __windowOpened( java.awt.event.WindowEvent arg0 ); + public native void __windowOpened( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowOpened_0; - public void windowOpened( java.awt.event.WindowEvent arg0 ) { + public void windowOpened( java.awt.event.WindowEvent e ) { if ( !entered_windowOpened_0 ) { entered_windowOpened_0 = true; - __windowOpened( arg0 ); + __windowOpened( __swiftObject, e); entered_windowOpened_0 = false; } else - super.windowOpened( arg0 ); + super.windowOpened( e ); } /// public void java.awt.event.WindowAdapter.windowClosing(java.awt.event.WindowEvent) - public native void __windowClosing( java.awt.event.WindowEvent arg0 ); + public native void __windowClosing( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowClosing_1; - public void windowClosing( java.awt.event.WindowEvent arg0 ) { + public void windowClosing( java.awt.event.WindowEvent e ) { if ( !entered_windowClosing_1 ) { entered_windowClosing_1 = true; - __windowClosing( arg0 ); + __windowClosing( __swiftObject, e); entered_windowClosing_1 = false; } else - super.windowClosing( arg0 ); + super.windowClosing( e ); } /// public void java.awt.event.WindowAdapter.windowClosed(java.awt.event.WindowEvent) - public native void __windowClosed( java.awt.event.WindowEvent arg0 ); + public native void __windowClosed( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowClosed_2; - public void windowClosed( java.awt.event.WindowEvent arg0 ) { + public void windowClosed( java.awt.event.WindowEvent e ) { if ( !entered_windowClosed_2 ) { entered_windowClosed_2 = true; - __windowClosed( arg0 ); + __windowClosed( __swiftObject, e); entered_windowClosed_2 = false; } else - super.windowClosed( arg0 ); + super.windowClosed( e ); } /// public void java.awt.event.WindowAdapter.windowIconified(java.awt.event.WindowEvent) - public native void __windowIconified( java.awt.event.WindowEvent arg0 ); + public native void __windowIconified( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowIconified_3; - public void windowIconified( java.awt.event.WindowEvent arg0 ) { + public void windowIconified( java.awt.event.WindowEvent e ) { if ( !entered_windowIconified_3 ) { entered_windowIconified_3 = true; - __windowIconified( arg0 ); + __windowIconified( __swiftObject, e); entered_windowIconified_3 = false; } else - super.windowIconified( arg0 ); + super.windowIconified( e ); } /// public void java.awt.event.WindowAdapter.windowDeiconified(java.awt.event.WindowEvent) - public native void __windowDeiconified( java.awt.event.WindowEvent arg0 ); + public native void __windowDeiconified( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowDeiconified_4; - public void windowDeiconified( java.awt.event.WindowEvent arg0 ) { + public void windowDeiconified( java.awt.event.WindowEvent e ) { if ( !entered_windowDeiconified_4 ) { entered_windowDeiconified_4 = true; - __windowDeiconified( arg0 ); + __windowDeiconified( __swiftObject, e); entered_windowDeiconified_4 = false; } else - super.windowDeiconified( arg0 ); + super.windowDeiconified( e ); } /// public void java.awt.event.WindowAdapter.windowActivated(java.awt.event.WindowEvent) - public native void __windowActivated( java.awt.event.WindowEvent arg0 ); + public native void __windowActivated( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowActivated_5; - public void windowActivated( java.awt.event.WindowEvent arg0 ) { + public void windowActivated( java.awt.event.WindowEvent e ) { if ( !entered_windowActivated_5 ) { entered_windowActivated_5 = true; - __windowActivated( arg0 ); + __windowActivated( __swiftObject, e); entered_windowActivated_5 = false; } else - super.windowActivated( arg0 ); + super.windowActivated( e ); } /// public void java.awt.event.WindowAdapter.windowDeactivated(java.awt.event.WindowEvent) - public native void __windowDeactivated( java.awt.event.WindowEvent arg0 ); + public native void __windowDeactivated( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowDeactivated_6; - public void windowDeactivated( java.awt.event.WindowEvent arg0 ) { + public void windowDeactivated( java.awt.event.WindowEvent e ) { if ( !entered_windowDeactivated_6 ) { entered_windowDeactivated_6 = true; - __windowDeactivated( arg0 ); + __windowDeactivated( __swiftObject, e); entered_windowDeactivated_6 = false; } else - super.windowDeactivated( arg0 ); + super.windowDeactivated( e ); } /// public void java.awt.event.WindowAdapter.windowGainedFocus(java.awt.event.WindowEvent) - public native void __windowGainedFocus( java.awt.event.WindowEvent arg0 ); + public native void __windowGainedFocus( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowGainedFocus_7; - public void windowGainedFocus( java.awt.event.WindowEvent arg0 ) { + public void windowGainedFocus( java.awt.event.WindowEvent e ) { if ( !entered_windowGainedFocus_7 ) { entered_windowGainedFocus_7 = true; - __windowGainedFocus( arg0 ); + __windowGainedFocus( __swiftObject, e); entered_windowGainedFocus_7 = false; } else - super.windowGainedFocus( arg0 ); + super.windowGainedFocus( e ); } /// public void java.awt.event.WindowAdapter.windowLostFocus(java.awt.event.WindowEvent) - public native void __windowLostFocus( java.awt.event.WindowEvent arg0 ); + public native void __windowLostFocus( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowLostFocus_8; - public void windowLostFocus( java.awt.event.WindowEvent arg0 ) { + public void windowLostFocus( java.awt.event.WindowEvent e ) { if ( !entered_windowLostFocus_8 ) { entered_windowLostFocus_8 = true; - __windowLostFocus( arg0 ); + __windowLostFocus( __swiftObject, e); entered_windowLostFocus_8 = false; } else - super.windowLostFocus( arg0 ); + super.windowLostFocus( e ); } /// public void java.awt.event.WindowAdapter.windowStateChanged(java.awt.event.WindowEvent) - public native void __windowStateChanged( java.awt.event.WindowEvent arg0 ); + public native void __windowStateChanged( long __swiftObject, java.awt.event.WindowEvent e ); boolean entered_windowStateChanged_9; - public void windowStateChanged( java.awt.event.WindowEvent arg0 ) { + public void windowStateChanged( java.awt.event.WindowEvent e ) { if ( !entered_windowStateChanged_9 ) { entered_windowStateChanged_9 = true; - __windowStateChanged( arg0 ); + __windowStateChanged( __swiftObject, e); entered_windowStateChanged_9 = false; } else - super.windowStateChanged( arg0 ); + super.windowStateChanged( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_10; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_10 ) { entered_equals_10 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_10 = false; return __return; } @@ -193,14 +194,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_11; public java.lang.String toString() { if ( !entered_toString_11 ) { entered_toString_11 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_11 = false; return __return; } @@ -210,14 +211,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_12; public int hashCode() { if ( !entered_hashCode_12 ) { entered_hashCode_12 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_12 = false; return __return; } @@ -225,4 +226,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java b/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java new file mode 100644 index 0000000..8d0fca0 --- /dev/null +++ b/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.awt.event.WindowFocusListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class WindowFocusListenerProxy implements java.awt.event.WindowFocusListener { + + long __swiftObject; + + WindowFocusListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.WindowFocusListener.windowGainedFocus(java.awt.event.WindowEvent) + + public native void __windowGainedFocus( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowGainedFocus( java.awt.event.WindowEvent e ) { + __windowGainedFocus( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowFocusListener.windowLostFocus(java.awt.event.WindowEvent) + + public native void __windowLostFocus( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowLostFocus( java.awt.event.WindowEvent e ) { + __windowLostFocus( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/WindowListenerProxy.java b/src/org/swiftjava/java_awt/WindowListenerProxy.java new file mode 100644 index 0000000..751aa00 --- /dev/null +++ b/src/org/swiftjava/java_awt/WindowListenerProxy.java @@ -0,0 +1,77 @@ + +/// interface java.awt.event.WindowListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class WindowListenerProxy implements java.awt.event.WindowListener { + + long __swiftObject; + + WindowListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.WindowListener.windowOpened(java.awt.event.WindowEvent) + + public native void __windowOpened( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowOpened( java.awt.event.WindowEvent e ) { + __windowOpened( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowClosing(java.awt.event.WindowEvent) + + public native void __windowClosing( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowClosing( java.awt.event.WindowEvent e ) { + __windowClosing( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowClosed(java.awt.event.WindowEvent) + + public native void __windowClosed( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowClosed( java.awt.event.WindowEvent e ) { + __windowClosed( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowIconified(java.awt.event.WindowEvent) + + public native void __windowIconified( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowIconified( java.awt.event.WindowEvent e ) { + __windowIconified( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowDeiconified(java.awt.event.WindowEvent) + + public native void __windowDeiconified( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowDeiconified( java.awt.event.WindowEvent e ) { + __windowDeiconified( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowActivated(java.awt.event.WindowEvent) + + public native void __windowActivated( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowActivated( java.awt.event.WindowEvent e ) { + __windowActivated( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowDeactivated(java.awt.event.WindowEvent) + + public native void __windowDeactivated( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowDeactivated( java.awt.event.WindowEvent e ) { + __windowDeactivated( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/java_awt/WindowProxy.java b/src/org/swiftjava/java_awt/WindowProxy.java similarity index 57% rename from src/org/genie/java_awt/WindowProxy.java rename to src/org/swiftjava/java_awt/WindowProxy.java index 83ccbdd..bd156f9 100644 --- a/src/org/genie/java_awt/WindowProxy.java +++ b/src/org/swiftjava/java_awt/WindowProxy.java @@ -1,51 +1,58 @@ /// class java.awt.Window /// -package org.genie.java_awt; +package org.swiftjava.java_awt; +@SuppressWarnings("JniMissingFunction") public class WindowProxy extends java.awt.Window { - long swiftObject; - - /// public java.awt.Window(java.awt.Window,java.awt.GraphicsConfiguration) - - WindowProxy( java.awt.Window arg0, java.awt.GraphicsConfiguration arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; - } - - /// java.awt.Window(java.awt.GraphicsConfiguration) - - /// java.awt.Window() throws java.awt.HeadlessException + long __swiftObject; /// public java.awt.Window(java.awt.Frame) - WindowProxy( java.awt.Frame arg0 , long swiftObject ) { + WindowProxy( java.awt.Frame arg0 , long __swiftObject ) { super( arg0 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public java.awt.Window(java.awt.Window) - WindowProxy( java.awt.Window arg0 , long swiftObject ) { + WindowProxy( java.awt.Window arg0 , long __swiftObject ) { super( arg0 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } + /// public java.awt.Window(java.awt.Window,java.awt.GraphicsConfiguration) + + WindowProxy( java.awt.Window arg0, java.awt.GraphicsConfiguration arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; + } + + /// java.awt.Window(java.awt.GraphicsConfiguration) + + /// java.awt.Window() throws java.awt.HeadlessException + /// public void java.awt.Window.paint(java.awt.Graphics) - public native void __paint( java.awt.Graphics arg0 ); + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); boolean entered_paint_0; public void paint( java.awt.Graphics arg0 ) { if ( !entered_paint_0 ) { entered_paint_0 = true; - __paint( arg0 ); + __paint( __swiftObject, arg0); entered_paint_0 = false; } else super.paint( arg0 ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/java_awt/WindowStateListenerProxy.java b/src/org/swiftjava/java_awt/WindowStateListenerProxy.java new file mode 100644 index 0000000..4c421d6 --- /dev/null +++ b/src/org/swiftjava/java_awt/WindowStateListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.awt.event.WindowStateListener /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class WindowStateListenerProxy implements java.awt.event.WindowStateListener { + + long __swiftObject; + + WindowStateListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.WindowStateListener.windowStateChanged(java.awt.event.WindowEvent) + + public native void __windowStateChanged( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowStateChanged( java.awt.event.WindowEvent e ) { + __windowStateChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_lang/InvocationHandlerProxy.java b/src/org/swiftjava/java_lang/InvocationHandlerProxy.java new file mode 100644 index 0000000..b09c399 --- /dev/null +++ b/src/org/swiftjava/java_lang/InvocationHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.lang.reflect.InvocationHandler /// + +package org.swiftjava.java_lang; + +@SuppressWarnings("JniMissingFunction") +public class InvocationHandlerProxy implements java.lang.reflect.InvocationHandler { + + long __swiftObject; + + InvocationHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract java.lang.Object java.lang.reflect.InvocationHandler.invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]) throws java.lang.Throwable + + public native java.lang.Object __invoke( long __swiftObject, java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args ); + + public java.lang.Object invoke( java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args ) throws java.lang.Throwable { + return __invoke( __swiftObject, proxy, method, args ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_lang/RunnableProxy.java b/src/org/swiftjava/java_lang/RunnableProxy.java new file mode 100644 index 0000000..6f007ec --- /dev/null +++ b/src/org/swiftjava/java_lang/RunnableProxy.java @@ -0,0 +1,29 @@ + +/// interface java.lang.Runnable /// + +package org.swiftjava.java_lang; + +@SuppressWarnings("JniMissingFunction") +public class RunnableProxy implements java.lang.Runnable { + + long __swiftObject; + + RunnableProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.lang.Runnable.run() + + public native void __run( long __swiftObject ); + + public void run() { + __run( __swiftObject ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java b/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java new file mode 100644 index 0000000..e5f822c --- /dev/null +++ b/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.lang.Thread$UncaughtExceptionHandler /// + +package org.swiftjava.java_lang; + +@SuppressWarnings("JniMissingFunction") +public class Thread_UncaughtExceptionHandlerProxy implements java.lang.Thread.UncaughtExceptionHandler { + + long __swiftObject; + + Thread_UncaughtExceptionHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.lang.Thread$UncaughtExceptionHandler.uncaughtException(java.lang.Thread,java.lang.Throwable) + + public native void __uncaughtException( long __swiftObject, java.lang.Thread arg0, java.lang.Throwable arg1 ); + + public void uncaughtException( java.lang.Thread arg0, java.lang.Throwable arg1 ) { + __uncaughtException( __swiftObject, arg0, arg1 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_swift/RunnableProxy.java b/src/org/swiftjava/java_swift/RunnableProxy.java new file mode 100644 index 0000000..1235553 --- /dev/null +++ b/src/org/swiftjava/java_swift/RunnableProxy.java @@ -0,0 +1,29 @@ + +/// interface java.lang.Runnable /// + +package org.swiftjava.java_swift; + +@SuppressWarnings("JniMissingFunction") +public class RunnableProxy implements java.lang.Runnable { + + long __swiftObject; + + RunnableProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.lang.Runnable.run() + + public native void __run( long __swiftObject ); + + public void run() { + __run( __swiftObject ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_util/EventListenerProxy.java b/src/org/swiftjava/java_util/EventListenerProxy.java new file mode 100644 index 0000000..bec693a --- /dev/null +++ b/src/org/swiftjava/java_util/EventListenerProxy.java @@ -0,0 +1,21 @@ + +/// interface java.util.EventListener /// + +package org.swiftjava.java_util; + +@SuppressWarnings("JniMissingFunction") +public class EventListenerProxy implements java.util.EventListener { + + long __swiftObject; + + EventListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_util/NodeChangeListenerProxy.java b/src/org/swiftjava/java_util/NodeChangeListenerProxy.java new file mode 100644 index 0000000..6d6bc4f --- /dev/null +++ b/src/org/swiftjava/java_util/NodeChangeListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface java.util.prefs.NodeChangeListener /// + +package org.swiftjava.java_util; + +@SuppressWarnings("JniMissingFunction") +public class NodeChangeListenerProxy implements java.util.prefs.NodeChangeListener { + + long __swiftObject; + + NodeChangeListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.util.prefs.NodeChangeListener.childAdded(java.util.prefs.NodeChangeEvent) + + public native void __childAdded( long __swiftObject, java.util.prefs.NodeChangeEvent evt ); + + public void childAdded( java.util.prefs.NodeChangeEvent evt ) { + __childAdded( __swiftObject, evt ); + } + + /// public abstract void java.util.prefs.NodeChangeListener.childRemoved(java.util.prefs.NodeChangeEvent) + + public native void __childRemoved( long __swiftObject, java.util.prefs.NodeChangeEvent evt ); + + public void childRemoved( java.util.prefs.NodeChangeEvent evt ) { + __childRemoved( __swiftObject, evt ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java b/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java new file mode 100644 index 0000000..c5290d3 --- /dev/null +++ b/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.util.prefs.PreferenceChangeListener /// + +package org.swiftjava.java_util; + +@SuppressWarnings("JniMissingFunction") +public class PreferenceChangeListenerProxy implements java.util.prefs.PreferenceChangeListener { + + long __swiftObject; + + PreferenceChangeListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.util.prefs.PreferenceChangeListener.preferenceChange(java.util.prefs.PreferenceChangeEvent) + + public native void __preferenceChange( long __swiftObject, java.util.prefs.PreferenceChangeEvent evt ); + + public void preferenceChange( java.util.prefs.PreferenceChangeEvent evt ) { + __preferenceChange( __swiftObject, evt ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java b/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java new file mode 100644 index 0000000..eae8f84 --- /dev/null +++ b/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java @@ -0,0 +1,29 @@ + +/// interface java.util.concurrent.RejectedExecutionHandler /// + +package org.swiftjava.java_util; + +@SuppressWarnings("JniMissingFunction") +public class RejectedExecutionHandlerProxy implements java.util.concurrent.RejectedExecutionHandler { + + long __swiftObject; + + RejectedExecutionHandlerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.util.concurrent.RejectedExecutionHandler.rejectedExecution(java.lang.Runnable,java.util.concurrent.ThreadPoolExecutor) + + public native void __rejectedExecution( long __swiftObject, java.lang.Runnable r, java.util.concurrent.ThreadPoolExecutor executor ); + + public void rejectedExecution( java.lang.Runnable r, java.util.concurrent.ThreadPoolExecutor executor ) { + __rejectedExecution( __swiftObject, r, executor ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/AncestorListenerProxy.java b/src/org/swiftjava/javax_swing/AncestorListenerProxy.java new file mode 100644 index 0000000..da7f9d1 --- /dev/null +++ b/src/org/swiftjava/javax_swing/AncestorListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface javax.swing.event.AncestorListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class AncestorListenerProxy implements javax.swing.event.AncestorListener { + + long __swiftObject; + + AncestorListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.AncestorListener.ancestorAdded(javax.swing.event.AncestorEvent) + + public native void __ancestorAdded( long __swiftObject, javax.swing.event.AncestorEvent event ); + + public void ancestorAdded( javax.swing.event.AncestorEvent event ) { + __ancestorAdded( __swiftObject, event ); + } + + /// public abstract void javax.swing.event.AncestorListener.ancestorRemoved(javax.swing.event.AncestorEvent) + + public native void __ancestorRemoved( long __swiftObject, javax.swing.event.AncestorEvent event ); + + public void ancestorRemoved( javax.swing.event.AncestorEvent event ) { + __ancestorRemoved( __swiftObject, event ); + } + + /// public abstract void javax.swing.event.AncestorListener.ancestorMoved(javax.swing.event.AncestorEvent) + + public native void __ancestorMoved( long __swiftObject, javax.swing.event.AncestorEvent event ); + + public void ancestorMoved( javax.swing.event.AncestorEvent event ) { + __ancestorMoved( __swiftObject, event ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/CaretListenerProxy.java b/src/org/swiftjava/javax_swing/CaretListenerProxy.java new file mode 100644 index 0000000..7d3c3f0 --- /dev/null +++ b/src/org/swiftjava/javax_swing/CaretListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.CaretListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class CaretListenerProxy implements javax.swing.event.CaretListener { + + long __swiftObject; + + CaretListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.CaretListener.caretUpdate(javax.swing.event.CaretEvent) + + public native void __caretUpdate( long __swiftObject, javax.swing.event.CaretEvent e ); + + public void caretUpdate( javax.swing.event.CaretEvent e ) { + __caretUpdate( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java b/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java new file mode 100644 index 0000000..bac7c3a --- /dev/null +++ b/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface javax.swing.event.CellEditorListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class CellEditorListenerProxy implements javax.swing.event.CellEditorListener { + + long __swiftObject; + + CellEditorListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.CellEditorListener.editingStopped(javax.swing.event.ChangeEvent) + + public native void __editingStopped( long __swiftObject, javax.swing.event.ChangeEvent e ); + + public void editingStopped( javax.swing.event.ChangeEvent e ) { + __editingStopped( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.CellEditorListener.editingCanceled(javax.swing.event.ChangeEvent) + + public native void __editingCanceled( long __swiftObject, javax.swing.event.ChangeEvent e ); + + public void editingCanceled( javax.swing.event.ChangeEvent e ) { + __editingCanceled( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/ChangeListenerProxy.java b/src/org/swiftjava/javax_swing/ChangeListenerProxy.java new file mode 100644 index 0000000..0ccebfd --- /dev/null +++ b/src/org/swiftjava/javax_swing/ChangeListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.ChangeListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class ChangeListenerProxy implements javax.swing.event.ChangeListener { + + long __swiftObject; + + ChangeListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.ChangeListener.stateChanged(javax.swing.event.ChangeEvent) + + public native void __stateChanged( long __swiftObject, javax.swing.event.ChangeEvent e ); + + public void stateChanged( javax.swing.event.ChangeEvent e ) { + __stateChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/javax_swing/DefaultTableCellRendererProxy.java b/src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java similarity index 54% rename from src/org/genie/javax_swing/DefaultTableCellRendererProxy.java rename to src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java index 760c803..ea529b6 100644 --- a/src/org/genie/javax_swing/DefaultTableCellRendererProxy.java +++ b/src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java @@ -1,34 +1,41 @@ /// class javax.swing.table.DefaultTableCellRenderer /// -package org.genie.javax_swing; +package org.swiftjava.javax_swing; +@SuppressWarnings("JniMissingFunction") public class DefaultTableCellRendererProxy extends javax.swing.table.DefaultTableCellRenderer { - long swiftObject; + long __swiftObject; /// public javax.swing.table.DefaultTableCellRenderer() - DefaultTableCellRendererProxy( long swiftObject ) { + DefaultTableCellRendererProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public java.awt.Component javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(javax.swing.JTable,java.lang.Object,boolean,boolean,int,int) - public native java.awt.Component __getTableCellRendererComponent( javax.swing.JTable arg0, java.lang.Object arg1, boolean arg2, boolean arg3, int arg4, int arg5 ); + public native java.awt.Component __getTableCellRendererComponent( long __swiftObject, javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column ); boolean entered_getTableCellRendererComponent_0; - public java.awt.Component getTableCellRendererComponent( javax.swing.JTable arg0, java.lang.Object arg1, boolean arg2, boolean arg3, int arg4, int arg5 ) { + public java.awt.Component getTableCellRendererComponent( javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column ) { if ( !entered_getTableCellRendererComponent_0 ) { entered_getTableCellRendererComponent_0 = true; - java.awt.Component __return = __getTableCellRendererComponent( arg0, arg1, arg2, arg3, arg4, arg5 ); + java.awt.Component __return = __getTableCellRendererComponent( __swiftObject, table, value, isSelected, hasFocus, row, column); entered_getTableCellRendererComponent_0 = false; return __return; } else - return super.getTableCellRendererComponent( arg0, arg1, arg2, arg3, arg4, arg5 ); + return super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); } } diff --git a/src/org/genie/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java b/src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java similarity index 55% rename from src/org/genie/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java rename to src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java index 8c0cb86..f6ddda5 100644 --- a/src/org/genie/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java +++ b/src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java @@ -1,34 +1,41 @@ /// class javax.swing.table.DefaultTableCellRenderer$UIResource /// -package org.genie.javax_swing; +package org.swiftjava.javax_swing; +@SuppressWarnings("JniMissingFunction") public class DefaultTableCellRenderer_UIResourceProxy extends javax.swing.table.DefaultTableCellRenderer.UIResource { - long swiftObject; + long __swiftObject; /// public javax.swing.table.DefaultTableCellRenderer$UIResource() - DefaultTableCellRenderer_UIResourceProxy( long swiftObject ) { + DefaultTableCellRenderer_UIResourceProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public java.awt.Component javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(javax.swing.JTable,java.lang.Object,boolean,boolean,int,int) - public native java.awt.Component __getTableCellRendererComponent( javax.swing.JTable arg0, java.lang.Object arg1, boolean arg2, boolean arg3, int arg4, int arg5 ); + public native java.awt.Component __getTableCellRendererComponent( long __swiftObject, javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column ); boolean entered_getTableCellRendererComponent_0; - public java.awt.Component getTableCellRendererComponent( javax.swing.JTable arg0, java.lang.Object arg1, boolean arg2, boolean arg3, int arg4, int arg5 ) { + public java.awt.Component getTableCellRendererComponent( javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column ) { if ( !entered_getTableCellRendererComponent_0 ) { entered_getTableCellRendererComponent_0 = true; - java.awt.Component __return = __getTableCellRendererComponent( arg0, arg1, arg2, arg3, arg4, arg5 ); + java.awt.Component __return = __getTableCellRendererComponent( __swiftObject, table, value, isSelected, hasFocus, row, column); entered_getTableCellRendererComponent_0 = false; return __return; } else - return super.getTableCellRendererComponent( arg0, arg1, arg2, arg3, arg4, arg5 ); + return super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); } } diff --git a/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java b/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java new file mode 100644 index 0000000..1b1136b --- /dev/null +++ b/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java @@ -0,0 +1,76 @@ + +/// class javax.swing.table.DefaultTableModel /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class DefaultTableModelProxy extends javax.swing.table.DefaultTableModel { + + long __swiftObject; + + /// public javax.swing.table.DefaultTableModel(java.util.Vector,int) + + DefaultTableModelProxy( java.util.Vector columnNames, int rowCount , long __swiftObject ) { + super( columnNames, rowCount ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.table.DefaultTableModel(java.lang.Object[],int) + + DefaultTableModelProxy( java.lang.Object[] columnNames, int rowCount , long __swiftObject ) { + super( columnNames, rowCount ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.table.DefaultTableModel(java.util.Vector,java.util.Vector) + + DefaultTableModelProxy( java.util.Vector data, java.util.Vector columnNames , long __swiftObject ) { + super( data, columnNames ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.table.DefaultTableModel(java.lang.Object[][],java.lang.Object[]) + + DefaultTableModelProxy( java.lang.Object[][] data, java.lang.Object[] columnNames , long __swiftObject ) { + super( data, columnNames ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.table.DefaultTableModel() + + DefaultTableModelProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.table.DefaultTableModel(int,int) + + DefaultTableModelProxy( int rowCount, int columnCount , long __swiftObject ) { + super( rowCount, columnCount ); + this.__swiftObject = __swiftObject; + } + + /// public boolean javax.swing.table.DefaultTableModel.isCellEditable(int,int) + + public native boolean __isCellEditable( long __swiftObject, int row, int column ); + + boolean entered_isCellEditable_0; + + public boolean isCellEditable( int row, int column ) { + if ( !entered_isCellEditable_0 ) { + entered_isCellEditable_0 = true; + boolean __return = __isCellEditable( __swiftObject, row, column); + entered_isCellEditable_0 = false; + return __return; + } + else + return super.isCellEditable( row, column ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/DesktopManagerProxy.java b/src/org/swiftjava/javax_swing/DesktopManagerProxy.java new file mode 100644 index 0000000..d28c19d --- /dev/null +++ b/src/org/swiftjava/javax_swing/DesktopManagerProxy.java @@ -0,0 +1,141 @@ + +/// interface javax.swing.DesktopManager /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class DesktopManagerProxy implements javax.swing.DesktopManager { + + long __swiftObject; + + DesktopManagerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.DesktopManager.openFrame(javax.swing.JInternalFrame) + + public native void __openFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void openFrame( javax.swing.JInternalFrame f ) { + __openFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.closeFrame(javax.swing.JInternalFrame) + + public native void __closeFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void closeFrame( javax.swing.JInternalFrame f ) { + __closeFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.maximizeFrame(javax.swing.JInternalFrame) + + public native void __maximizeFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void maximizeFrame( javax.swing.JInternalFrame f ) { + __maximizeFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.minimizeFrame(javax.swing.JInternalFrame) + + public native void __minimizeFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void minimizeFrame( javax.swing.JInternalFrame f ) { + __minimizeFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.iconifyFrame(javax.swing.JInternalFrame) + + public native void __iconifyFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void iconifyFrame( javax.swing.JInternalFrame f ) { + __iconifyFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.deiconifyFrame(javax.swing.JInternalFrame) + + public native void __deiconifyFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void deiconifyFrame( javax.swing.JInternalFrame f ) { + __deiconifyFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.activateFrame(javax.swing.JInternalFrame) + + public native void __activateFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void activateFrame( javax.swing.JInternalFrame f ) { + __activateFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.deactivateFrame(javax.swing.JInternalFrame) + + public native void __deactivateFrame( long __swiftObject, javax.swing.JInternalFrame f ); + + public void deactivateFrame( javax.swing.JInternalFrame f ) { + __deactivateFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.beginDraggingFrame(javax.swing.JComponent) + + public native void __beginDraggingFrame( long __swiftObject, javax.swing.JComponent f ); + + public void beginDraggingFrame( javax.swing.JComponent f ) { + __beginDraggingFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.dragFrame(javax.swing.JComponent,int,int) + + public native void __dragFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY ); + + public void dragFrame( javax.swing.JComponent f, int newX, int newY ) { + __dragFrame( __swiftObject, f, newX, newY ); + } + + /// public abstract void javax.swing.DesktopManager.endDraggingFrame(javax.swing.JComponent) + + public native void __endDraggingFrame( long __swiftObject, javax.swing.JComponent f ); + + public void endDraggingFrame( javax.swing.JComponent f ) { + __endDraggingFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.beginResizingFrame(javax.swing.JComponent,int) + + public native void __beginResizingFrame( long __swiftObject, javax.swing.JComponent f, int direction ); + + public void beginResizingFrame( javax.swing.JComponent f, int direction ) { + __beginResizingFrame( __swiftObject, f, direction ); + } + + /// public abstract void javax.swing.DesktopManager.resizeFrame(javax.swing.JComponent,int,int,int,int) + + public native void __resizeFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ); + + public void resizeFrame( javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ) { + __resizeFrame( __swiftObject, f, newX, newY, newWidth, newHeight ); + } + + /// public abstract void javax.swing.DesktopManager.endResizingFrame(javax.swing.JComponent) + + public native void __endResizingFrame( long __swiftObject, javax.swing.JComponent f ); + + public void endResizingFrame( javax.swing.JComponent f ) { + __endResizingFrame( __swiftObject, f ); + } + + /// public abstract void javax.swing.DesktopManager.setBoundsForFrame(javax.swing.JComponent,int,int,int,int) + + public native void __setBoundsForFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ); + + public void setBoundsForFrame( javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ) { + __setBoundsForFrame( __swiftObject, f, newX, newY, newWidth, newHeight ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/DocumentListenerProxy.java b/src/org/swiftjava/javax_swing/DocumentListenerProxy.java new file mode 100644 index 0000000..4ce8be7 --- /dev/null +++ b/src/org/swiftjava/javax_swing/DocumentListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface javax.swing.event.DocumentListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class DocumentListenerProxy implements javax.swing.event.DocumentListener { + + long __swiftObject; + + DocumentListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.DocumentListener.insertUpdate(javax.swing.event.DocumentEvent) + + public native void __insertUpdate( long __swiftObject, javax.swing.event.DocumentEvent e ); + + public void insertUpdate( javax.swing.event.DocumentEvent e ) { + __insertUpdate( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.DocumentListener.removeUpdate(javax.swing.event.DocumentEvent) + + public native void __removeUpdate( long __swiftObject, javax.swing.event.DocumentEvent e ); + + public void removeUpdate( javax.swing.event.DocumentEvent e ) { + __removeUpdate( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.DocumentListener.changedUpdate(javax.swing.event.DocumentEvent) + + public native void __changedUpdate( long __swiftObject, javax.swing.event.DocumentEvent e ); + + public void changedUpdate( javax.swing.event.DocumentEvent e ) { + __changedUpdate( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java b/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java new file mode 100644 index 0000000..d642bfe --- /dev/null +++ b/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.HyperlinkListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class HyperlinkListenerProxy implements javax.swing.event.HyperlinkListener { + + long __swiftObject; + + HyperlinkListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.HyperlinkListener.hyperlinkUpdate(javax.swing.event.HyperlinkEvent) + + public native void __hyperlinkUpdate( long __swiftObject, javax.swing.event.HyperlinkEvent e ); + + public void hyperlinkUpdate( javax.swing.event.HyperlinkEvent e ) { + __hyperlinkUpdate( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/javax_swing/InternalFrameAdapterProxy.java b/src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java similarity index 58% rename from src/org/genie/javax_swing/InternalFrameAdapterProxy.java rename to src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java index 7bf7825..57186c0 100644 --- a/src/org/genie/javax_swing/InternalFrameAdapterProxy.java +++ b/src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java @@ -1,141 +1,142 @@ /// class javax.swing.event.InternalFrameAdapter /// -package org.genie.javax_swing; +package org.swiftjava.javax_swing; +@SuppressWarnings("JniMissingFunction") public class InternalFrameAdapterProxy extends javax.swing.event.InternalFrameAdapter { - long swiftObject; + long __swiftObject; /// public javax.swing.event.InternalFrameAdapter() - InternalFrameAdapterProxy( long swiftObject ) { + InternalFrameAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameClosing(javax.swing.event.InternalFrameEvent) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameOpened(javax.swing.event.InternalFrameEvent) - public native void __internalFrameClosing( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameOpened( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameClosing_0; + boolean entered_internalFrameOpened_0; - public void internalFrameClosing( javax.swing.event.InternalFrameEvent arg0 ) { - if ( !entered_internalFrameClosing_0 ) { - entered_internalFrameClosing_0 = true; - __internalFrameClosing( arg0 ); - entered_internalFrameClosing_0 = false; + public void internalFrameOpened( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameOpened_0 ) { + entered_internalFrameOpened_0 = true; + __internalFrameOpened( __swiftObject, e); + entered_internalFrameOpened_0 = false; } else - super.internalFrameClosing( arg0 ); + super.internalFrameOpened( e ); } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameOpened(javax.swing.event.InternalFrameEvent) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameClosing(javax.swing.event.InternalFrameEvent) - public native void __internalFrameOpened( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameClosing( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameOpened_1; + boolean entered_internalFrameClosing_1; - public void internalFrameOpened( javax.swing.event.InternalFrameEvent arg0 ) { - if ( !entered_internalFrameOpened_1 ) { - entered_internalFrameOpened_1 = true; - __internalFrameOpened( arg0 ); - entered_internalFrameOpened_1 = false; + public void internalFrameClosing( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameClosing_1 ) { + entered_internalFrameClosing_1 = true; + __internalFrameClosing( __swiftObject, e); + entered_internalFrameClosing_1 = false; } else - super.internalFrameOpened( arg0 ); + super.internalFrameClosing( e ); } /// public void javax.swing.event.InternalFrameAdapter.internalFrameClosed(javax.swing.event.InternalFrameEvent) - public native void __internalFrameClosed( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameClosed( long __swiftObject, javax.swing.event.InternalFrameEvent e ); boolean entered_internalFrameClosed_2; - public void internalFrameClosed( javax.swing.event.InternalFrameEvent arg0 ) { + public void internalFrameClosed( javax.swing.event.InternalFrameEvent e ) { if ( !entered_internalFrameClosed_2 ) { entered_internalFrameClosed_2 = true; - __internalFrameClosed( arg0 ); + __internalFrameClosed( __swiftObject, e); entered_internalFrameClosed_2 = false; } else - super.internalFrameClosed( arg0 ); + super.internalFrameClosed( e ); } /// public void javax.swing.event.InternalFrameAdapter.internalFrameIconified(javax.swing.event.InternalFrameEvent) - public native void __internalFrameIconified( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameIconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); boolean entered_internalFrameIconified_3; - public void internalFrameIconified( javax.swing.event.InternalFrameEvent arg0 ) { + public void internalFrameIconified( javax.swing.event.InternalFrameEvent e ) { if ( !entered_internalFrameIconified_3 ) { entered_internalFrameIconified_3 = true; - __internalFrameIconified( arg0 ); + __internalFrameIconified( __swiftObject, e); entered_internalFrameIconified_3 = false; } else - super.internalFrameIconified( arg0 ); + super.internalFrameIconified( e ); } /// public void javax.swing.event.InternalFrameAdapter.internalFrameDeiconified(javax.swing.event.InternalFrameEvent) - public native void __internalFrameDeiconified( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameDeiconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); boolean entered_internalFrameDeiconified_4; - public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent arg0 ) { + public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent e ) { if ( !entered_internalFrameDeiconified_4 ) { entered_internalFrameDeiconified_4 = true; - __internalFrameDeiconified( arg0 ); + __internalFrameDeiconified( __swiftObject, e); entered_internalFrameDeiconified_4 = false; } else - super.internalFrameDeiconified( arg0 ); + super.internalFrameDeiconified( e ); } /// public void javax.swing.event.InternalFrameAdapter.internalFrameActivated(javax.swing.event.InternalFrameEvent) - public native void __internalFrameActivated( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameActivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); boolean entered_internalFrameActivated_5; - public void internalFrameActivated( javax.swing.event.InternalFrameEvent arg0 ) { + public void internalFrameActivated( javax.swing.event.InternalFrameEvent e ) { if ( !entered_internalFrameActivated_5 ) { entered_internalFrameActivated_5 = true; - __internalFrameActivated( arg0 ); + __internalFrameActivated( __swiftObject, e); entered_internalFrameActivated_5 = false; } else - super.internalFrameActivated( arg0 ); + super.internalFrameActivated( e ); } /// public void javax.swing.event.InternalFrameAdapter.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) - public native void __internalFrameDeactivated( javax.swing.event.InternalFrameEvent arg0 ); + public native void __internalFrameDeactivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); boolean entered_internalFrameDeactivated_6; - public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent arg0 ) { + public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent e ) { if ( !entered_internalFrameDeactivated_6 ) { entered_internalFrameDeactivated_6 = true; - __internalFrameDeactivated( arg0 ); + __internalFrameDeactivated( __swiftObject, e); entered_internalFrameDeactivated_6 = false; } else - super.internalFrameDeactivated( arg0 ); + super.internalFrameDeactivated( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_7; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_7 ) { entered_equals_7 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_7 = false; return __return; } @@ -145,14 +146,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_8; public java.lang.String toString() { if ( !entered_toString_8 ) { entered_toString_8 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_8 = false; return __return; } @@ -162,14 +163,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_9; public int hashCode() { if ( !entered_hashCode_9 ) { entered_hashCode_9 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_9 = false; return __return; } @@ -177,4 +178,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java b/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java new file mode 100644 index 0000000..ee73dfe --- /dev/null +++ b/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java @@ -0,0 +1,77 @@ + +/// interface javax.swing.event.InternalFrameListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class InternalFrameListenerProxy implements javax.swing.event.InternalFrameListener { + + long __swiftObject; + + InternalFrameListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameOpened(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameOpened( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameOpened( javax.swing.event.InternalFrameEvent e ) { + __internalFrameOpened( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosing(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameClosing( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameClosing( javax.swing.event.InternalFrameEvent e ) { + __internalFrameClosing( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosed(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameClosed( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameClosed( javax.swing.event.InternalFrameEvent e ) { + __internalFrameClosed( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameIconified(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameIconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameIconified( javax.swing.event.InternalFrameEvent e ) { + __internalFrameIconified( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeiconified(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameDeiconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent e ) { + __internalFrameDeiconified( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameActivated(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameActivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameActivated( javax.swing.event.InternalFrameEvent e ) { + __internalFrameActivated( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameDeactivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent e ) { + __internalFrameDeactivated( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java b/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java new file mode 100644 index 0000000..e93a4e9 --- /dev/null +++ b/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.JComboBox$KeySelectionManager /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class JComboBox_KeySelectionManagerProxy implements javax.swing.JComboBox.KeySelectionManager { + + long __swiftObject; + + JComboBox_KeySelectionManagerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract int javax.swing.JComboBox$KeySelectionManager.selectionForKey(char,javax.swing.ComboBoxModel) + + public native int __selectionForKey( long __swiftObject, char aKey, javax.swing.ComboBoxModel aModel ); + + public int selectionForKey( char aKey, javax.swing.ComboBoxModel aModel ) { + return __selectionForKey( __swiftObject, aKey, aModel ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/JDialogProxy.java b/src/org/swiftjava/javax_swing/JDialogProxy.java new file mode 100644 index 0000000..e8d92f7 --- /dev/null +++ b/src/org/swiftjava/javax_swing/JDialogProxy.java @@ -0,0 +1,145 @@ + +/// class javax.swing.JDialog /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class JDialogProxy extends javax.swing.JDialog { + + long __swiftObject; + + /// public javax.swing.JDialog(java.awt.Window) + + JDialogProxy( java.awt.Window owner , long __swiftObject ) { + super( owner ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Dialog,java.lang.String,boolean,java.awt.GraphicsConfiguration) + + JDialogProxy( java.awt.Dialog owner, java.lang.String title, boolean modal, java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( owner, title, modal, gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Dialog,java.lang.String,boolean) + + JDialogProxy( java.awt.Dialog owner, java.lang.String title, boolean modal , long __swiftObject ) { + super( owner, title, modal ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Dialog,java.lang.String) + + JDialogProxy( java.awt.Dialog owner, java.lang.String title , long __swiftObject ) { + super( owner, title ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType,java.awt.GraphicsConfiguration) + + JDialogProxy( java.awt.Window owner, java.lang.String title, java.awt.Dialog.ModalityType modalityType, java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( owner, title, modalityType, gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Window,java.lang.String,java.awt.Dialog$ModalityType) + + JDialogProxy( java.awt.Window owner, java.lang.String title, java.awt.Dialog.ModalityType modalityType , long __swiftObject ) { + super( owner, title, modalityType ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Window,java.lang.String) + + JDialogProxy( java.awt.Window owner, java.lang.String title , long __swiftObject ) { + super( owner, title ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Window,java.awt.Dialog$ModalityType) + + JDialogProxy( java.awt.Window owner, java.awt.Dialog.ModalityType modalityType , long __swiftObject ) { + super( owner, modalityType ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Frame,java.lang.String) + + JDialogProxy( java.awt.Frame owner, java.lang.String title , long __swiftObject ) { + super( owner, title ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Frame,boolean) + + JDialogProxy( java.awt.Frame owner, boolean modal , long __swiftObject ) { + super( owner, modal ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Frame) + + JDialogProxy( java.awt.Frame owner , long __swiftObject ) { + super( owner ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog() + + JDialogProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Dialog,boolean) + + JDialogProxy( java.awt.Dialog owner, boolean modal , long __swiftObject ) { + super( owner, modal ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Dialog) + + JDialogProxy( java.awt.Dialog owner , long __swiftObject ) { + super( owner ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Frame,java.lang.String,boolean,java.awt.GraphicsConfiguration) + + JDialogProxy( java.awt.Frame owner, java.lang.String title, boolean modal, java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( owner, title, modal, gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JDialog(java.awt.Frame,java.lang.String,boolean) + + JDialogProxy( java.awt.Frame owner, java.lang.String title, boolean modal , long __swiftObject ) { + super( owner, title, modal ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.Window.paint(java.awt.Graphics) + + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); + + boolean entered_paint_0; + + public void paint( java.awt.Graphics arg0 ) { + if ( !entered_paint_0 ) { + entered_paint_0 = true; + __paint( __swiftObject, arg0); + entered_paint_0 = false; + } + else + super.paint( arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/JFrameProxy.java b/src/org/swiftjava/javax_swing/JFrameProxy.java new file mode 100644 index 0000000..f3d8bca --- /dev/null +++ b/src/org/swiftjava/javax_swing/JFrameProxy.java @@ -0,0 +1,61 @@ + +/// class javax.swing.JFrame /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class JFrameProxy extends javax.swing.JFrame { + + long __swiftObject; + + /// public javax.swing.JFrame(java.lang.String,java.awt.GraphicsConfiguration) + + JFrameProxy( java.lang.String title, java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( title, gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JFrame(java.lang.String) throws java.awt.HeadlessException + + JFrameProxy( java.lang.String title , long __swiftObject ) { + super( title ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JFrame(java.awt.GraphicsConfiguration) + + JFrameProxy( java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JFrame() throws java.awt.HeadlessException + + JFrameProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.Window.paint(java.awt.Graphics) + + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); + + boolean entered_paint_0; + + public void paint( java.awt.Graphics arg0 ) { + if ( !entered_paint_0 ) { + entered_paint_0 = true; + __paint( __swiftObject, arg0); + entered_paint_0 = false; + } + else + super.paint( arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/javax_swing/JTableProxy.java b/src/org/swiftjava/javax_swing/JTableProxy.java similarity index 62% rename from src/org/genie/javax_swing/JTableProxy.java rename to src/org/swiftjava/javax_swing/JTableProxy.java index 6b7ebfe..d0e0dbb 100644 --- a/src/org/genie/javax_swing/JTableProxy.java +++ b/src/org/swiftjava/javax_swing/JTableProxy.java @@ -1,71 +1,72 @@ /// class javax.swing.JTable /// -package org.genie.javax_swing; +package org.swiftjava.javax_swing; +@SuppressWarnings("JniMissingFunction") public class JTableProxy extends javax.swing.JTable { - long swiftObject; + long __swiftObject; - /// public javax.swing.JTable() + /// public javax.swing.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel,javax.swing.ListSelectionModel) - JTableProxy( long swiftObject ) { - super( ); - this.swiftObject = swiftObject; + JTableProxy( javax.swing.table.TableModel arg0, javax.swing.table.TableColumnModel arg1, javax.swing.ListSelectionModel arg2 , long __swiftObject ) { + super( arg0, arg1, arg2 ); + this.__swiftObject = __swiftObject; } - /// public javax.swing.JTable(javax.swing.table.TableModel) + /// public javax.swing.JTable(int,int) - JTableProxy( javax.swing.table.TableModel arg0 , long swiftObject ) { - super( arg0 ); - this.swiftObject = swiftObject; + JTableProxy( int arg0, int arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; } - /// public javax.swing.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel) + /// public javax.swing.JTable(java.util.Vector,java.util.Vector) - JTableProxy( javax.swing.table.TableModel arg0, javax.swing.table.TableColumnModel arg1 , long swiftObject ) { + JTableProxy( java.util.Vector arg0, java.util.Vector arg1 , long __swiftObject ) { super( arg0, arg1 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } - /// public javax.swing.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel,javax.swing.ListSelectionModel) + /// public javax.swing.JTable(java.lang.Object[][],java.lang.Object[]) - JTableProxy( javax.swing.table.TableModel arg0, javax.swing.table.TableColumnModel arg1, javax.swing.ListSelectionModel arg2 , long swiftObject ) { - super( arg0, arg1, arg2 ); - this.swiftObject = swiftObject; + JTableProxy( java.lang.Object[][] arg0, java.lang.Object[] arg1 , long __swiftObject ) { + super( arg0, arg1 ); + this.__swiftObject = __swiftObject; } - /// public javax.swing.JTable(int,int) + /// public javax.swing.JTable() - JTableProxy( int arg0, int arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; + JTableProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; } - /// public javax.swing.JTable(java.util.Vector,java.util.Vector) + /// public javax.swing.JTable(javax.swing.table.TableModel) - JTableProxy( java.util.Vector arg0, java.util.Vector arg1 , long swiftObject ) { - super( arg0, arg1 ); - this.swiftObject = swiftObject; + JTableProxy( javax.swing.table.TableModel arg0 , long __swiftObject ) { + super( arg0 ); + this.__swiftObject = __swiftObject; } - /// public javax.swing.JTable(java.lang.Object[][],java.lang.Object[]) + /// public javax.swing.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel) - JTableProxy( java.lang.Object[][] arg0, java.lang.Object[] arg1 , long swiftObject ) { + JTableProxy( javax.swing.table.TableModel arg0, javax.swing.table.TableColumnModel arg1 , long __swiftObject ) { super( arg0, arg1 ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void javax.swing.JTable.changeSelection(int,int,boolean,boolean) - public native void __changeSelection( int arg0, int arg1, boolean arg2, boolean arg3 ); + public native void __changeSelection( long __swiftObject, int arg0, int arg1, boolean arg2, boolean arg3 ); boolean entered_changeSelection_0; public void changeSelection( int arg0, int arg1, boolean arg2, boolean arg3 ) { if ( !entered_changeSelection_0 ) { entered_changeSelection_0 = true; - __changeSelection( arg0, arg1, arg2, arg3 ); + __changeSelection( __swiftObject, arg0, arg1, arg2, arg3); entered_changeSelection_0 = false; } else @@ -74,14 +75,14 @@ public void changeSelection( int arg0, int arg1, boolean arg2, boolean arg3 ) { /// public java.awt.Component javax.swing.JTable.prepareRenderer(javax.swing.table.TableCellRenderer,int,int) - public native java.awt.Component __prepareRenderer( javax.swing.table.TableCellRenderer arg0, int arg1, int arg2 ); + public native java.awt.Component __prepareRenderer( long __swiftObject, javax.swing.table.TableCellRenderer arg0, int arg1, int arg2 ); boolean entered_prepareRenderer_1; public java.awt.Component prepareRenderer( javax.swing.table.TableCellRenderer arg0, int arg1, int arg2 ) { if ( !entered_prepareRenderer_1 ) { entered_prepareRenderer_1 = true; - java.awt.Component __return = __prepareRenderer( arg0, arg1, arg2 ); + java.awt.Component __return = __prepareRenderer( __swiftObject, arg0, arg1, arg2); entered_prepareRenderer_1 = false; return __return; } @@ -89,4 +90,10 @@ public java.awt.Component prepareRenderer( javax.swing.table.TableCellRenderer a return super.prepareRenderer( arg0, arg1, arg2 ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/javax_swing/JWindowProxy.java b/src/org/swiftjava/javax_swing/JWindowProxy.java new file mode 100644 index 0000000..f97e3e6 --- /dev/null +++ b/src/org/swiftjava/javax_swing/JWindowProxy.java @@ -0,0 +1,68 @@ + +/// class javax.swing.JWindow /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class JWindowProxy extends javax.swing.JWindow { + + long __swiftObject; + + /// public javax.swing.JWindow(java.awt.Window,java.awt.GraphicsConfiguration) + + JWindowProxy( java.awt.Window owner, java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( owner, gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JWindow(java.awt.Window) + + JWindowProxy( java.awt.Window owner , long __swiftObject ) { + super( owner ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JWindow(java.awt.Frame) + + JWindowProxy( java.awt.Frame owner , long __swiftObject ) { + super( owner ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JWindow(java.awt.GraphicsConfiguration) + + JWindowProxy( java.awt.GraphicsConfiguration gc , long __swiftObject ) { + super( gc ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.JWindow() + + JWindowProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.Window.paint(java.awt.Graphics) + + public native void __paint( long __swiftObject, java.awt.Graphics arg0 ); + + boolean entered_paint_0; + + public void paint( java.awt.Graphics arg0 ) { + if ( !entered_paint_0 ) { + entered_paint_0 = true; + __paint( __swiftObject, arg0); + entered_paint_0 = false; + } + else + super.paint( arg0 ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/ListDataListenerProxy.java b/src/org/swiftjava/javax_swing/ListDataListenerProxy.java new file mode 100644 index 0000000..0de9fa0 --- /dev/null +++ b/src/org/swiftjava/javax_swing/ListDataListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface javax.swing.event.ListDataListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class ListDataListenerProxy implements javax.swing.event.ListDataListener { + + long __swiftObject; + + ListDataListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.ListDataListener.contentsChanged(javax.swing.event.ListDataEvent) + + public native void __contentsChanged( long __swiftObject, javax.swing.event.ListDataEvent e ); + + public void contentsChanged( javax.swing.event.ListDataEvent e ) { + __contentsChanged( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.ListDataListener.intervalAdded(javax.swing.event.ListDataEvent) + + public native void __intervalAdded( long __swiftObject, javax.swing.event.ListDataEvent e ); + + public void intervalAdded( javax.swing.event.ListDataEvent e ) { + __intervalAdded( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.ListDataListener.intervalRemoved(javax.swing.event.ListDataEvent) + + public native void __intervalRemoved( long __swiftObject, javax.swing.event.ListDataEvent e ); + + public void intervalRemoved( javax.swing.event.ListDataEvent e ) { + __intervalRemoved( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java b/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java new file mode 100644 index 0000000..9652a28 --- /dev/null +++ b/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.ListSelectionListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class ListSelectionListenerProxy implements javax.swing.event.ListSelectionListener { + + long __swiftObject; + + ListSelectionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.ListSelectionListener.valueChanged(javax.swing.event.ListSelectionEvent) + + public native void __valueChanged( long __swiftObject, javax.swing.event.ListSelectionEvent e ); + + public void valueChanged( javax.swing.event.ListSelectionEvent e ) { + __valueChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java b/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java new file mode 100644 index 0000000..502911c --- /dev/null +++ b/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java @@ -0,0 +1,53 @@ + +/// interface javax.swing.event.MenuDragMouseListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class MenuDragMouseListenerProxy implements javax.swing.event.MenuDragMouseListener { + + long __swiftObject; + + MenuDragMouseListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseEntered(javax.swing.event.MenuDragMouseEvent) + + public native void __menuDragMouseEntered( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); + + public void menuDragMouseEntered( javax.swing.event.MenuDragMouseEvent e ) { + __menuDragMouseEntered( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseExited(javax.swing.event.MenuDragMouseEvent) + + public native void __menuDragMouseExited( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); + + public void menuDragMouseExited( javax.swing.event.MenuDragMouseEvent e ) { + __menuDragMouseExited( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseDragged(javax.swing.event.MenuDragMouseEvent) + + public native void __menuDragMouseDragged( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); + + public void menuDragMouseDragged( javax.swing.event.MenuDragMouseEvent e ) { + __menuDragMouseDragged( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseReleased(javax.swing.event.MenuDragMouseEvent) + + public native void __menuDragMouseReleased( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); + + public void menuDragMouseReleased( javax.swing.event.MenuDragMouseEvent e ) { + __menuDragMouseReleased( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java b/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java new file mode 100644 index 0000000..78cdb68 --- /dev/null +++ b/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface javax.swing.event.MenuKeyListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class MenuKeyListenerProxy implements javax.swing.event.MenuKeyListener { + + long __swiftObject; + + MenuKeyListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.MenuKeyListener.menuKeyPressed(javax.swing.event.MenuKeyEvent) + + public native void __menuKeyPressed( long __swiftObject, javax.swing.event.MenuKeyEvent e ); + + public void menuKeyPressed( javax.swing.event.MenuKeyEvent e ) { + __menuKeyPressed( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuKeyListener.menuKeyReleased(javax.swing.event.MenuKeyEvent) + + public native void __menuKeyReleased( long __swiftObject, javax.swing.event.MenuKeyEvent e ); + + public void menuKeyReleased( javax.swing.event.MenuKeyEvent e ) { + __menuKeyReleased( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuKeyListener.menuKeyTyped(javax.swing.event.MenuKeyEvent) + + public native void __menuKeyTyped( long __swiftObject, javax.swing.event.MenuKeyEvent e ); + + public void menuKeyTyped( javax.swing.event.MenuKeyEvent e ) { + __menuKeyTyped( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/MenuListenerProxy.java b/src/org/swiftjava/javax_swing/MenuListenerProxy.java new file mode 100644 index 0000000..400d493 --- /dev/null +++ b/src/org/swiftjava/javax_swing/MenuListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface javax.swing.event.MenuListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class MenuListenerProxy implements javax.swing.event.MenuListener { + + long __swiftObject; + + MenuListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.MenuListener.menuSelected(javax.swing.event.MenuEvent) + + public native void __menuSelected( long __swiftObject, javax.swing.event.MenuEvent e ); + + public void menuSelected( javax.swing.event.MenuEvent e ) { + __menuSelected( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuListener.menuDeselected(javax.swing.event.MenuEvent) + + public native void __menuDeselected( long __swiftObject, javax.swing.event.MenuEvent e ); + + public void menuDeselected( javax.swing.event.MenuEvent e ) { + __menuDeselected( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.MenuListener.menuCanceled(javax.swing.event.MenuEvent) + + public native void __menuCanceled( long __swiftObject, javax.swing.event.MenuEvent e ); + + public void menuCanceled( javax.swing.event.MenuEvent e ) { + __menuCanceled( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/javax_swing/MouseInputAdapterProxy.java b/src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java similarity index 58% rename from src/org/genie/javax_swing/MouseInputAdapterProxy.java rename to src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java index b2987bb..5fa7e08 100644 --- a/src/org/genie/javax_swing/MouseInputAdapterProxy.java +++ b/src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java @@ -1,157 +1,158 @@ /// class javax.swing.event.MouseInputAdapter /// -package org.genie.javax_swing; +package org.swiftjava.javax_swing; +@SuppressWarnings("JniMissingFunction") public class MouseInputAdapterProxy extends javax.swing.event.MouseInputAdapter { - long swiftObject; + long __swiftObject; /// public javax.swing.event.MouseInputAdapter() - MouseInputAdapterProxy( long swiftObject ) { + MouseInputAdapterProxy( long __swiftObject ) { super( ); - this.swiftObject = swiftObject; + this.__swiftObject = __swiftObject; } /// public void java.awt.event.MouseAdapter.mousePressed(java.awt.event.MouseEvent) - public native void __mousePressed( java.awt.event.MouseEvent arg0 ); + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mousePressed_0; - public void mousePressed( java.awt.event.MouseEvent arg0 ) { + public void mousePressed( java.awt.event.MouseEvent e ) { if ( !entered_mousePressed_0 ) { entered_mousePressed_0 = true; - __mousePressed( arg0 ); + __mousePressed( __swiftObject, e); entered_mousePressed_0 = false; } else - super.mousePressed( arg0 ); + super.mousePressed( e ); } /// public void java.awt.event.MouseAdapter.mouseReleased(java.awt.event.MouseEvent) - public native void __mouseReleased( java.awt.event.MouseEvent arg0 ); + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseReleased_1; - public void mouseReleased( java.awt.event.MouseEvent arg0 ) { + public void mouseReleased( java.awt.event.MouseEvent e ) { if ( !entered_mouseReleased_1 ) { entered_mouseReleased_1 = true; - __mouseReleased( arg0 ); + __mouseReleased( __swiftObject, e); entered_mouseReleased_1 = false; } else - super.mouseReleased( arg0 ); + super.mouseReleased( e ); } /// public void java.awt.event.MouseAdapter.mouseClicked(java.awt.event.MouseEvent) - public native void __mouseClicked( java.awt.event.MouseEvent arg0 ); + public native void __mouseClicked( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseClicked_2; - public void mouseClicked( java.awt.event.MouseEvent arg0 ) { + public void mouseClicked( java.awt.event.MouseEvent e ) { if ( !entered_mouseClicked_2 ) { entered_mouseClicked_2 = true; - __mouseClicked( arg0 ); + __mouseClicked( __swiftObject, e); entered_mouseClicked_2 = false; } else - super.mouseClicked( arg0 ); + super.mouseClicked( e ); } /// public void java.awt.event.MouseAdapter.mouseExited(java.awt.event.MouseEvent) - public native void __mouseExited( java.awt.event.MouseEvent arg0 ); + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseExited_3; - public void mouseExited( java.awt.event.MouseEvent arg0 ) { + public void mouseExited( java.awt.event.MouseEvent e ) { if ( !entered_mouseExited_3 ) { entered_mouseExited_3 = true; - __mouseExited( arg0 ); + __mouseExited( __swiftObject, e); entered_mouseExited_3 = false; } else - super.mouseExited( arg0 ); + super.mouseExited( e ); } /// public void java.awt.event.MouseAdapter.mouseEntered(java.awt.event.MouseEvent) - public native void __mouseEntered( java.awt.event.MouseEvent arg0 ); + public native void __mouseEntered( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseEntered_4; - public void mouseEntered( java.awt.event.MouseEvent arg0 ) { + public void mouseEntered( java.awt.event.MouseEvent e ) { if ( !entered_mouseEntered_4 ) { entered_mouseEntered_4 = true; - __mouseEntered( arg0 ); + __mouseEntered( __swiftObject, e); entered_mouseEntered_4 = false; } else - super.mouseEntered( arg0 ); + super.mouseEntered( e ); } /// public void java.awt.event.MouseAdapter.mouseMoved(java.awt.event.MouseEvent) - public native void __mouseMoved( java.awt.event.MouseEvent arg0 ); + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseMoved_5; - public void mouseMoved( java.awt.event.MouseEvent arg0 ) { + public void mouseMoved( java.awt.event.MouseEvent e ) { if ( !entered_mouseMoved_5 ) { entered_mouseMoved_5 = true; - __mouseMoved( arg0 ); + __mouseMoved( __swiftObject, e); entered_mouseMoved_5 = false; } else - super.mouseMoved( arg0 ); + super.mouseMoved( e ); } /// public void java.awt.event.MouseAdapter.mouseDragged(java.awt.event.MouseEvent) - public native void __mouseDragged( java.awt.event.MouseEvent arg0 ); + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); boolean entered_mouseDragged_6; - public void mouseDragged( java.awt.event.MouseEvent arg0 ) { + public void mouseDragged( java.awt.event.MouseEvent e ) { if ( !entered_mouseDragged_6 ) { entered_mouseDragged_6 = true; - __mouseDragged( arg0 ); + __mouseDragged( __swiftObject, e); entered_mouseDragged_6 = false; } else - super.mouseDragged( arg0 ); + super.mouseDragged( e ); } /// public void java.awt.event.MouseAdapter.mouseWheelMoved(java.awt.event.MouseWheelEvent) - public native void __mouseWheelMoved( java.awt.event.MouseWheelEvent arg0 ); + public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); boolean entered_mouseWheelMoved_7; - public void mouseWheelMoved( java.awt.event.MouseWheelEvent arg0 ) { + public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { if ( !entered_mouseWheelMoved_7 ) { entered_mouseWheelMoved_7 = true; - __mouseWheelMoved( arg0 ); + __mouseWheelMoved( __swiftObject, e); entered_mouseWheelMoved_7 = false; } else - super.mouseWheelMoved( arg0 ); + super.mouseWheelMoved( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) - public native boolean __equals( java.lang.Object arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); boolean entered_equals_8; public boolean equals( java.lang.Object arg0 ) { if ( !entered_equals_8 ) { entered_equals_8 = true; - boolean __return = __equals( arg0 ); + boolean __return = __equals( __swiftObject, arg0); entered_equals_8 = false; return __return; } @@ -161,14 +162,14 @@ public boolean equals( java.lang.Object arg0 ) { /// public java.lang.String java.lang.Object.toString() - public native java.lang.String __toString(); + public native java.lang.String __toString( long __swiftObject ); boolean entered_toString_9; public java.lang.String toString() { if ( !entered_toString_9 ) { entered_toString_9 = true; - java.lang.String __return = __toString( ); + java.lang.String __return = __toString( __swiftObject ); entered_toString_9 = false; return __return; } @@ -178,14 +179,14 @@ public java.lang.String toString() { /// public native int java.lang.Object.hashCode() - public native int __hashCode(); + public native int __hashCode( long __swiftObject ); boolean entered_hashCode_10; public int hashCode() { if ( !entered_hashCode_10 ) { entered_hashCode_10 = true; - int __return = __hashCode( ); + int __return = __hashCode( __swiftObject ); entered_hashCode_10 = false; return __return; } @@ -193,4 +194,10 @@ public int hashCode() { return super.hashCode( ); } + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + } diff --git a/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java b/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java new file mode 100644 index 0000000..cefeaa1 --- /dev/null +++ b/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java @@ -0,0 +1,77 @@ + +/// interface javax.swing.event.MouseInputListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class MouseInputListenerProxy implements javax.swing.event.MouseInputListener { + + long __swiftObject; + + MouseInputListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) + + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mousePressed( java.awt.event.MouseEvent e ) { + __mousePressed( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) + + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseReleased( java.awt.event.MouseEvent e ) { + __mouseReleased( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseClicked(java.awt.event.MouseEvent) + + public native void __mouseClicked( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseClicked( java.awt.event.MouseEvent e ) { + __mouseClicked( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) + + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseExited( java.awt.event.MouseEvent e ) { + __mouseExited( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) + + public native void __mouseEntered( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseEntered( java.awt.event.MouseEvent e ) { + __mouseEntered( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) + + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseMoved( java.awt.event.MouseEvent e ) { + __mouseMoved( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) + + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseDragged( java.awt.event.MouseEvent e ) { + __mouseDragged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/PlainDocumentProxy.java b/src/org/swiftjava/javax_swing/PlainDocumentProxy.java new file mode 100644 index 0000000..99f4126 --- /dev/null +++ b/src/org/swiftjava/javax_swing/PlainDocumentProxy.java @@ -0,0 +1,47 @@ + +/// class javax.swing.text.PlainDocument /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class PlainDocumentProxy extends javax.swing.text.PlainDocument { + + long __swiftObject; + + /// public javax.swing.text.PlainDocument() + + PlainDocumentProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public javax.swing.text.PlainDocument(javax.swing.text.AbstractDocument$Content) + + PlainDocumentProxy( javax.swing.text.AbstractDocument.Content c , long __swiftObject ) { + super( c ); + this.__swiftObject = __swiftObject; + } + + /// public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException + + public native void __insertString( long __swiftObject, int offs, java.lang.String str, javax.swing.text.AttributeSet a ); + + boolean entered_insertString_0; + + public void insertString( int offs, java.lang.String str, javax.swing.text.AttributeSet a ) throws javax.swing.text.BadLocationException { + if ( !entered_insertString_0 ) { + entered_insertString_0 = true; + __insertString( __swiftObject, offs, str, a); + entered_insertString_0 = false; + } + else + super.insertString( offs, str, a ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java b/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java new file mode 100644 index 0000000..cbc69fc --- /dev/null +++ b/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java @@ -0,0 +1,45 @@ + +/// interface javax.swing.event.PopupMenuListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class PopupMenuListenerProxy implements javax.swing.event.PopupMenuListener { + + long __swiftObject; + + PopupMenuListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent) + + public native void __popupMenuWillBecomeVisible( long __swiftObject, javax.swing.event.PopupMenuEvent e ); + + public void popupMenuWillBecomeVisible( javax.swing.event.PopupMenuEvent e ) { + __popupMenuWillBecomeVisible( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent) + + public native void __popupMenuWillBecomeInvisible( long __swiftObject, javax.swing.event.PopupMenuEvent e ); + + public void popupMenuWillBecomeInvisible( javax.swing.event.PopupMenuEvent e ) { + __popupMenuWillBecomeInvisible( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.PopupMenuListener.popupMenuCanceled(javax.swing.event.PopupMenuEvent) + + public native void __popupMenuCanceled( long __swiftObject, javax.swing.event.PopupMenuEvent e ); + + public void popupMenuCanceled( javax.swing.event.PopupMenuEvent e ) { + __popupMenuCanceled( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java b/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java new file mode 100644 index 0000000..516afc1 --- /dev/null +++ b/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.RowSorterListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class RowSorterListenerProxy implements javax.swing.event.RowSorterListener { + + long __swiftObject; + + RowSorterListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.RowSorterListener.sorterChanged(javax.swing.event.RowSorterEvent) + + public native void __sorterChanged( long __swiftObject, javax.swing.event.RowSorterEvent e ); + + public void sorterChanged( javax.swing.event.RowSorterEvent e ) { + __sorterChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/genie/javax_swing/TableColumnModelListenerProxy.java b/src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java similarity index 50% rename from src/org/genie/javax_swing/TableColumnModelListenerProxy.java rename to src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java index ba53566..0d69259 100644 --- a/src/org/genie/javax_swing/TableColumnModelListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java @@ -1,54 +1,61 @@ /// interface javax.swing.event.TableColumnModelListener /// -package org.genie.javax_swing; +package org.swiftjava.javax_swing; +@SuppressWarnings("JniMissingFunction") public class TableColumnModelListenerProxy implements javax.swing.event.TableColumnModelListener { - long swiftObject; + long __swiftObject; - TableColumnModelListenerProxy( long swiftObject ) { - this.swiftObject = swiftObject; + TableColumnModelListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; } /// public abstract void javax.swing.event.TableColumnModelListener.columnAdded(javax.swing.event.TableColumnModelEvent) - public native void __columnAdded( javax.swing.event.TableColumnModelEvent arg0 ); + public native void __columnAdded( long __swiftObject, javax.swing.event.TableColumnModelEvent e ); - public void columnAdded( javax.swing.event.TableColumnModelEvent arg0 ) { - __columnAdded( arg0 ); + public void columnAdded( javax.swing.event.TableColumnModelEvent e ) { + __columnAdded( __swiftObject, e ); } /// public abstract void javax.swing.event.TableColumnModelListener.columnRemoved(javax.swing.event.TableColumnModelEvent) - public native void __columnRemoved( javax.swing.event.TableColumnModelEvent arg0 ); + public native void __columnRemoved( long __swiftObject, javax.swing.event.TableColumnModelEvent e ); - public void columnRemoved( javax.swing.event.TableColumnModelEvent arg0 ) { - __columnRemoved( arg0 ); + public void columnRemoved( javax.swing.event.TableColumnModelEvent e ) { + __columnRemoved( __swiftObject, e ); } /// public abstract void javax.swing.event.TableColumnModelListener.columnMoved(javax.swing.event.TableColumnModelEvent) - public native void __columnMoved( javax.swing.event.TableColumnModelEvent arg0 ); + public native void __columnMoved( long __swiftObject, javax.swing.event.TableColumnModelEvent e ); - public void columnMoved( javax.swing.event.TableColumnModelEvent arg0 ) { - __columnMoved( arg0 ); + public void columnMoved( javax.swing.event.TableColumnModelEvent e ) { + __columnMoved( __swiftObject, e ); } /// public abstract void javax.swing.event.TableColumnModelListener.columnMarginChanged(javax.swing.event.ChangeEvent) - public native void __columnMarginChanged( javax.swing.event.ChangeEvent arg0 ); + public native void __columnMarginChanged( long __swiftObject, javax.swing.event.ChangeEvent e ); - public void columnMarginChanged( javax.swing.event.ChangeEvent arg0 ) { - __columnMarginChanged( arg0 ); + public void columnMarginChanged( javax.swing.event.ChangeEvent e ) { + __columnMarginChanged( __swiftObject, e ); } /// public abstract void javax.swing.event.TableColumnModelListener.columnSelectionChanged(javax.swing.event.ListSelectionEvent) - public native void __columnSelectionChanged( javax.swing.event.ListSelectionEvent arg0 ); + public native void __columnSelectionChanged( long __swiftObject, javax.swing.event.ListSelectionEvent e ); - public void columnSelectionChanged( javax.swing.event.ListSelectionEvent arg0 ) { - __columnSelectionChanged( arg0 ); + public void columnSelectionChanged( javax.swing.event.ListSelectionEvent e ) { + __columnSelectionChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); } } diff --git a/src/org/swiftjava/javax_swing/TableModelListenerProxy.java b/src/org/swiftjava/javax_swing/TableModelListenerProxy.java new file mode 100644 index 0000000..efafd75 --- /dev/null +++ b/src/org/swiftjava/javax_swing/TableModelListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.TableModelListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class TableModelListenerProxy implements javax.swing.event.TableModelListener { + + long __swiftObject; + + TableModelListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.TableModelListener.tableChanged(javax.swing.event.TableModelEvent) + + public native void __tableChanged( long __swiftObject, javax.swing.event.TableModelEvent e ); + + public void tableChanged( javax.swing.event.TableModelEvent e ) { + __tableChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java b/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java new file mode 100644 index 0000000..3992ebe --- /dev/null +++ b/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface javax.swing.event.TreeExpansionListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class TreeExpansionListenerProxy implements javax.swing.event.TreeExpansionListener { + + long __swiftObject; + + TreeExpansionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.TreeExpansionListener.treeExpanded(javax.swing.event.TreeExpansionEvent) + + public native void __treeExpanded( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); + + public void treeExpanded( javax.swing.event.TreeExpansionEvent event ) { + __treeExpanded( __swiftObject, event ); + } + + /// public abstract void javax.swing.event.TreeExpansionListener.treeCollapsed(javax.swing.event.TreeExpansionEvent) + + public native void __treeCollapsed( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); + + public void treeCollapsed( javax.swing.event.TreeExpansionEvent event ) { + __treeCollapsed( __swiftObject, event ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java b/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java new file mode 100644 index 0000000..5494c93 --- /dev/null +++ b/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java @@ -0,0 +1,53 @@ + +/// interface javax.swing.event.TreeModelListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class TreeModelListenerProxy implements javax.swing.event.TreeModelListener { + + long __swiftObject; + + TreeModelListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.TreeModelListener.treeNodesChanged(javax.swing.event.TreeModelEvent) + + public native void __treeNodesChanged( long __swiftObject, javax.swing.event.TreeModelEvent e ); + + public void treeNodesChanged( javax.swing.event.TreeModelEvent e ) { + __treeNodesChanged( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.TreeModelListener.treeNodesInserted(javax.swing.event.TreeModelEvent) + + public native void __treeNodesInserted( long __swiftObject, javax.swing.event.TreeModelEvent e ); + + public void treeNodesInserted( javax.swing.event.TreeModelEvent e ) { + __treeNodesInserted( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.TreeModelListener.treeNodesRemoved(javax.swing.event.TreeModelEvent) + + public native void __treeNodesRemoved( long __swiftObject, javax.swing.event.TreeModelEvent e ); + + public void treeNodesRemoved( javax.swing.event.TreeModelEvent e ) { + __treeNodesRemoved( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.TreeModelListener.treeStructureChanged(javax.swing.event.TreeModelEvent) + + public native void __treeStructureChanged( long __swiftObject, javax.swing.event.TreeModelEvent e ); + + public void treeStructureChanged( javax.swing.event.TreeModelEvent e ) { + __treeStructureChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java b/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java new file mode 100644 index 0000000..eb97826 --- /dev/null +++ b/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.TreeSelectionListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class TreeSelectionListenerProxy implements javax.swing.event.TreeSelectionListener { + + long __swiftObject; + + TreeSelectionListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.TreeSelectionListener.valueChanged(javax.swing.event.TreeSelectionEvent) + + public native void __valueChanged( long __swiftObject, javax.swing.event.TreeSelectionEvent e ); + + public void valueChanged( javax.swing.event.TreeSelectionEvent e ) { + __valueChanged( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java b/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java new file mode 100644 index 0000000..80c6c70 --- /dev/null +++ b/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java @@ -0,0 +1,37 @@ + +/// interface javax.swing.event.TreeWillExpandListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class TreeWillExpandListenerProxy implements javax.swing.event.TreeWillExpandListener { + + long __swiftObject; + + TreeWillExpandListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillExpand(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException + + public native void __treeWillExpand( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); + + public void treeWillExpand( javax.swing.event.TreeExpansionEvent event ) throws javax.swing.tree.ExpandVetoException { + __treeWillExpand( __swiftObject, event ); + } + + /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillCollapse(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException + + public native void __treeWillCollapse( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); + + public void treeWillCollapse( javax.swing.event.TreeExpansionEvent event ) throws javax.swing.tree.ExpandVetoException { + __treeWillCollapse( __swiftObject, event ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java b/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java new file mode 100644 index 0000000..2804c98 --- /dev/null +++ b/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java @@ -0,0 +1,29 @@ + +/// interface javax.swing.event.UndoableEditListener /// + +package org.swiftjava.javax_swing; + +@SuppressWarnings("JniMissingFunction") +public class UndoableEditListenerProxy implements javax.swing.event.UndoableEditListener { + + long __swiftObject; + + UndoableEditListenerProxy( long __swiftObject ) { + this.__swiftObject = __swiftObject; + } + + /// public abstract void javax.swing.event.UndoableEditListener.undoableEditHappened(javax.swing.event.UndoableEditEvent) + + public native void __undoableEditHappened( long __swiftObject, javax.swing.event.UndoableEditEvent e ); + + public void undoableEditHappened( javax.swing.event.UndoableEditEvent e ) { + __undoableEditHappened( __swiftObject, e ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/swift-android-kotlin b/swift-android-kotlin index 17ef816..c8b5c49 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 17ef81610fb14374381c76b1251ef5bbbeba869b +Subproject commit c8b5c497ebfe92065f76f744b00d181610242fbc diff --git a/swift-android-samples b/swift-android-samples index 6094b36..615c4e9 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 6094b367cb91485449597e603d7ccabfdf58a59c +Subproject commit 615c4e90ad5fa1e000d12fc2492afbb326e1f515 diff --git a/swiftjava.jar b/swiftjava.jar new file mode 100644 index 0000000000000000000000000000000000000000..7b700da28a9b0490ef6e1c6273e176ea3fbca0b2 GIT binary patch literal 94941 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 <1Ei%jBmIU@5?S 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 #LQqvjBTc`ZF;^!IEM`LE@azqi_+|$pe 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 literal 0 HcmV?d00001 From 479659c29843788725eb7d7dd2c10a3df22954b1 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 6 Aug 2017 17:30:17 +0100 Subject: [PATCH 21/53] Updated for Version 2 --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index 7e23521..15de371 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 7e235215215270bce2f6070b7f1f827f7b8ee6af +Subproject commit 15de3714cd4feaab8d0731138de3a17440de4f7b From a86fdcb0636af4614c89f3cd86ffe108c0654e6d Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 6 Aug 2017 20:13:42 +0100 Subject: [PATCH 22/53] Updated for Version 2 --- SwiftJava.xcodeproj/project.pbxproj | 4 ---- examples | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 4e11d23..4a23309 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; - BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB6651331F2E3A8D004EFD5F /* swift-android-gradle */; }; BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; @@ -240,7 +239,6 @@ BB5ACFE31D35B09900E2386A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; - BB6651331F2E3A8D004EFD5F /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; BB8AC4621D3F11E600BD5B0F /* examples */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = examples; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -363,7 +361,6 @@ BB6651351F2E3F50004EFD5F /* android_toolchain */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, - BB6651331F2E3A8D004EFD5F /* swift-android-gradle */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, ); @@ -776,7 +773,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */, CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, BBAD3EE41D5A84700091D139 /* genall.sh in Resources */, diff --git a/examples b/examples index fe798d4..c0276ef 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit fe798d437a187fc67a236056a5a2987078af6afd +Subproject commit c0276ef65222462b868c7e602b9d65c9ca15aa2c diff --git a/swift-android-kotlin b/swift-android-kotlin index c8b5c49..8cde60a 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit c8b5c497ebfe92065f76f744b00d181610242fbc +Subproject commit 8cde60aacc92b69fae68b7902e82eafc7049eaeb diff --git a/swift-android-samples b/swift-android-samples index 615c4e9..ca30bcf 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 615c4e90ad5fa1e000d12fc2492afbb326e1f515 +Subproject commit ca30bcfc3a322015904f8c5438599d9b783a0d25 From 1e06f15ddcd722a564e259496124a974525e4114 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 6 Aug 2017 20:48:17 +0100 Subject: [PATCH 23/53] Updated for Version 2 --- .../Sources/SwiftHelloBinding.swift | 3 - .../Sources/SwiftHelloBinding_Listener.swift | 3 - .../Sources/SwiftHelloBinding_Responder.swift | 93 ++++---- .../Sources/SwiftHelloTest.swift | 3 - .../SwiftHelloTest_SwiftTestListener.swift | 3 - .../Sources/SwiftHelloTest_TestListener.swift | 205 +++++++++--------- .../SwiftHelloTest_TestResponderAdapter.swift | 151 +++++++------ .../Sources/SwiftHelloTypes.swift | 3 - .../Sources/SwiftHelloTypes_ListenerMap.swift | 3 - .../SwiftHelloTypes_ListenerMapList.swift | 3 - .../SwiftHelloTypes_TextListener.swift | 3 - .../bindings/SwiftHelloTypes.java | 4 - .../SwiftHelloTest_TestListenerProxy.java | 32 +-- ...ftHelloTest_TestResponderAdapterProxy.java | 98 ++++----- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 16 files changed, 287 insertions(+), 324 deletions(-) diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding.swift b/com_johnholdsworth/Sources/SwiftHelloBinding.swift index a6fef46..e171386 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding.swift @@ -3,9 +3,6 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// interface com.johnholdsworth.bindings.SwiftHelloBinding /// public protocol SwiftHelloBinding: JavaProtocol { diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift index 5bbb7c8..f1e80af 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift @@ -3,9 +3,6 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// interface com.johnholdsworth.bindings.SwiftHelloBinding$Listener /// public protocol SwiftHelloBinding_Listener: JavaProtocol { diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift index 02232ac..c77d73e 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift @@ -3,9 +3,6 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// interface com.johnholdsworth.bindings.SwiftHelloBinding$Responder /// public protocol SwiftHelloBinding_Responder: JavaProtocol { @@ -18,21 +15,17 @@ public protocol SwiftHelloBinding_Responder: JavaProtocol { func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) - - func processedTextListener( text: SwiftHelloTypes_TextListener? ) - - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) - func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) + func processedNumber( number: Double ) /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedText(java.lang.String) func processedText( text: String? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) - func processedNumber( number: Double ) + func processedTextListener( text: SwiftHelloTypes_TextListener? ) /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[]) @@ -46,6 +39,10 @@ public protocol SwiftHelloBinding_Responder: JavaProtocol { func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) + } @@ -86,75 +83,60 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi return testResponder( loopback: _loopback ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) - - private static var processedTextListener_MethodID_12: jmethodID? - - open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_12, args: &__args, locals: &__locals ) - } - - open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { - processedTextListener( text: _text ) - } - - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) - private static var processMapList_MethodID_13: jmethodID? + private static var processedNumber_MethodID_12: jmethodID? - open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { + open func processedNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_13, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: number, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_12, args: &__args, locals: &__locals ) } - open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { - processMapList( map: _map ) + open func processedNumber( _ _number: Double ) { + processedNumber( number: _number ) } /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedText(java.lang.String) - private static var processedText_MethodID_14: jmethodID? + private static var processedText_MethodID_13: jmethodID? open func processedText( text: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_14, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_13, args: &__args, locals: &__locals ) } open func processedText( _ _text: String? ) { processedText( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) - private static var processedNumber_MethodID_15: jmethodID? + private static var processedTextListener_MethodID_14: jmethodID? - open func processedNumber( number: Double ) { + open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_15, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_14, args: &__args, locals: &__locals ) } - open func processedNumber( _ _number: Double ) { - processedNumber( number: _number ) + open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { + processedTextListener( text: _text ) } /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[]) - private static var processedTextListenerArray_MethodID_16: jmethodID? + private static var processedTextListenerArray_MethodID_15: jmethodID? open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_16, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_15, args: &__args, locals: &__locals ) } open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { @@ -163,13 +145,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) - private static var processMap_MethodID_17: jmethodID? + private static var processMap_MethodID_16: jmethodID? open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_17, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_16, args: &__args, locals: &__locals ) } open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { @@ -178,19 +160,34 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[][]) - private static var processedTextListener2dArray_MethodID_18: jmethodID? + private static var processedTextListener2dArray_MethodID_17: jmethodID? open func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_18, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_17, args: &__args, locals: &__locals ) } open func processedTextListener2dArray( _ _text: [[SwiftHelloTypes_TextListener]]? ) { processedTextListener2dArray( text: _text ) } + /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + + private static var processMapList_MethodID_18: jmethodID? + + open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_18, args: &__args, locals: &__locals ) + } + + open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { + processMapList( map: _map ) + } + } diff --git a/com_johnholdsworth/Sources/SwiftHelloTest.swift b/com_johnholdsworth/Sources/SwiftHelloTest.swift index f9b289e..9d93ce8 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest.swift @@ -3,9 +3,6 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// interface com.johnholdsworth.bindings.SwiftHelloTest /// public protocol SwiftHelloTest: JavaProtocol { diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift index a6c7d70..3d72310 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift @@ -3,9 +3,6 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// class com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener /// open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter { diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift index cf09039..67584c8 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift @@ -3,13 +3,18 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// interface com.johnholdsworth.bindings.SwiftHelloTest$TestListener /// public protocol SwiftHelloTest_TestListener: JavaProtocol { + /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + func setLoopback( loopback: SwiftHelloTest_TestListener? ) + + /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + func booleanMethod( arg: Bool ) -> Bool + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! @@ -26,14 +31,6 @@ public protocol SwiftHelloTest_TestListener: JavaProtocol { func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) - - func setLoopback( loopback: SwiftHelloTest_TestListener? ) - - /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - - func booleanMethod( arg: Bool ) -> Bool - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! @@ -149,15 +146,46 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? + /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var setLoopback_MethodID_34: jmethodID? + + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_34, args: &__args, locals: &__locals ) + } + + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { + setLoopback( loopback: _loopback ) + } + + /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + private static var booleanMethod_MethodID_35: jmethodID? + + open func booleanMethod( arg: Bool ) -> Bool { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_35, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Bool(), from: __return ) + } + + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - private static var booleanArrayMethod_MethodID_34: jmethodID? + private static var booleanArrayMethod_MethodID_36: jmethodID? open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_34, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_36, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [Bool](), from: __return ) } @@ -167,13 +195,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_35: jmethodID? + private static var boolean2dArrayMethod_MethodID_37: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_35, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_37, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [[Bool]](), from: __return ) } @@ -183,13 +211,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) - private static var byteMethod_MethodID_36: jmethodID? + private static var byteMethod_MethodID_38: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_36, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_38, args: &__args, locals: &__locals ) return JNIType.toSwift( type: Int8(), from: __return ) } @@ -199,13 +227,13 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - private static var byteArrayMethod_MethodID_37: jmethodID? + private static var byteArrayMethod_MethodID_39: jmethodID? open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_37, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_39, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [Int8](), from: __return ) } @@ -213,37 +241,6 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byteArrayMethod( arg: _arg ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) - - private static var setLoopback_MethodID_38: jmethodID? - - open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_38, args: &__args, locals: &__locals ) - } - - open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { - setLoopback( loopback: _loopback ) - } - - /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - - private static var booleanMethod_MethodID_39: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_39, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) private static var byte2dArrayMethod_MethodID_40: jmethodID? @@ -682,62 +679,62 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ } -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_setLoopback_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloTest_TestListener_booleanArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_setLoopback_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) + SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_booleanMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_booleanMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_byteMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_byteMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { +private func SwiftHelloTest_TestListener_booleanArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_byteArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_byteArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_setLoopback_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloTest_TestListener_byteMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestListener_setLoopback_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { +private func SwiftHelloTest_TestListener_byteMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { JNI.inNative = true; - SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_booleanMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean +private typealias SwiftHelloTest_TestListener_byteArrayMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { +private func SwiftHelloTest_TestListener_byteArrayMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? @@ -1015,23 +1012,23 @@ fileprivate class SwiftHelloTest_TestListenerLocal_: JNILocalProxy Bool /**/ { + return false + } + + open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { + return booleanMethod( arg: _arg ) + } + /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { @@ -1185,25 +1201,6 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return byteArrayMethod( arg: _arg ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) - - open func setLoopback( loopback: SwiftHelloTest_TestListener? ) /**/ { - } - - open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) /**/ { - setLoopback( loopback: _loopback ) - } - - /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - - open func booleanMethod( arg: Bool ) -> Bool /**/ { - return false - } - - open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { - return booleanMethod( arg: _arg ) - } - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift index c0d8ea2..715921c 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift @@ -3,9 +3,6 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Aug 06 01:21:22 BST 2017 /// - /// class com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter /// open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHelloTest_TestListener { @@ -48,15 +45,46 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell JNI.DeleteLocalRef( __object ) } + /// public void com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + + private static var setLoopback_MethodID_2: jmethodID? + + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_2, args: &__args, locals: &__locals ) + } + + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { + setLoopback( loopback: _loopback ) + } + + /// public boolean com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) + + private static var booleanMethod_MethodID_3: jmethodID? + + open func booleanMethod( arg: Bool ) -> Bool { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: arg, locals: &__locals ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanMethod_MethodID_3, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: Bool(), from: __return ) + } + + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) + } + /// public boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) - private static var booleanArrayMethod_MethodID_2: jmethodID? + private static var booleanArrayMethod_MethodID_4: jmethodID? open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanArrayMethod_MethodID_2, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanArrayMethod_MethodID_4, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [Bool](), from: __return ) } @@ -66,13 +94,13 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell /// public boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) - private static var boolean2dArrayMethod_MethodID_3: jmethodID? + private static var boolean2dArrayMethod_MethodID_5: jmethodID? open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.boolean2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.boolean2dArrayMethod_MethodID_5, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [[Bool]](), from: __return ) } @@ -82,13 +110,13 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell /// public byte com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) - private static var byteMethod_MethodID_4: jmethodID? + private static var byteMethod_MethodID_6: jmethodID? open func byteMethod( arg: Int8 ) -> Int8 { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteMethod_MethodID_4, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteMethod_MethodID_6, args: &__args, locals: &__locals ) return JNIType.toSwift( type: Int8(), from: __return ) } @@ -98,13 +126,13 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell /// public byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) - private static var byteArrayMethod_MethodID_5: jmethodID? + private static var byteArrayMethod_MethodID_7: jmethodID? open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteArrayMethod_MethodID_5, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteArrayMethod_MethodID_7, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [Int8](), from: __return ) } @@ -112,37 +140,6 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return byteArrayMethod( arg: _arg ) } - /// public void com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) - - private static var setLoopback_MethodID_6: jmethodID? - - open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_6, args: &__args, locals: &__locals ) - } - - open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { - setLoopback( loopback: _loopback ) - } - - /// public boolean com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) - - private static var booleanMethod_MethodID_7: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanMethod_MethodID_7, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - /// public byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) private static var byte2dArrayMethod_MethodID_8: jmethodID? @@ -580,62 +577,62 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell } -private typealias SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_setLoopback_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestResponderAdapter_setLoopback_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) + SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_booleanMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestResponderAdapter_booleanMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_byteMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_byteMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { +private func SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_byteArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { +private func SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_setLoopback_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloTest_TestResponderAdapter_byteMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestResponderAdapter_setLoopback_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { +private func SwiftHelloTest_TestResponderAdapter_byteMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { JNI.inNative = true; - SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_booleanMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean +private typealias SwiftHelloTest_TestResponderAdapter_byteArrayMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_booleanMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { +private func SwiftHelloTest_TestResponderAdapter_byteArrayMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) } private typealias SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? @@ -943,23 +940,23 @@ fileprivate class SwiftHelloTest_TestResponderAdapterLocal_: JNIObjectProxy Date: Mon, 7 Aug 2017 09:42:25 +0100 Subject: [PATCH 24/53] Updated for Version 2 --- com_jh/Sources/SwiftHelloBinding.swift | 21 - .../Sources/SwiftHelloBinding_Listener.swift | 165 --- .../Sources/SwiftHelloBinding_Responder.swift | 99 -- com_jh/Sources/SwiftHelloTest.swift | 21 - .../Sources/SwiftHelloTest_TestListener.swift | 1158 ----------------- .../SwiftHelloTest_TestResponderImpl.swift | 470 ------- src/com/jh/SwiftHelloBinding.java | 28 - src/com/jh/SwiftHelloTest.java | 158 --- 8 files changed, 2120 deletions(-) delete mode 100644 com_jh/Sources/SwiftHelloBinding.swift delete mode 100644 com_jh/Sources/SwiftHelloBinding_Listener.swift delete mode 100644 com_jh/Sources/SwiftHelloBinding_Responder.swift delete mode 100644 com_jh/Sources/SwiftHelloTest.swift delete mode 100644 com_jh/Sources/SwiftHelloTest_TestListener.swift delete mode 100644 com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift delete mode 100644 src/com/jh/SwiftHelloBinding.java delete mode 100644 src/com/jh/SwiftHelloTest.java diff --git a/com_jh/Sources/SwiftHelloBinding.swift b/com_jh/Sources/SwiftHelloBinding.swift deleted file mode 100644 index 085fb54..0000000 --- a/com_jh/Sources/SwiftHelloBinding.swift +++ /dev/null @@ -1,21 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 30 20:28:32 BST 2017 /// - -/// interface com.jh.SwiftHelloBinding /// - -public protocol SwiftHelloBinding: JavaProtocol { - -} - -open class SwiftHelloBindingForward: JNIObjectForward, SwiftHelloBinding { - - private static var SwiftHelloBindingJNIClass: jclass? - -} - - diff --git a/com_jh/Sources/SwiftHelloBinding_Listener.swift b/com_jh/Sources/SwiftHelloBinding_Listener.swift deleted file mode 100644 index ba74072..0000000 --- a/com_jh/Sources/SwiftHelloBinding_Listener.swift +++ /dev/null @@ -1,165 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 30 20:28:32 BST 2017 /// - -/// interface com.jh.SwiftHelloBinding$Listener /// - -public protocol SwiftHelloBinding_Listener: JavaProtocol { - - /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - - func setCacheDir( cacheDir: String? ) - func setCacheDir( _ _cacheDir: String? ) - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) - - func processNumber( number: Double ) - func processNumber( _ _number: Double ) - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) - - func processText( text: String? ) - func processText( _ _text: String? ) - -} - -open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBinding_Listener { - - private static var SwiftHelloBinding_ListenerJNIClass: jclass? - - /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - - private static var setCacheDir_MethodID_4: jmethodID? - - open func setCacheDir( cacheDir: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: cacheDir, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_4, args: &__args, locals: &__locals ) - } - - open func setCacheDir( _ _cacheDir: String? ) { - setCacheDir( cacheDir: _cacheDir ) - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) - - private static var processNumber_MethodID_5: jmethodID? - - open func processNumber( number: Double ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_5, args: &__args, locals: &__locals ) - } - - open func processNumber( _ _number: Double ) { - processNumber( number: _number ) - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) - - private static var processText_MethodID_6: jmethodID? - - open func processText( text: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.processText_MethodID_6, args: &__args, locals: &__locals ) - } - - open func processText( _ _text: String? ) { - processText( text: _text ) - } - -} - - -private typealias SwiftHelloBinding_Listener_setCacheDir_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () - -private func SwiftHelloBinding_Listener_setCacheDir_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ cacheDir: jobject? ) -> () { - SwiftHelloBinding_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).setCacheDir( JNIType.decode( type: String(), from: cacheDir ) ) -} - -private typealias SwiftHelloBinding_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> () - -private func SwiftHelloBinding_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ number: jdouble ) -> () { - SwiftHelloBinding_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processNumber( JNIType.decode( type: Double(), from: number ) ) -} - -private typealias SwiftHelloBinding_Listener_processText_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> () - -private func SwiftHelloBinding_Listener_processText_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ text: jobject? ) -> () { - SwiftHelloBinding_ListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).processText( JNIType.decode( type: String(), from: text ) ) -} - -open class SwiftHelloBinding_ListenerBase: JNIObjectProxy, SwiftHelloBinding_Listener { - - private static let proxyClass: jclass = { - var natives = [JNINativeMethod]() - - let SwiftHelloBinding_Listener_setCacheDir_0_thunk: SwiftHelloBinding_Listener_setCacheDir_0_type = SwiftHelloBinding_Listener_setCacheDir_0 - natives.append( JNINativeMethod( name: strdup("__setCacheDir"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_setCacheDir_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloBinding_Listener_processNumber_1_thunk: SwiftHelloBinding_Listener_processNumber_1_type = SwiftHelloBinding_Listener_processNumber_1 - natives.append( JNINativeMethod( name: strdup("__processNumber"), signature: strdup("(D)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processNumber_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloBinding_Listener_processText_2_thunk: SwiftHelloBinding_Listener_processText_2_type = SwiftHelloBinding_Listener_processText_2 - natives.append( JNINativeMethod( name: strdup("__processText"), signature: strdup("(Ljava/lang/String;)V"), fnPtr: unsafeBitCast( SwiftHelloBinding_Listener_processText_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloBinding_ListenerProxy" ) - withUnsafePointer(to: &natives[0]) { - nativesPtr in - if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { - JNI.report( "Unable to register java natives" ) - } - } - - return JNI.api.NewGlobalRef( JNI.env, clazz )! - }() - - public convenience init() { - self.init( javaObject: nil ) - } - - public required init( javaObject: jobject? ) { - super.init( javaObject: javaObject ) - createProxy( className: "org/genie/com_jh/SwiftHelloBinding_ListenerProxy", classObject: SwiftHelloBinding_ListenerBase.proxyClass ) - } - - static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> SwiftHelloBinding_ListenerBase { - return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloBinding_ListenerBase.self ) - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - - open func setCacheDir( cacheDir: String? ) /**/ { - } - - open func setCacheDir( _ _cacheDir: String? ) /**/ { - setCacheDir( cacheDir: _cacheDir ) - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processNumber(double) - - open func processNumber( number: Double ) /**/ { - } - - open func processNumber( _ _number: Double ) /**/ { - processNumber( number: _number ) - } - - /// public abstract void com.jh.SwiftHelloBinding$Listener.processText(java.lang.String) - - open func processText( text: String? ) /**/ { - } - - open func processText( _ _text: String? ) /**/ { - processText( text: _text ) - } - -} diff --git a/com_jh/Sources/SwiftHelloBinding_Responder.swift b/com_jh/Sources/SwiftHelloBinding_Responder.swift deleted file mode 100644 index 03ea295..0000000 --- a/com_jh/Sources/SwiftHelloBinding_Responder.swift +++ /dev/null @@ -1,99 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 30 20:28:32 BST 2017 /// - -/// interface com.jh.SwiftHelloBinding$Responder /// - -public protocol SwiftHelloBinding_Responder: JavaProtocol { - - /// public abstract java.lang.String[] com.jh.SwiftHelloBinding$Responder.debug(java.lang.String) - - func debug( msg: String? ) -> [String]! - func debug( _ _msg: String? ) -> [String]! - - /// public abstract void com.jh.SwiftHelloBinding$Responder.processedText(java.lang.String) - - func processedText( text: String? ) - func processedText( _ _text: String? ) - - /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHelloBinding$Responder.testResponder() - - func testResponder() -> SwiftHelloTest_TestListener! - - /// public abstract void com.jh.SwiftHelloBinding$Responder.processedNumber(double) - - func processedNumber( number: Double ) - func processedNumber( _ _number: Double ) - -} - -open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBinding_Responder { - - private static var SwiftHelloBinding_ResponderJNIClass: jclass? - - /// public abstract java.lang.String[] com.jh.SwiftHelloBinding$Responder.debug(java.lang.String) - - private static var debug_MethodID_5: jmethodID? - - open func debug( msg: String? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: msg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_5, args: &__args, locals: &__locals ) - return JNIType.decode( type: [String](), from: __return ) - } - - open func debug( _ _msg: String? ) -> [String]! { - return debug( msg: _msg ) - } - - /// public abstract void com.jh.SwiftHelloBinding$Responder.processedText(java.lang.String) - - private static var processedText_MethodID_6: jmethodID? - - open func processedText( text: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_6, args: &__args, locals: &__locals ) - } - - open func processedText( _ _text: String? ) { - processedText( text: _text ) - } - - /// public abstract com.jh.SwiftHelloTest$TestListener com.jh.SwiftHelloBinding$Responder.testResponder() - - private static var testResponder_MethodID_7: jmethodID? - - open func testResponder() -> SwiftHelloTest_TestListener! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "()Lcom/jh/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_7, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil - } - - - /// public abstract void com.jh.SwiftHelloBinding$Responder.processedNumber(double) - - private static var processedNumber_MethodID_8: jmethodID? - - open func processedNumber( number: Double ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_8, args: &__args, locals: &__locals ) - } - - open func processedNumber( _ _number: Double ) { - processedNumber( number: _number ) - } - -} - - diff --git a/com_jh/Sources/SwiftHelloTest.swift b/com_jh/Sources/SwiftHelloTest.swift deleted file mode 100644 index a7608af..0000000 --- a/com_jh/Sources/SwiftHelloTest.swift +++ /dev/null @@ -1,21 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 30 20:28:33 BST 2017 /// - -/// interface com.jh.SwiftHelloTest /// - -public protocol SwiftHelloTest: JavaProtocol { - -} - -open class SwiftHelloTestForward: JNIObjectForward, SwiftHelloTest { - - private static var SwiftHelloTestJNIClass: jclass? - -} - - diff --git a/com_jh/Sources/SwiftHelloTest_TestListener.swift b/com_jh/Sources/SwiftHelloTest_TestListener.swift deleted file mode 100644 index 3df5dd6..0000000 --- a/com_jh/Sources/SwiftHelloTest_TestListener.swift +++ /dev/null @@ -1,1158 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 30 20:28:32 BST 2017 /// - -/// interface com.jh.SwiftHelloTest$TestListener /// - -public protocol SwiftHelloTest_TestListener: JavaProtocol { - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - - func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! - func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! - - /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - - func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! - func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! - - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - func booleanMethod( arg: Bool ) -> Bool - func booleanMethod( _ _arg: Bool ) -> Bool - - /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - - func byteMethod( arg: Int8 ) -> Int8 - func byteMethod( _ _arg: Int8 ) -> Int8 - - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! - func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! - - /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) - - func charMethod( arg: UInt16 ) -> UInt16 - func charMethod( _ _arg: UInt16 ) -> UInt16 - - /// public abstract char[] com.jh.SwiftHelloTest$TestListener.charArrayMethod(char[]) - - func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! - func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! - - /// public abstract char[][] com.jh.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) - - func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! - func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! - - /// public abstract short com.jh.SwiftHelloTest$TestListener.shortMethod(short) - - func shortMethod( arg: Int16 ) -> Int16 - func shortMethod( _ _arg: Int16 ) -> Int16 - - /// public abstract short[] com.jh.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - - func shortArrayMethod( arg: [Int16]? ) -> [Int16]! - func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! - - /// public abstract short[][] com.jh.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - - func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! - func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! - - /// public abstract int com.jh.SwiftHelloTest$TestListener.intMethod(int) - - func intMethod( arg: Int ) -> Int - func intMethod( _ _arg: Int ) -> Int - - /// public abstract int[] com.jh.SwiftHelloTest$TestListener.intArrayMethod(int[]) - - func intArrayMethod( arg: [Int32]? ) -> [Int32]! - func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! - - /// public abstract int[][] com.jh.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - - func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! - func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! - - /// public abstract long com.jh.SwiftHelloTest$TestListener.longMethod(long) - - func longMethod( arg: Int64 ) -> Int64 - func longMethod( _ _arg: Int64 ) -> Int64 - - /// public abstract long[] com.jh.SwiftHelloTest$TestListener.longArrayMethod(long[]) - - func longArrayMethod( arg: [Int64]? ) -> [Int64]! - func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! - - /// public abstract long[][] com.jh.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - - func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! - func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! - - /// public abstract float com.jh.SwiftHelloTest$TestListener.floatMethod(float) - - func floatMethod( arg: Float ) -> Float - func floatMethod( _ _arg: Float ) -> Float - - /// public abstract float[] com.jh.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - - func floatArrayMethod( arg: [Float]? ) -> [Float]! - func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! - - /// public abstract float[][] com.jh.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - - func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! - func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! - - /// public abstract double com.jh.SwiftHelloTest$TestListener.doubleMethod(double) - - func doubleMethod( arg: Double ) -> Double - func doubleMethod( _ _arg: Double ) -> Double - - /// public abstract double[] com.jh.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - - func doubleArrayMethod( arg: [Double]? ) -> [Double]! - func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! - - /// public abstract double[][] com.jh.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - - func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! - func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! - - /// public abstract java.lang.String com.jh.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - - func StringMethod( arg: String? ) -> String! - func StringMethod( _ _arg: String? ) -> String! - - /// public abstract java.lang.String[] com.jh.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - - func StringArrayMethod( arg: [String]? ) -> [String]! - func StringArrayMethod( _ _arg: [String]? ) -> [String]! - - /// public abstract java.lang.String[][] com.jh.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - - func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! - func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! - -} - -open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_TestListener { - - private static var SwiftHelloTest_TestListenerJNIClass: jclass? - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - - private static var booleanArrayMethod_MethodID_28: jmethodID? - - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) - } - - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) - } - - /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - - private static var boolean2dArrayMethod_MethodID_29: jmethodID? - - open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Bool]](), from: __return ) - } - - open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { - return boolean2dArrayMethod( arg: _arg ) - } - - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - private static var booleanMethod_MethodID_30: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_30, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - - /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - - private static var byteMethod_MethodID_31: jmethodID? - - open func byteMethod( arg: Int8 ) -> Int8 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_31, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int8(), from: __return ) - } - - open func byteMethod( _ _arg: Int8 ) -> Int8 { - return byteMethod( arg: _arg ) - } - - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - private static var byteArrayMethod_MethodID_32: jmethodID? - - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_32, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) - } - - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) - } - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - private static var byte2dArrayMethod_MethodID_33: jmethodID? - - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestListenerForward.byte2dArrayMethod_MethodID_33, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int8]](), from: __return ) - } - - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg: _arg ) - } - - /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) - - private static var charMethod_MethodID_34: jmethodID? - - open func charMethod( arg: UInt16 ) -> UInt16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestListenerForward.charMethod_MethodID_34, args: &__args, locals: &__locals ) - return JNIType.decode( type: UInt16(), from: __return ) - } - - open func charMethod( _ _arg: UInt16 ) -> UInt16 { - return charMethod( arg: _arg ) - } - - /// public abstract char[] com.jh.SwiftHelloTest$TestListener.charArrayMethod(char[]) - - private static var charArrayMethod_MethodID_35: jmethodID? - - open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestListenerForward.charArrayMethod_MethodID_35, args: &__args, locals: &__locals ) - return JNIType.decode( type: [UInt16](), from: __return ) - } - - open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { - return charArrayMethod( arg: _arg ) - } - - /// public abstract char[][] com.jh.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) - - private static var char2dArrayMethod_MethodID_36: jmethodID? - - open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestListenerForward.char2dArrayMethod_MethodID_36, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[UInt16]](), from: __return ) - } - - open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { - return char2dArrayMethod( arg: _arg ) - } - - /// public abstract short com.jh.SwiftHelloTest$TestListener.shortMethod(short) - - private static var shortMethod_MethodID_37: jmethodID? - - open func shortMethod( arg: Int16 ) -> Int16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestListenerForward.shortMethod_MethodID_37, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int16(), from: __return ) - } - - open func shortMethod( _ _arg: Int16 ) -> Int16 { - return shortMethod( arg: _arg ) - } - - /// public abstract short[] com.jh.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - - private static var shortArrayMethod_MethodID_38: jmethodID? - - open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestListenerForward.shortArrayMethod_MethodID_38, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int16](), from: __return ) - } - - open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { - return shortArrayMethod( arg: _arg ) - } - - /// public abstract short[][] com.jh.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - - private static var short2dArrayMethod_MethodID_39: jmethodID? - - open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestListenerForward.short2dArrayMethod_MethodID_39, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int16]](), from: __return ) - } - - open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { - return short2dArrayMethod( arg: _arg ) - } - - /// public abstract int com.jh.SwiftHelloTest$TestListener.intMethod(int) - - private static var intMethod_MethodID_40: jmethodID? - - open func intMethod( arg: Int ) -> Int { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestListenerForward.intMethod_MethodID_40, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int(), from: __return ) - } - - open func intMethod( _ _arg: Int ) -> Int { - return intMethod( arg: _arg ) - } - - /// public abstract int[] com.jh.SwiftHelloTest$TestListener.intArrayMethod(int[]) - - private static var intArrayMethod_MethodID_41: jmethodID? - - open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestListenerForward.intArrayMethod_MethodID_41, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int32](), from: __return ) - } - - open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { - return intArrayMethod( arg: _arg ) - } - - /// public abstract int[][] com.jh.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - - private static var int2dArrayMethod_MethodID_42: jmethodID? - - open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestListenerForward.int2dArrayMethod_MethodID_42, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int32]](), from: __return ) - } - - open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { - return int2dArrayMethod( arg: _arg ) - } - - /// public abstract long com.jh.SwiftHelloTest$TestListener.longMethod(long) - - private static var longMethod_MethodID_43: jmethodID? - - open func longMethod( arg: Int64 ) -> Int64 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestListenerForward.longMethod_MethodID_43, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int64(), from: __return ) - } - - open func longMethod( _ _arg: Int64 ) -> Int64 { - return longMethod( arg: _arg ) - } - - /// public abstract long[] com.jh.SwiftHelloTest$TestListener.longArrayMethod(long[]) - - private static var longArrayMethod_MethodID_44: jmethodID? - - open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestListenerForward.longArrayMethod_MethodID_44, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int64](), from: __return ) - } - - open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { - return longArrayMethod( arg: _arg ) - } - - /// public abstract long[][] com.jh.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - - private static var long2dArrayMethod_MethodID_45: jmethodID? - - open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestListenerForward.long2dArrayMethod_MethodID_45, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int64]](), from: __return ) - } - - open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { - return long2dArrayMethod( arg: _arg ) - } - - /// public abstract float com.jh.SwiftHelloTest$TestListener.floatMethod(float) - - private static var floatMethod_MethodID_46: jmethodID? - - open func floatMethod( arg: Float ) -> Float { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestListenerForward.floatMethod_MethodID_46, args: &__args, locals: &__locals ) - return JNIType.decode( type: Float(), from: __return ) - } - - open func floatMethod( _ _arg: Float ) -> Float { - return floatMethod( arg: _arg ) - } - - /// public abstract float[] com.jh.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - - private static var floatArrayMethod_MethodID_47: jmethodID? - - open func floatArrayMethod( arg: [Float]? ) -> [Float]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestListenerForward.floatArrayMethod_MethodID_47, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Float](), from: __return ) - } - - open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! { - return floatArrayMethod( arg: _arg ) - } - - /// public abstract float[][] com.jh.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - - private static var float2dArrayMethod_MethodID_48: jmethodID? - - open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestListenerForward.float2dArrayMethod_MethodID_48, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Float]](), from: __return ) - } - - open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { - return float2dArrayMethod( arg: _arg ) - } - - /// public abstract double com.jh.SwiftHelloTest$TestListener.doubleMethod(double) - - private static var doubleMethod_MethodID_49: jmethodID? - - open func doubleMethod( arg: Double ) -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestListenerForward.doubleMethod_MethodID_49, args: &__args, locals: &__locals ) - return JNIType.decode( type: Double(), from: __return ) - } - - open func doubleMethod( _ _arg: Double ) -> Double { - return doubleMethod( arg: _arg ) - } - - /// public abstract double[] com.jh.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - - private static var doubleArrayMethod_MethodID_50: jmethodID? - - open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestListenerForward.doubleArrayMethod_MethodID_50, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Double](), from: __return ) - } - - open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { - return doubleArrayMethod( arg: _arg ) - } - - /// public abstract double[][] com.jh.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - - private static var double2dArrayMethod_MethodID_51: jmethodID? - - open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestListenerForward.double2dArrayMethod_MethodID_51, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Double]](), from: __return ) - } - - open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { - return double2dArrayMethod( arg: _arg ) - } - - /// public abstract java.lang.String com.jh.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - - private static var StringMethod_MethodID_52: jmethodID? - - open func StringMethod( arg: String? ) -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringMethod_MethodID_52, args: &__args, locals: &__locals ) - return JNIType.decode( type: String(), from: __return ) - } - - open func StringMethod( _ _arg: String? ) -> String! { - return StringMethod( arg: _arg ) - } - - /// public abstract java.lang.String[] com.jh.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - - private static var StringArrayMethod_MethodID_53: jmethodID? - - open func StringArrayMethod( arg: [String]? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringArrayMethod_MethodID_53, args: &__args, locals: &__locals ) - return JNIType.decode( type: [String](), from: __return ) - } - - open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { - return StringArrayMethod( arg: _arg ) - } - - /// public abstract java.lang.String[][] com.jh.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - - private static var String2dArrayMethod_MethodID_54: jmethodID? - - open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.String2dArrayMethod_MethodID_54, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[String]](), from: __return ) - } - - open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { - return String2dArrayMethod( arg: _arg ) - } - -} - - -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_booleanArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanArrayMethod( JNIType.decode( type: [Bool](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).boolean2dArrayMethod( JNIType.decode( type: [[Bool]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_booleanMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jboolean ) -> jboolean - -private func SwiftHelloTest_TestListener_booleanMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jboolean ) -> jboolean { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).booleanMethod( JNIType.decode( type: Bool(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).z -} - -private typealias SwiftHelloTest_TestListener_byteMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jbyte ) -> jbyte - -private func SwiftHelloTest_TestListener_byteMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jbyte ) -> jbyte { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteMethod( JNIType.decode( type: Int8(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).b -} - -private typealias SwiftHelloTest_TestListener_byteArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_byteArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byteArrayMethod( JNIType.decode( type: [Int8](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_byte2dArrayMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).byte2dArrayMethod( JNIType.decode( type: [[Int8]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_charMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jchar ) -> jchar - -private func SwiftHelloTest_TestListener_charMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jchar ) -> jchar { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).charMethod( JNIType.decode( type: UInt16(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).c -} - -private typealias SwiftHelloTest_TestListener_charArrayMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_charArrayMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).charArrayMethod( JNIType.decode( type: [UInt16](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_char2dArrayMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_char2dArrayMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).char2dArrayMethod( JNIType.decode( type: [[UInt16]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_shortMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jshort ) -> jshort - -private func SwiftHelloTest_TestListener_shortMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jshort ) -> jshort { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).shortMethod( JNIType.decode( type: Int16(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).s -} - -private typealias SwiftHelloTest_TestListener_shortArrayMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_shortArrayMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).shortArrayMethod( JNIType.decode( type: [Int16](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_short2dArrayMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_short2dArrayMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).short2dArrayMethod( JNIType.decode( type: [[Int16]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_intMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jint ) -> jint - -private func SwiftHelloTest_TestListener_intMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jint ) -> jint { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).intMethod( JNIType.decode( type: Int(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).i -} - -private typealias SwiftHelloTest_TestListener_intArrayMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_intArrayMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).intArrayMethod( JNIType.decode( type: [Int32](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_int2dArrayMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_int2dArrayMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).int2dArrayMethod( JNIType.decode( type: [[Int32]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_longMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jlong - -private func SwiftHelloTest_TestListener_longMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jlong ) -> jlong { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).longMethod( JNIType.decode( type: Int64(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).j -} - -private typealias SwiftHelloTest_TestListener_longArrayMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_longArrayMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).longArrayMethod( JNIType.decode( type: [Int64](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_long2dArrayMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_long2dArrayMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).long2dArrayMethod( JNIType.decode( type: [[Int64]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_floatMethod_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jfloat ) -> jfloat - -private func SwiftHelloTest_TestListener_floatMethod_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jfloat ) -> jfloat { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).floatMethod( JNIType.decode( type: Float(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).f -} - -private typealias SwiftHelloTest_TestListener_floatArrayMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_floatArrayMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).floatArrayMethod( JNIType.decode( type: [Float](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_float2dArrayMethod_20_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_float2dArrayMethod_20( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).float2dArrayMethod( JNIType.decode( type: [[Float]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_doubleMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jdouble ) -> jdouble - -private func SwiftHelloTest_TestListener_doubleMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jdouble ) -> jdouble { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).doubleMethod( JNIType.decode( type: Double(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).d -} - -private typealias SwiftHelloTest_TestListener_doubleArrayMethod_22_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_doubleArrayMethod_22( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).doubleArrayMethod( JNIType.decode( type: [Double](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_double2dArrayMethod_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_double2dArrayMethod_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).double2dArrayMethod( JNIType.decode( type: [[Double]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_StringMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_StringMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).StringMethod( JNIType.decode( type: String(), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_StringArrayMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_StringArrayMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).StringArrayMethod( JNIType.decode( type: [String](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -private typealias SwiftHelloTest_TestListener_String2dArrayMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jobject? ) -> jobject? - -private func SwiftHelloTest_TestListener_String2dArrayMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ arg: jobject? ) -> jobject? { - let __return = SwiftHelloTest_TestListenerBase.swiftObject( jniEnv: __env, javaObject: __this ).String2dArrayMethod( JNIType.decode( type: [[String]](), from: arg ) ) - return JNIType.encode( value: __return, locals: nil ).l -} - -open class SwiftHelloTest_TestListenerBase: JNIObjectProxy, SwiftHelloTest_TestListener { - - private static let proxyClass: jclass = { - var natives = [JNINativeMethod]() - - let SwiftHelloTest_TestListener_booleanArrayMethod_0_thunk: SwiftHelloTest_TestListener_booleanArrayMethod_0_type = SwiftHelloTest_TestListener_booleanArrayMethod_0 - natives.append( JNINativeMethod( name: strdup("__booleanArrayMethod"), signature: strdup("([Z)[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanArrayMethod_0_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk: SwiftHelloTest_TestListener_boolean2dArrayMethod_1_type = SwiftHelloTest_TestListener_boolean2dArrayMethod_1 - natives.append( JNINativeMethod( name: strdup("__boolean2dArrayMethod"), signature: strdup("([[Z)[[Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_boolean2dArrayMethod_1_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_booleanMethod_2_thunk: SwiftHelloTest_TestListener_booleanMethod_2_type = SwiftHelloTest_TestListener_booleanMethod_2 - natives.append( JNINativeMethod( name: strdup("__booleanMethod"), signature: strdup("(Z)Z"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_booleanMethod_2_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_byteMethod_3_thunk: SwiftHelloTest_TestListener_byteMethod_3_type = SwiftHelloTest_TestListener_byteMethod_3 - natives.append( JNINativeMethod( name: strdup("__byteMethod"), signature: strdup("(B)B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteMethod_3_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_byteArrayMethod_4_thunk: SwiftHelloTest_TestListener_byteArrayMethod_4_type = SwiftHelloTest_TestListener_byteArrayMethod_4 - natives.append( JNINativeMethod( name: strdup("__byteArrayMethod"), signature: strdup("([B)[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byteArrayMethod_4_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk: SwiftHelloTest_TestListener_byte2dArrayMethod_5_type = SwiftHelloTest_TestListener_byte2dArrayMethod_5 - natives.append( JNINativeMethod( name: strdup("__byte2dArrayMethod"), signature: strdup("([[B)[[B"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_byte2dArrayMethod_5_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_charMethod_6_thunk: SwiftHelloTest_TestListener_charMethod_6_type = SwiftHelloTest_TestListener_charMethod_6 - natives.append( JNINativeMethod( name: strdup("__charMethod"), signature: strdup("(C)C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charMethod_6_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_charArrayMethod_7_thunk: SwiftHelloTest_TestListener_charArrayMethod_7_type = SwiftHelloTest_TestListener_charArrayMethod_7 - natives.append( JNINativeMethod( name: strdup("__charArrayMethod"), signature: strdup("([C)[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_charArrayMethod_7_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_char2dArrayMethod_8_thunk: SwiftHelloTest_TestListener_char2dArrayMethod_8_type = SwiftHelloTest_TestListener_char2dArrayMethod_8 - natives.append( JNINativeMethod( name: strdup("__char2dArrayMethod"), signature: strdup("([[C)[[C"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_char2dArrayMethod_8_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_shortMethod_9_thunk: SwiftHelloTest_TestListener_shortMethod_9_type = SwiftHelloTest_TestListener_shortMethod_9 - natives.append( JNINativeMethod( name: strdup("__shortMethod"), signature: strdup("(S)S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortMethod_9_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_shortArrayMethod_10_thunk: SwiftHelloTest_TestListener_shortArrayMethod_10_type = SwiftHelloTest_TestListener_shortArrayMethod_10 - natives.append( JNINativeMethod( name: strdup("__shortArrayMethod"), signature: strdup("([S)[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_shortArrayMethod_10_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_short2dArrayMethod_11_thunk: SwiftHelloTest_TestListener_short2dArrayMethod_11_type = SwiftHelloTest_TestListener_short2dArrayMethod_11 - natives.append( JNINativeMethod( name: strdup("__short2dArrayMethod"), signature: strdup("([[S)[[S"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_short2dArrayMethod_11_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_intMethod_12_thunk: SwiftHelloTest_TestListener_intMethod_12_type = SwiftHelloTest_TestListener_intMethod_12 - natives.append( JNINativeMethod( name: strdup("__intMethod"), signature: strdup("(I)I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intMethod_12_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_intArrayMethod_13_thunk: SwiftHelloTest_TestListener_intArrayMethod_13_type = SwiftHelloTest_TestListener_intArrayMethod_13 - natives.append( JNINativeMethod( name: strdup("__intArrayMethod"), signature: strdup("([I)[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_intArrayMethod_13_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_int2dArrayMethod_14_thunk: SwiftHelloTest_TestListener_int2dArrayMethod_14_type = SwiftHelloTest_TestListener_int2dArrayMethod_14 - natives.append( JNINativeMethod( name: strdup("__int2dArrayMethod"), signature: strdup("([[I)[[I"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_int2dArrayMethod_14_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_longMethod_15_thunk: SwiftHelloTest_TestListener_longMethod_15_type = SwiftHelloTest_TestListener_longMethod_15 - natives.append( JNINativeMethod( name: strdup("__longMethod"), signature: strdup("(J)J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longMethod_15_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_longArrayMethod_16_thunk: SwiftHelloTest_TestListener_longArrayMethod_16_type = SwiftHelloTest_TestListener_longArrayMethod_16 - natives.append( JNINativeMethod( name: strdup("__longArrayMethod"), signature: strdup("([J)[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_longArrayMethod_16_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_long2dArrayMethod_17_thunk: SwiftHelloTest_TestListener_long2dArrayMethod_17_type = SwiftHelloTest_TestListener_long2dArrayMethod_17 - natives.append( JNINativeMethod( name: strdup("__long2dArrayMethod"), signature: strdup("([[J)[[J"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_long2dArrayMethod_17_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_floatMethod_18_thunk: SwiftHelloTest_TestListener_floatMethod_18_type = SwiftHelloTest_TestListener_floatMethod_18 - natives.append( JNINativeMethod( name: strdup("__floatMethod"), signature: strdup("(F)F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatMethod_18_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_floatArrayMethod_19_thunk: SwiftHelloTest_TestListener_floatArrayMethod_19_type = SwiftHelloTest_TestListener_floatArrayMethod_19 - natives.append( JNINativeMethod( name: strdup("__floatArrayMethod"), signature: strdup("([F)[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_floatArrayMethod_19_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_float2dArrayMethod_20_thunk: SwiftHelloTest_TestListener_float2dArrayMethod_20_type = SwiftHelloTest_TestListener_float2dArrayMethod_20 - natives.append( JNINativeMethod( name: strdup("__float2dArrayMethod"), signature: strdup("([[F)[[F"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_float2dArrayMethod_20_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_doubleMethod_21_thunk: SwiftHelloTest_TestListener_doubleMethod_21_type = SwiftHelloTest_TestListener_doubleMethod_21 - natives.append( JNINativeMethod( name: strdup("__doubleMethod"), signature: strdup("(D)D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleMethod_21_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_doubleArrayMethod_22_thunk: SwiftHelloTest_TestListener_doubleArrayMethod_22_type = SwiftHelloTest_TestListener_doubleArrayMethod_22 - natives.append( JNINativeMethod( name: strdup("__doubleArrayMethod"), signature: strdup("([D)[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_doubleArrayMethod_22_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_double2dArrayMethod_23_thunk: SwiftHelloTest_TestListener_double2dArrayMethod_23_type = SwiftHelloTest_TestListener_double2dArrayMethod_23 - natives.append( JNINativeMethod( name: strdup("__double2dArrayMethod"), signature: strdup("([[D)[[D"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_double2dArrayMethod_23_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_StringMethod_24_thunk: SwiftHelloTest_TestListener_StringMethod_24_type = SwiftHelloTest_TestListener_StringMethod_24 - natives.append( JNINativeMethod( name: strdup("__StringMethod"), signature: strdup("(Ljava/lang/String;)Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringMethod_24_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_StringArrayMethod_25_thunk: SwiftHelloTest_TestListener_StringArrayMethod_25_type = SwiftHelloTest_TestListener_StringArrayMethod_25 - natives.append( JNINativeMethod( name: strdup("__StringArrayMethod"), signature: strdup("([Ljava/lang/String;)[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_StringArrayMethod_25_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let SwiftHelloTest_TestListener_String2dArrayMethod_26_thunk: SwiftHelloTest_TestListener_String2dArrayMethod_26_type = SwiftHelloTest_TestListener_String2dArrayMethod_26 - natives.append( JNINativeMethod( name: strdup("__String2dArrayMethod"), signature: strdup("([[Ljava/lang/String;)[[Ljava/lang/String;"), fnPtr: unsafeBitCast( SwiftHelloTest_TestListener_String2dArrayMethod_26_thunk, to: UnsafeMutableRawPointer.self ) ) ) - - let clazz = JNI.FindClass( "org/genie/com_jh/SwiftHelloTest_TestListenerProxy" ) - withUnsafePointer(to: &natives[0]) { - nativesPtr in - if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) { - JNI.report( "Unable to register java natives" ) - } - } - - return JNI.api.NewGlobalRef( JNI.env, clazz )! - }() - - public convenience init() { - self.init( javaObject: nil ) - } - - public required init( javaObject: jobject? ) { - super.init( javaObject: javaObject ) - createProxy( className: "org/genie/com_jh/SwiftHelloTest_TestListenerProxy", classObject: SwiftHelloTest_TestListenerBase.proxyClass ) - } - - static func swiftObject( jniEnv: UnsafeMutablePointer?, javaObject: jobject? ) -> SwiftHelloTest_TestListenerBase { - return unsafeBitCast( swiftPointer( jniEnv: jniEnv, object: javaObject ), to: SwiftHelloTest_TestListenerBase.self ) - } - - /// public abstract boolean[] com.jh.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { - return nil - } - - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { - return booleanArrayMethod( arg: _arg ) - } - - /// public abstract boolean[][] com.jh.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - - open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! /**/ { - return nil - } - - open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! /**/ { - return boolean2dArrayMethod( arg: _arg ) - } - - /// public abstract boolean com.jh.SwiftHelloTest$TestListener.booleanMethod(boolean) - - open func booleanMethod( arg: Bool ) -> Bool /**/ { - return false - } - - open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { - return booleanMethod( arg: _arg ) - } - - /// public abstract byte com.jh.SwiftHelloTest$TestListener.byteMethod(byte) - - open func byteMethod( arg: Int8 ) -> Int8 /**/ { - return 0 - } - - open func byteMethod( _ _arg: Int8 ) -> Int8 /**/ { - return byteMethod( arg: _arg ) - } - - /// public abstract byte[] com.jh.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { - return nil - } - - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { - return byteArrayMethod( arg: _arg ) - } - - /// public abstract byte[][] com.jh.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { - return nil - } - - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! /**/ { - return byte2dArrayMethod( arg: _arg ) - } - - /// public abstract char com.jh.SwiftHelloTest$TestListener.charMethod(char) - - open func charMethod( arg: UInt16 ) -> UInt16 /**/ { - return 0 - } - - open func charMethod( _ _arg: UInt16 ) -> UInt16 /**/ { - return charMethod( arg: _arg ) - } - - /// public abstract char[] com.jh.SwiftHelloTest$TestListener.charArrayMethod(char[]) - - open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! /**/ { - return nil - } - - open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! /**/ { - return charArrayMethod( arg: _arg ) - } - - /// public abstract char[][] com.jh.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) - - open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { - return nil - } - - open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { - return char2dArrayMethod( arg: _arg ) - } - - /// public abstract short com.jh.SwiftHelloTest$TestListener.shortMethod(short) - - open func shortMethod( arg: Int16 ) -> Int16 /**/ { - return 0 - } - - open func shortMethod( _ _arg: Int16 ) -> Int16 /**/ { - return shortMethod( arg: _arg ) - } - - /// public abstract short[] com.jh.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - - open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! /**/ { - return nil - } - - open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! /**/ { - return shortArrayMethod( arg: _arg ) - } - - /// public abstract short[][] com.jh.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - - open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! /**/ { - return nil - } - - open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! /**/ { - return short2dArrayMethod( arg: _arg ) - } - - /// public abstract int com.jh.SwiftHelloTest$TestListener.intMethod(int) - - open func intMethod( arg: Int ) -> Int /**/ { - return 0 - } - - open func intMethod( _ _arg: Int ) -> Int /**/ { - return intMethod( arg: _arg ) - } - - /// public abstract int[] com.jh.SwiftHelloTest$TestListener.intArrayMethod(int[]) - - open func intArrayMethod( arg: [Int32]? ) -> [Int32]! /**/ { - return nil - } - - open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! /**/ { - return intArrayMethod( arg: _arg ) - } - - /// public abstract int[][] com.jh.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - - open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! /**/ { - return nil - } - - open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! /**/ { - return int2dArrayMethod( arg: _arg ) - } - - /// public abstract long com.jh.SwiftHelloTest$TestListener.longMethod(long) - - open func longMethod( arg: Int64 ) -> Int64 /**/ { - return 0 - } - - open func longMethod( _ _arg: Int64 ) -> Int64 /**/ { - return longMethod( arg: _arg ) - } - - /// public abstract long[] com.jh.SwiftHelloTest$TestListener.longArrayMethod(long[]) - - open func longArrayMethod( arg: [Int64]? ) -> [Int64]! /**/ { - return nil - } - - open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! /**/ { - return longArrayMethod( arg: _arg ) - } - - /// public abstract long[][] com.jh.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - - open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! /**/ { - return nil - } - - open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! /**/ { - return long2dArrayMethod( arg: _arg ) - } - - /// public abstract float com.jh.SwiftHelloTest$TestListener.floatMethod(float) - - open func floatMethod( arg: Float ) -> Float /**/ { - return 0 - } - - open func floatMethod( _ _arg: Float ) -> Float /**/ { - return floatMethod( arg: _arg ) - } - - /// public abstract float[] com.jh.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - - open func floatArrayMethod( arg: [Float]? ) -> [Float]! /**/ { - return nil - } - - open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! /**/ { - return floatArrayMethod( arg: _arg ) - } - - /// public abstract float[][] com.jh.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - - open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! /**/ { - return nil - } - - open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! /**/ { - return float2dArrayMethod( arg: _arg ) - } - - /// public abstract double com.jh.SwiftHelloTest$TestListener.doubleMethod(double) - - open func doubleMethod( arg: Double ) -> Double /**/ { - return 0 - } - - open func doubleMethod( _ _arg: Double ) -> Double /**/ { - return doubleMethod( arg: _arg ) - } - - /// public abstract double[] com.jh.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - - open func doubleArrayMethod( arg: [Double]? ) -> [Double]! /**/ { - return nil - } - - open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! /**/ { - return doubleArrayMethod( arg: _arg ) - } - - /// public abstract double[][] com.jh.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - - open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! /**/ { - return nil - } - - open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! /**/ { - return double2dArrayMethod( arg: _arg ) - } - - /// public abstract java.lang.String com.jh.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - - open func StringMethod( arg: String? ) -> String! /**/ { - return nil - } - - open func StringMethod( _ _arg: String? ) -> String! /**/ { - return StringMethod( arg: _arg ) - } - - /// public abstract java.lang.String[] com.jh.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - - open func StringArrayMethod( arg: [String]? ) -> [String]! /**/ { - return nil - } - - open func StringArrayMethod( _ _arg: [String]? ) -> [String]! /**/ { - return StringArrayMethod( arg: _arg ) - } - - /// public abstract java.lang.String[][] com.jh.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - - open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! /**/ { - return nil - } - - open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! /**/ { - return String2dArrayMethod( arg: _arg ) - } - -} diff --git a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift b/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift deleted file mode 100644 index a5fcc19..0000000 --- a/com_jh/Sources/SwiftHelloTest_TestResponderImpl.swift +++ /dev/null @@ -1,470 +0,0 @@ - -import java_swift -import java_lang - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sun Jul 30 20:28:32 BST 2017 /// - -/// class com.jh.SwiftHelloTest$TestResponderImpl /// - -open class SwiftHelloTest_TestResponderImpl: java_lang.JavaObject, SwiftHelloTest_TestListener { - - public convenience init?( casting object: java_lang.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { - self.init( javaObject: nil ) - if !object.validDownCast( toJavaClass: "com.jh.SwiftHelloTest$TestResponderImpl", file, line ) { - return nil - } - object.withJavaObject { - self.javaObject = $0 - } - } - - private static var SwiftHelloTest_TestResponderImplJNIClass: jclass? - - /// public com.jh.SwiftHelloTest$TestResponderImpl() - - private static var new_MethodID_1: jmethodID? - - public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/jh/SwiftHelloTest$TestResponderImpl", classCache: &SwiftHelloTest_TestResponderImpl.SwiftHelloTest_TestResponderImplJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_TestResponderImpl.new_MethodID_1, args: &__args, locals: &__locals ) - self.init( javaObject: __object ) - JNI.DeleteLocalRef( __object ) - } - - /// public boolean[] com.jh.SwiftHelloTest$TestResponderImpl.booleanArrayMethod(boolean[]) - - private static var booleanArrayMethod_MethodID_2: jmethodID? - - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanArrayMethod_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Bool](), from: __return ) - } - - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) - } - - /// public boolean[][] com.jh.SwiftHelloTest$TestResponderImpl.boolean2dArrayMethod(boolean[][]) - - private static var boolean2dArrayMethod_MethodID_3: jmethodID? - - open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderImpl.boolean2dArrayMethod_MethodID_3, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Bool]](), from: __return ) - } - - open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { - return boolean2dArrayMethod( arg: _arg ) - } - - /// public boolean com.jh.SwiftHelloTest$TestResponderImpl.booleanMethod(boolean) - - private static var booleanMethod_MethodID_4: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderImpl.booleanMethod_MethodID_4, args: &__args, locals: &__locals ) - return JNIType.decode( type: Bool(), from: __return ) - } - - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) - } - - /// public byte com.jh.SwiftHelloTest$TestResponderImpl.byteMethod(byte) - - private static var byteMethod_MethodID_5: jmethodID? - - open func byteMethod( arg: Int8 ) -> Int8 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderImpl.byteMethod_MethodID_5, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int8(), from: __return ) - } - - open func byteMethod( _ _arg: Int8 ) -> Int8 { - return byteMethod( arg: _arg ) - } - - /// public byte[] com.jh.SwiftHelloTest$TestResponderImpl.byteArrayMethod(byte[]) - - private static var byteArrayMethod_MethodID_6: jmethodID? - - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderImpl.byteArrayMethod_MethodID_6, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int8](), from: __return ) - } - - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) - } - - /// public byte[][] com.jh.SwiftHelloTest$TestResponderImpl.byte2dArrayMethod(byte[][]) - - private static var byte2dArrayMethod_MethodID_7: jmethodID? - - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestResponderImpl.byte2dArrayMethod_MethodID_7, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int8]](), from: __return ) - } - - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg: _arg ) - } - - /// public char com.jh.SwiftHelloTest$TestResponderImpl.charMethod(char) - - private static var charMethod_MethodID_8: jmethodID? - - open func charMethod( arg: UInt16 ) -> UInt16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestResponderImpl.charMethod_MethodID_8, args: &__args, locals: &__locals ) - return JNIType.decode( type: UInt16(), from: __return ) - } - - open func charMethod( _ _arg: UInt16 ) -> UInt16 { - return charMethod( arg: _arg ) - } - - /// public char[] com.jh.SwiftHelloTest$TestResponderImpl.charArrayMethod(char[]) - - private static var charArrayMethod_MethodID_9: jmethodID? - - open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestResponderImpl.charArrayMethod_MethodID_9, args: &__args, locals: &__locals ) - return JNIType.decode( type: [UInt16](), from: __return ) - } - - open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { - return charArrayMethod( arg: _arg ) - } - - /// public char[][] com.jh.SwiftHelloTest$TestResponderImpl.char2dArrayMethod(char[][]) - - private static var char2dArrayMethod_MethodID_10: jmethodID? - - open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestResponderImpl.char2dArrayMethod_MethodID_10, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[UInt16]](), from: __return ) - } - - open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { - return char2dArrayMethod( arg: _arg ) - } - - /// public short com.jh.SwiftHelloTest$TestResponderImpl.shortMethod(short) - - private static var shortMethod_MethodID_11: jmethodID? - - open func shortMethod( arg: Int16 ) -> Int16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestResponderImpl.shortMethod_MethodID_11, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int16(), from: __return ) - } - - open func shortMethod( _ _arg: Int16 ) -> Int16 { - return shortMethod( arg: _arg ) - } - - /// public short[] com.jh.SwiftHelloTest$TestResponderImpl.shortArrayMethod(short[]) - - private static var shortArrayMethod_MethodID_12: jmethodID? - - open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestResponderImpl.shortArrayMethod_MethodID_12, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int16](), from: __return ) - } - - open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { - return shortArrayMethod( arg: _arg ) - } - - /// public short[][] com.jh.SwiftHelloTest$TestResponderImpl.short2dArrayMethod(short[][]) - - private static var short2dArrayMethod_MethodID_13: jmethodID? - - open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestResponderImpl.short2dArrayMethod_MethodID_13, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int16]](), from: __return ) - } - - open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { - return short2dArrayMethod( arg: _arg ) - } - - /// public int com.jh.SwiftHelloTest$TestResponderImpl.intMethod(int) - - private static var intMethod_MethodID_14: jmethodID? - - open func intMethod( arg: Int ) -> Int { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestResponderImpl.intMethod_MethodID_14, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int(), from: __return ) - } - - open func intMethod( _ _arg: Int ) -> Int { - return intMethod( arg: _arg ) - } - - /// public int[] com.jh.SwiftHelloTest$TestResponderImpl.intArrayMethod(int[]) - - private static var intArrayMethod_MethodID_15: jmethodID? - - open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestResponderImpl.intArrayMethod_MethodID_15, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int32](), from: __return ) - } - - open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { - return intArrayMethod( arg: _arg ) - } - - /// public int[][] com.jh.SwiftHelloTest$TestResponderImpl.int2dArrayMethod(int[][]) - - private static var int2dArrayMethod_MethodID_16: jmethodID? - - open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestResponderImpl.int2dArrayMethod_MethodID_16, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int32]](), from: __return ) - } - - open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { - return int2dArrayMethod( arg: _arg ) - } - - /// public long com.jh.SwiftHelloTest$TestResponderImpl.longMethod(long) - - private static var longMethod_MethodID_17: jmethodID? - - open func longMethod( arg: Int64 ) -> Int64 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestResponderImpl.longMethod_MethodID_17, args: &__args, locals: &__locals ) - return JNIType.decode( type: Int64(), from: __return ) - } - - open func longMethod( _ _arg: Int64 ) -> Int64 { - return longMethod( arg: _arg ) - } - - /// public long[] com.jh.SwiftHelloTest$TestResponderImpl.longArrayMethod(long[]) - - private static var longArrayMethod_MethodID_18: jmethodID? - - open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestResponderImpl.longArrayMethod_MethodID_18, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Int64](), from: __return ) - } - - open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { - return longArrayMethod( arg: _arg ) - } - - /// public long[][] com.jh.SwiftHelloTest$TestResponderImpl.long2dArrayMethod(long[][]) - - private static var long2dArrayMethod_MethodID_19: jmethodID? - - open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestResponderImpl.long2dArrayMethod_MethodID_19, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Int64]](), from: __return ) - } - - open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { - return long2dArrayMethod( arg: _arg ) - } - - /// public float com.jh.SwiftHelloTest$TestResponderImpl.floatMethod(float) - - private static var floatMethod_MethodID_20: jmethodID? - - open func floatMethod( arg: Float ) -> Float { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestResponderImpl.floatMethod_MethodID_20, args: &__args, locals: &__locals ) - return JNIType.decode( type: Float(), from: __return ) - } - - open func floatMethod( _ _arg: Float ) -> Float { - return floatMethod( arg: _arg ) - } - - /// public float[] com.jh.SwiftHelloTest$TestResponderImpl.floatArrayMethod(float[]) - - private static var floatArrayMethod_MethodID_21: jmethodID? - - open func floatArrayMethod( arg: [Float]? ) -> [Float]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestResponderImpl.floatArrayMethod_MethodID_21, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Float](), from: __return ) - } - - open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! { - return floatArrayMethod( arg: _arg ) - } - - /// public float[][] com.jh.SwiftHelloTest$TestResponderImpl.float2dArrayMethod(float[][]) - - private static var float2dArrayMethod_MethodID_22: jmethodID? - - open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestResponderImpl.float2dArrayMethod_MethodID_22, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Float]](), from: __return ) - } - - open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { - return float2dArrayMethod( arg: _arg ) - } - - /// public double com.jh.SwiftHelloTest$TestResponderImpl.doubleMethod(double) - - private static var doubleMethod_MethodID_23: jmethodID? - - open func doubleMethod( arg: Double ) -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestResponderImpl.doubleMethod_MethodID_23, args: &__args, locals: &__locals ) - return JNIType.decode( type: Double(), from: __return ) - } - - open func doubleMethod( _ _arg: Double ) -> Double { - return doubleMethod( arg: _arg ) - } - - /// public double[] com.jh.SwiftHelloTest$TestResponderImpl.doubleArrayMethod(double[]) - - private static var doubleArrayMethod_MethodID_24: jmethodID? - - open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestResponderImpl.doubleArrayMethod_MethodID_24, args: &__args, locals: &__locals ) - return JNIType.decode( type: [Double](), from: __return ) - } - - open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { - return doubleArrayMethod( arg: _arg ) - } - - /// public double[][] com.jh.SwiftHelloTest$TestResponderImpl.double2dArrayMethod(double[][]) - - private static var double2dArrayMethod_MethodID_25: jmethodID? - - open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestResponderImpl.double2dArrayMethod_MethodID_25, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[Double]](), from: __return ) - } - - open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { - return double2dArrayMethod( arg: _arg ) - } - - /// public java.lang.String com.jh.SwiftHelloTest$TestResponderImpl.StringMethod(java.lang.String) - - private static var StringMethod_MethodID_26: jmethodID? - - open func StringMethod( arg: String? ) -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderImpl.StringMethod_MethodID_26, args: &__args, locals: &__locals ) - return JNIType.decode( type: String(), from: __return ) - } - - open func StringMethod( _ _arg: String? ) -> String! { - return StringMethod( arg: _arg ) - } - - /// public java.lang.String[] com.jh.SwiftHelloTest$TestResponderImpl.StringArrayMethod(java.lang.String[]) - - private static var StringArrayMethod_MethodID_27: jmethodID? - - open func StringArrayMethod( arg: [String]? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderImpl.StringArrayMethod_MethodID_27, args: &__args, locals: &__locals ) - return JNIType.decode( type: [String](), from: __return ) - } - - open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { - return StringArrayMethod( arg: _arg ) - } - - /// public java.lang.String[][] com.jh.SwiftHelloTest$TestResponderImpl.String2dArrayMethod(java.lang.String[][]) - - private static var String2dArrayMethod_MethodID_28: jmethodID? - - open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.encode( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderImpl.String2dArrayMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.decode( type: [[String]](), from: __return ) - } - - open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { - return String2dArrayMethod( arg: _arg ) - } - -} diff --git a/src/com/jh/SwiftHelloBinding.java b/src/com/jh/SwiftHelloBinding.java deleted file mode 100644 index 31a4c4a..0000000 --- a/src/com/jh/SwiftHelloBinding.java +++ /dev/null @@ -1,28 +0,0 @@ - -package com.jh; - -public interface SwiftHelloBinding { - - public interface Listener { - - public void setCacheDir( String cacheDir ); - - public void processNumber( double number ); - - public void processText( String text ); - - } - - public interface Responder { - - public void processedNumber( double number ); - - public void processedText( String text ); - - public String[] debug( String msg ); - - public SwiftHelloTest.TestListener testResponder(); - - } - -} diff --git a/src/com/jh/SwiftHelloTest.java b/src/com/jh/SwiftHelloTest.java deleted file mode 100644 index b44fc4c..0000000 --- a/src/com/jh/SwiftHelloTest.java +++ /dev/null @@ -1,158 +0,0 @@ - -package com.jh; - -public interface SwiftHelloTest { - - public interface TestListener { - - public boolean booleanMethod( boolean arg ); - public boolean[] booleanArrayMethod( boolean arg[] ); - public boolean[][] boolean2dArrayMethod( boolean arg[][] ); - - public byte byteMethod( byte arg ); - public byte[] byteArrayMethod( byte arg[] ); - public byte[][] byte2dArrayMethod( byte arg[][] ); - - public char charMethod( char arg ); - public char[] charArrayMethod( char arg[] ); - public char[][] char2dArrayMethod( char arg[][] ); - - public short shortMethod( short arg ); - public short[] shortArrayMethod( short arg[] ); - public short[][] short2dArrayMethod( short arg[][] ); - - public int intMethod( int arg ); - public int[] intArrayMethod( int arg[] ); - public int[][] int2dArrayMethod( int arg[][] ); - - public long longMethod( long arg ); - public long[] longArrayMethod( long arg[] ); - public long[][] long2dArrayMethod( long arg[][] ); - - public float floatMethod( float arg ); - public float[] floatArrayMethod( float arg[] ); - public float[][] float2dArrayMethod( float arg[][] ); - - public double doubleMethod( double arg ); - public double[] doubleArrayMethod( double arg[] ); - public double[][] double2dArrayMethod( double arg[][] ); - - public String StringMethod( String arg ); - public String[] StringArrayMethod( String arg[] ); - public String[][] String2dArrayMethod( String arg[][] ); - - } - - public static class TestResponderImpl implements TestListener { - - public boolean booleanMethod( boolean arg ) { - return arg; - } - - public boolean[] booleanArrayMethod( boolean arg[] ) { - return arg; - } - - public boolean[][] boolean2dArrayMethod( boolean arg[][] ) { - return arg; - } - - public byte byteMethod( byte arg ) { - return arg; - } - - public byte[] byteArrayMethod( byte arg[] ) { - return arg; - } - - public byte[][] byte2dArrayMethod( byte arg[][] ) { - return arg; - } - - public char charMethod( char arg ) { - return arg; - } - - public char[] charArrayMethod( char arg[] ) { - return arg; - } - - public char[][] char2dArrayMethod( char arg[][] ) { - return arg; - } - - public short shortMethod( short arg ) { - return arg; - } - - public short[] shortArrayMethod( short arg[] ) { - return arg; - } - - public short[][] short2dArrayMethod( short arg[][] ) { - return arg; - } - - public int intMethod( int arg ) { - return arg; - } - - public int[] intArrayMethod( int arg[] ) { - return arg; - } - - public int[][] int2dArrayMethod( int arg[][] ) { - return arg; - } - - public long longMethod( long arg ) { - return arg; - } - - public long[] longArrayMethod( long arg[] ) { - return arg; - } - - public long[][] long2dArrayMethod( long arg[][] ) { - return arg; - } - - public float floatMethod( float arg ) { - return arg; - } - - public float[] floatArrayMethod( float arg[] ) { - return arg; - } - - public float[][] float2dArrayMethod( float arg[][] ) { - return arg; - } - - public double doubleMethod( double arg ) { - return arg; - } - - public double[] doubleArrayMethod( double arg[] ) { - return arg; - } - - public double[][] double2dArrayMethod( double arg[][] ) { - return arg; - } - - public String StringMethod( String arg ) { - return arg; - } - - public String[] StringArrayMethod( String arg[] ) { - return arg; - } - - public String[][] String2dArrayMethod( String arg[][] ) { - return arg; - } - - } - -} From d20491db21a22b343c168b2498a371df2aebbee4 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Fri, 11 Aug 2017 22:57:19 +0100 Subject: [PATCH 25/53] Tidyup version 2 --- LICENSE | 20 ++ SwiftJava.xcodeproj/project.pbxproj | 36 ++- android_toolchain | 2 +- com_apple | 2 +- .../Sources/SwiftHelloBinding.swift | 2 +- .../Sources/SwiftHelloBinding_Listener.swift | 241 +++++++++++++---- .../Sources/SwiftHelloBinding_Responder.swift | 134 +++++---- .../Sources/SwiftHelloTest.swift | 2 +- .../Sources/SwiftHelloTest_John.swift | 65 ----- .../Sources/SwiftHelloTest_ListenerMap.swift | 78 ------ .../SwiftHelloTest_ListenerMapList.swift | 78 ------ .../SwiftHelloTest_SwiftTestListener.swift | 18 +- .../Sources/SwiftHelloTest_TestListener.swift | 232 ++++++++-------- .../SwiftHelloTest_TestResponderAdapter.swift | 112 ++++---- .../Sources/SwiftHelloTypes.swift | 2 +- .../Sources/SwiftHelloTypes_ListenerMap.swift | 10 +- .../SwiftHelloTypes_ListenerMapList.swift | 10 +- ....swift => SwiftHelloTypes_StringMap.swift} | 36 ++- ...ft => SwiftHelloTypes_StringMapList.swift} | 36 ++- .../SwiftHelloTypes_TextListener.swift | 8 +- examples | 2 +- genhello.sh | 24 +- genjar.sh | 4 +- gentests.rb | 12 +- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- org_swiftjava/Sources/SwiftTest.swift | 133 +++++---- .../bindings/SwiftHelloTypes.java | 33 --- .../SwiftHelloBinding.java | 21 +- .../SwiftHelloTest.java | 8 +- .../swiftbindings/SwiftHelloTypes.java | 57 ++++ src/genswift.java | 256 ++++++++++-------- src/org/swiftjava/SwiftTest.java | 2 +- .../com_apple/ApplicationAdapterProxy.java | 104 +++---- .../com_apple/ApplicationListenerProxy.java | 32 +-- .../SwiftHelloBinding_ListenerProxy.java | 55 +++- .../SwiftHelloTest_TestListenerProxy.java | 97 +++---- ...ftHelloTest_TestResponderAdapterProxy.java | 109 ++++---- .../SwiftHelloTypes_TextListenerProxy.java | 9 +- .../java_awt/DragSourceAdapterProxy.java | 96 +++---- .../java_awt/DragSourceListenerProxy.java | 16 +- .../javax_swing/DefaultTableModelProxy.java | 12 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- swiftjava.jar | Bin 94941 -> 96685 bytes 49 files changed, 1163 insertions(+), 1059 deletions(-) create mode 100644 LICENSE delete mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_John.swift delete mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift delete mode 100644 com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift rename com_johnholdsworth/Sources/{SwiftHelloBinding_ListenerMapList.swift => SwiftHelloTypes_StringMap.swift} (51%) rename com_johnholdsworth/Sources/{SwiftHelloBinding_ListenerMap.swift => SwiftHelloTypes_StringMapList.swift} (51%) delete mode 100644 src/com/johnholdsworth/bindings/SwiftHelloTypes.java rename src/com/johnholdsworth/{bindings => swiftbindings}/SwiftHelloBinding.java (61%) rename src/com/johnholdsworth/{bindings => swiftbindings}/SwiftHelloTest.java (98%) create mode 100644 src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5e9e416 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright (c) 2016, John Holdsworth + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +This License does not apply to the code generated from the Apple distribution of the Java VM +which are provided under the provisions of "Fair Use" and your use is ultimately subject +to the original License Agreement. diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 4a23309..bc7bdb2 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; + BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB6651331F2E3A8D004EFD5F /* swift-android-gradle */; }; BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; @@ -33,10 +34,8 @@ BBBF3A731D4BF8CF004142AE /* AWTGraphicsDemo.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBBF3A721D4BF8CF004142AE /* AWTGraphicsDemo.swift */; }; BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DB81D48FDCE0035A039 /* org_swiftjava.swift */; }; BBC13DC21D4900AA0035A039 /* SwiftTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DC11D4900AA0035A039 /* SwiftTest.swift */; }; + BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = BBCCEF991F3C83440084F9E3 /* LICENSE */; }; BBF280D91D64BC6100A7AF5D /* src in Resources */ = {isa = PBXBuildFile; fileRef = BBF280D81D64BC6100A7AF5D /* src */; }; - CE31850A1F368C55002046A6 /* SwiftHelloBinding.java in Sources */ = {isa = PBXBuildFile; fileRef = CE3185071F368C55002046A6 /* SwiftHelloBinding.java */; }; - CE31850B1F368C55002046A6 /* SwiftHelloTest.java in Sources */ = {isa = PBXBuildFile; fileRef = CE3185081F368C55002046A6 /* SwiftHelloTest.java */; }; - CE31850C1F368C55002046A6 /* SwiftHelloTypes.java in Sources */ = {isa = PBXBuildFile; fileRef = CE3185091F368C55002046A6 /* SwiftHelloTypes.java */; }; CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */; }; CE4A25031F34B37C003AF384 /* JNIMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */; }; CE4A25041F34B37C003AF384 /* JNIType.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FC1F34B37C003AF384 /* JNIType.swift */; }; @@ -53,6 +52,9 @@ CE4A251B1F355918003AF384 /* SwiftHelloTestImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25131F355902003AF384 /* SwiftHelloTestImpl.swift */; }; CE4A25211F355CAC003AF384 /* SwiftHelloTest_TestListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A251F1F355CA6003AF384 /* SwiftHelloTest_TestListener.swift */; }; CE4A25241F3563AB003AF384 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */; }; + CE649E311F39E88200C5B7FE /* SwiftHelloTypes.java in Sources */ = {isa = PBXBuildFile; fileRef = CE649E2D1F39E88200C5B7FE /* SwiftHelloTypes.java */; }; + CE649E321F39E88200C5B7FE /* SwiftHelloBinding.java in Sources */ = {isa = PBXBuildFile; fileRef = CE649E2F1F39E88200C5B7FE /* SwiftHelloBinding.java */; }; + CE649E331F39E88200C5B7FE /* SwiftHelloTest.java in Sources */ = {isa = PBXBuildFile; fileRef = CE649E301F39E88200C5B7FE /* SwiftHelloTest.java */; }; CE6BB1D81F33E59900CA6A8F /* java_swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13E821D4996AE0035A039 /* java_swift.framework */; }; CE6BB1D91F33E5AD00CA6A8F /* CJavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13E601D49954A0035A039 /* CJavaVM.framework */; }; CE81023A1F3693510069563B /* MainActivity.kt in Resources */ = {isa = PBXBuildFile; fileRef = CE8102391F3693510069563B /* MainActivity.kt */; }; @@ -239,6 +241,7 @@ BB5ACFE31D35B09900E2386A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; + BB6651331F2E3A8D004EFD5F /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; BB8AC4621D3F11E600BD5B0F /* examples */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = examples; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -275,14 +278,12 @@ BBC13E7D1D4996AE0035A039 /* java_swift.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_swift.xcodeproj; path = java_swift/java_swift.xcodeproj; sourceTree = ""; }; BBC13EB71D4997FA0035A039 /* java_lang.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_lang.xcodeproj; path = java_lang/java_lang.xcodeproj; sourceTree = ""; }; BBC140651D4999580035A039 /* java_util.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_util.xcodeproj; path = java_util/java_util.xcodeproj; sourceTree = ""; }; + BBCCEF991F3C83440084F9E3 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaVM.framework; path = System/Library/Frameworks/JavaVM.framework; sourceTree = SDKROOT; }; BBCD6EBC1D383E3700DF5E47 /* genswift.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = genswift.java; path = src/genswift.java; sourceTree = ""; }; BBCD75371D38DC4200DF5E47 /* overrides.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = overrides.pl; sourceTree = ""; }; BBCD9F871D3CD05900DF5E47 /* genswift.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genswift.sh; sourceTree = ""; }; BBF280D81D64BC6100A7AF5D /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = src; sourceTree = ""; }; - CE3185071F368C55002046A6 /* SwiftHelloBinding.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloBinding.java; path = src/com/johnholdsworth/bindings/SwiftHelloBinding.java; sourceTree = ""; }; - CE3185081F368C55002046A6 /* SwiftHelloTest.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloTest.java; path = src/com/johnholdsworth/bindings/SwiftHelloTest.java; sourceTree = ""; }; - CE3185091F368C55002046A6 /* SwiftHelloTypes.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloTypes.java; path = src/com/johnholdsworth/bindings/SwiftHelloTypes.java; sourceTree = ""; }; CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTypes_TextListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift; sourceTree = SOURCE_ROOT; }; CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIMethod.swift; path = java_swift/Sources/JNIMethod.swift; sourceTree = SOURCE_ROOT; }; CE4A24FC1F34B37C003AF384 /* JNIType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIType.swift; path = java_swift/Sources/JNIType.swift; sourceTree = SOURCE_ROOT; }; @@ -298,6 +299,9 @@ CE4A25151F355902003AF384 /* SwiftHelloTest_SwiftTestListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTest_SwiftTestListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift; sourceTree = SOURCE_ROOT; }; CE4A251C1F355B0A003AF384 /* SwiftTest.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftTest.java; path = src/org/swiftjava/SwiftTest.java; sourceTree = SOURCE_ROOT; }; CE4A251F1F355CA6003AF384 /* SwiftHelloTest_TestListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTest_TestListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift; sourceTree = SOURCE_ROOT; }; + CE649E2D1F39E88200C5B7FE /* SwiftHelloTypes.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloTypes.java; path = src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java; sourceTree = ""; }; + CE649E2F1F39E88200C5B7FE /* SwiftHelloBinding.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloBinding.java; path = src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java; sourceTree = ""; }; + CE649E301F39E88200C5B7FE /* SwiftHelloTest.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHelloTest.java; path = src/com/johnholdsworth/swiftbindings/SwiftHelloTest.java; sourceTree = ""; }; CE75236D1F33E9A3003795CA /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = ../../../Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/server/libjvm.dylib; sourceTree = ""; }; CE8102391F3693510069563B /* MainActivity.kt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = MainActivity.kt; path = "swift-android-kotlin/app/src/main/java/com/example/user/myapplication/MainActivity.kt"; sourceTree = ""; }; CE81023B1F3693790069563B /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = "swift-android-kotlin/app/src/main/swift/Sources/main.swift"; sourceTree = ""; }; @@ -341,6 +345,7 @@ BB5ACFD21D35B09900E2386A = { isa = PBXGroup; children = ( + BBCCEF991F3C83440084F9E3 /* LICENSE */, BBBF389C1D49B5E6004142AE /* README.md */, BBC13E5B1D49954A0035A039 /* CJavaVM.xcodeproj */, BBC13E7D1D4996AE0035A039 /* java_swift.xcodeproj */, @@ -361,6 +366,7 @@ BB6651351F2E3F50004EFD5F /* android_toolchain */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, + BB6651331F2E3A8D004EFD5F /* swift-android-gradle */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, ); @@ -524,9 +530,9 @@ CE3185051F368C37002046A6 /* Bindings */ = { isa = PBXGroup; children = ( - CE3185091F368C55002046A6 /* SwiftHelloTypes.java */, - CE3185071F368C55002046A6 /* SwiftHelloBinding.java */, - CE3185081F368C55002046A6 /* SwiftHelloTest.java */, + CE649E301F39E88200C5B7FE /* SwiftHelloTest.java */, + CE649E2F1F39E88200C5B7FE /* SwiftHelloBinding.java */, + CE649E2D1F39E88200C5B7FE /* SwiftHelloTypes.java */, ); name = Bindings; sourceTree = ""; @@ -773,7 +779,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */, CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */, + BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, BBAD3EE41D5A84700091D139 /* genall.sh in Resources */, BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */, @@ -801,14 +809,13 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + CE649E331F39E88200C5B7FE /* SwiftHelloTest.java in Sources */, CE85B31C1F3655DD0014857D /* JavaMap.swift in Sources */, - CE31850C1F368C55002046A6 /* SwiftHelloTypes.java in Sources */, CE4A25041F34B37C003AF384 /* JNIType.swift in Sources */, CE4A25031F34B37C003AF384 /* JNIMethod.swift in Sources */, CE4A25051F34B37C003AF384 /* JNICore.swift in Sources */, - CE31850A1F368C55002046A6 /* SwiftHelloBinding.java in Sources */, BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */, - CE31850B1F368C55002046A6 /* SwiftHelloTest.java in Sources */, + CE649E321F39E88200C5B7FE /* SwiftHelloBinding.java in Sources */, CE4A25091F34B37C003AF384 /* JavaObject.swift in Sources */, CE85B31E1F3655DD0014857D /* JavaSet.swift in Sources */, CE81023C1F3693790069563B /* main.swift in Sources */, @@ -817,6 +824,7 @@ CE4A25071F34B37C003AF384 /* JNIObject.swift in Sources */, CE4A25061F34B37C003AF384 /* JavaClass.swift in Sources */, CE4A25081F34B37C003AF384 /* Runnable.swift in Sources */, + CE649E311F39E88200C5B7FE /* SwiftHelloTypes.java in Sources */, CE81023E1F369D8D0069563B /* SwiftHello.java in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1043,7 +1051,7 @@ COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = JDBC/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.genie.JDBC; + PRODUCT_BUNDLE_IDENTIFIER = org.swiftjava.JDBC; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; @@ -1059,7 +1067,7 @@ COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = JDBC/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.genie.JDBC; + PRODUCT_BUNDLE_IDENTIFIER = org.swiftjava.JDBC; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; }; diff --git a/android_toolchain b/android_toolchain index fae8f5b..3ebea25 160000 --- a/android_toolchain +++ b/android_toolchain @@ -1 +1 @@ -Subproject commit fae8f5bb54e8972b151ea00173e95ca087343319 +Subproject commit 3ebea2565f5c0cdb6b1b64b74395715010a22e69 diff --git a/com_apple b/com_apple index 21768ef..8c94fad 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 21768ef1b6d484b2ccac471b2b88352406e51f41 +Subproject commit 8c94fad6dab5fd9e74c2b091aa46c8aa828d0e74 diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding.swift b/com_johnholdsworth/Sources/SwiftHelloBinding.swift index e171386..10ee30c 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding.swift @@ -3,7 +3,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// interface com.johnholdsworth.bindings.SwiftHelloBinding /// +/// interface com.johnholdsworth.swiftbindings.SwiftHelloBinding /// public protocol SwiftHelloBinding: JavaProtocol { diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift index f1e80af..9590080 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift @@ -3,31 +3,43 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// interface com.johnholdsworth.bindings.SwiftHelloBinding$Listener /// +/// interface com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener /// public protocol SwiftHelloBinding_Listener: JavaProtocol { - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + + func throwException() throws /* java.lang.Exception */ -> Double + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) func setCacheDir( cacheDir: String? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) func processNumber( number: Double ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) func processText( text: String? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + + func processStringMap( map: [String:String]? ) + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + + func processStringMapList( map: [String:[String]]? ) + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! @@ -38,90 +50,135 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin private static var SwiftHelloBinding_ListenerJNIClass: jclass? - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception - private static var setCacheDir_MethodID_7: jmethodID? + private static var throwException_MethodID_10: jmethodID? + + open func throwException() throws /* java.lang.Exception */ -> Double { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "throwException", methodSig: "()D", methodCache: &SwiftHelloBinding_ListenerForward.throwException_MethodID_10, args: &__args, locals: &__locals ) + if let throwable = JNI.ExceptionCheck() { + throw java_swift.Exception( javaObject: throwable ) + } + return JNIType.toSwift( type: Double(), from: __return ) + } + + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + + private static var setCacheDir_MethodID_11: jmethodID? open func setCacheDir( cacheDir: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: cacheDir, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_7, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_11, args: &__args, locals: &__locals ) } open func setCacheDir( _ _cacheDir: String? ) { setCacheDir( cacheDir: _cacheDir ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) - private static var processNumber_MethodID_8: jmethodID? + private static var processNumber_MethodID_12: jmethodID? open func processNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_8, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_12, args: &__args, locals: &__locals ) } open func processNumber( _ _number: Double ) { processNumber( number: _number ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) - private static var processText_MethodID_9: jmethodID? + private static var processText_MethodID_13: jmethodID? open func processText( text: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.processText_MethodID_9, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.processText_MethodID_13, args: &__args, locals: &__locals ) } open func processText( _ _text: String? ) { processText( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - private static var processedMap_MethodID_10: jmethodID? + private static var processedMap_MethodID_14: jmethodID? open func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMap_MethodID_10, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMap_MethodID_14, args: &__args, locals: &__locals ) } open func processedMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { processedMap( map: _map ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) - private static var processedMapList_MethodID_11: jmethodID? + private static var processedMapList_MethodID_15: jmethodID? open func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMapList_MethodID_11, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMapList_MethodID_15, args: &__args, locals: &__locals ) } open func processedMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { processedMapList( map: _map ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - private static var testResponder_MethodID_12: jmethodID? + private static var processStringMap_MethodID_16: jmethodID? + + open func processStringMap( map: [String:String]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processStringMap_MethodID_16, args: &__args, locals: &__locals ) + } + + open func processStringMap( _ _map: [String:String]? ) { + processStringMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + + private static var processStringMapList_MethodID_17: jmethodID? + + open func processStringMapList( map: [String:[String]]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processStringMapList_MethodID_17, args: &__args, locals: &__locals ) + } + + open func processStringMapList( _ _map: [String:[String]]? ) { + processStringMapList( map: _map ) + } + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) + + private static var testResponder_MethodID_18: jmethodID? open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ListenerForward.testResponder_MethodID_12, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ListenerForward.testResponder_MethodID_18, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } @@ -133,49 +190,85 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin } -private typealias SwiftHelloBinding_Listener_setCacheDir_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_throwException_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jdouble + +private func SwiftHelloBinding_Listener_throwException_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jdouble { + do { + JNI.inNative = true; + let __return = try SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).throwException( ) + JNI.inNative = false; + var locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &locals ).d, &locals, removeLast: true ) + } + catch let exception as Throwable { + _ = exception.withJavaObject { JNI.api.Throw( JNI.env, $0 ) } + return 0 + } + catch { + _ = Exception("Unknown exception").withJavaObject { JNI.api.Throw( JNI.env, $0 ) } + return 0 + } +} + +private typealias SwiftHelloBinding_Listener_setCacheDir_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_setCacheDir_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ cacheDir: jobject? ) -> () { +private func SwiftHelloBinding_Listener_setCacheDir_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ cacheDir: jobject? ) -> () { JNI.inNative = true; SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setCacheDir( cacheDir: JNIType.toSwift( type: String(), from: cacheDir ) ) JNI.inNative = false; } -private typealias SwiftHelloBinding_Listener_processNumber_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> () +private typealias SwiftHelloBinding_Listener_processNumber_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> () -private func SwiftHelloBinding_Listener_processNumber_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ number: jdouble ) -> () { +private func SwiftHelloBinding_Listener_processNumber_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ number: jdouble ) -> () { JNI.inNative = true; SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processNumber( number: JNIType.toSwift( type: Double(), from: number ) ) JNI.inNative = false; } -private typealias SwiftHelloBinding_Listener_processText_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_processText_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_processText_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ text: jobject? ) -> () { +private func SwiftHelloBinding_Listener_processText_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ text: jobject? ) -> () { JNI.inNative = true; SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processText( text: JNIType.toSwift( type: String(), from: text ) ) JNI.inNative = false; } -private typealias SwiftHelloBinding_Listener_processedMap_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_processedMap_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_processedMap_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { +private func SwiftHelloBinding_Listener_processedMap_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { JNI.inNative = true; SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMap( map: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: map ) ) JNI.inNative = false; } -private typealias SwiftHelloBinding_Listener_processedMapList_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_processedMapList_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_processedMapList_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { +private func SwiftHelloBinding_Listener_processedMapList_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { JNI.inNative = true; SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMapList( map: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: map ) ) JNI.inNative = false; } -private typealias SwiftHelloBinding_Listener_testResponder_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jobject? +private typealias SwiftHelloBinding_Listener_processStringMap_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_testResponder_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jint ) -> jobject? { +private func SwiftHelloBinding_Listener_processStringMap_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processStringMap( map: JNIType.toSwift( type: [String:String](), from: map ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_processStringMapList_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_processStringMapList_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { + JNI.inNative = true; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processStringMapList( map: JNIType.toSwift( type: [String:[String]](), from: map ) ) + JNI.inNative = false; +} + +private typealias SwiftHelloBinding_Listener_testResponder_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jobject? + +private func SwiftHelloBinding_Listener_testResponder_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jint ) -> jobject? { JNI.inNative = true; let __return = SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testResponder( loopback: JNIType.toSwift( type: Int(), from: loopback ) ) JNI.inNative = false; @@ -188,23 +281,32 @@ fileprivate class SwiftHelloBinding_ListenerLocal_: JNILocalProxy Double /**/ { + return 0 + } + + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) open func setCacheDir( cacheDir: String? ) /**/ { } @@ -246,7 +355,7 @@ open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { setCacheDir( cacheDir: _cacheDir ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) open func processNumber( number: Double ) /**/ { } @@ -255,7 +364,7 @@ open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { processNumber( number: _number ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) open func processText( text: String? ) /**/ { } @@ -264,7 +373,7 @@ open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { processText( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) open func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) /**/ { } @@ -273,7 +382,7 @@ open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { processedMap( map: _map ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) open func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) /**/ { } @@ -282,7 +391,25 @@ open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { processedMapList( map: _map ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + + open func processStringMap( map: [String:String]? ) /**/ { + } + + open func processStringMap( _ _map: [String:String]? ) /**/ { + processStringMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + + open func processStringMapList( map: [String:[String]]? ) /**/ { + } + + open func processStringMapList( _ _map: [String:[String]]? ) /**/ { + processStringMapList( map: _map ) + } + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! /**/ { return nil diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift index c77d73e..7700cbb 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift @@ -3,46 +3,54 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// interface com.johnholdsworth.bindings.SwiftHelloBinding$Responder /// +/// interface com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder /// public protocol SwiftHelloBinding_Responder: JavaProtocol { - /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloBinding$Responder.debug(java.lang.String) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.debug(java.lang.String) func debug( msg: String? ) -> [String]! - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Responder.testResponder(int) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedNumber(double) func processedNumber( number: Double ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) func processedText( text: String? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) func processedTextListener( text: SwiftHelloTypes_TextListener? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) + func processMap( map: [String:SwiftHelloTypes_TextListener]? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) - func processMap( map: [String:SwiftHelloTypes_TextListener]? ) + func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[][]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[][]) func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + + func processedStringMap( map: [String:String]? ) + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + + func processedStringMapList( map: [String:[String]]? ) + } @@ -50,15 +58,15 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi private static var SwiftHelloBinding_ResponderJNIClass: jclass? - /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloBinding$Responder.debug(java.lang.String) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.debug(java.lang.String) - private static var debug_MethodID_10: jmethodID? + private static var debug_MethodID_12: jmethodID? open func debug( msg: String? ) -> [String]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: msg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_10, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_12, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [String](), from: __return ) } @@ -66,15 +74,15 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi return debug( msg: _msg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Responder.testResponder(int) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) - private static var testResponder_MethodID_11: jmethodID? + private static var testResponder_MethodID_13: jmethodID? open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_11, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_13, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } @@ -83,111 +91,141 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi return testResponder( loopback: _loopback ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedNumber(double) - private static var processedNumber_MethodID_12: jmethodID? + private static var processedNumber_MethodID_14: jmethodID? open func processedNumber( number: Double ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_12, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_14, args: &__args, locals: &__locals ) } open func processedNumber( _ _number: Double ) { processedNumber( number: _number ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) - private static var processedText_MethodID_13: jmethodID? + private static var processedText_MethodID_15: jmethodID? open func processedText( text: String? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_13, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_15, args: &__args, locals: &__locals ) } open func processedText( _ _text: String? ) { processedText( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) - private static var processedTextListener_MethodID_14: jmethodID? + private static var processedTextListener_MethodID_16: jmethodID? open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_14, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_16, args: &__args, locals: &__locals ) } open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { processedTextListener( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - private static var processedTextListenerArray_MethodID_15: jmethodID? + private static var processMap_MethodID_17: jmethodID? - open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { + open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_15, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_17, args: &__args, locals: &__locals ) } - open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { - processedTextListenerArray( text: _text ) + open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { + processMap( map: _map ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) - private static var processMap_MethodID_16: jmethodID? + private static var processedTextListenerArray_MethodID_18: jmethodID? - open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { + open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_16, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_18, args: &__args, locals: &__locals ) } - open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { - processMap( map: _map ) + open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { + processedTextListenerArray( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.bindings.SwiftHelloTypes$TextListener[][]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[][]) - private static var processedTextListener2dArray_MethodID_17: jmethodID? + private static var processedTextListener2dArray_MethodID_19: jmethodID? open func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_17, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_19, args: &__args, locals: &__locals ) } open func processedTextListener2dArray( _ _text: [[SwiftHelloTypes_TextListener]]? ) { processedTextListener2dArray( text: _text ) } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) - private static var processMapList_MethodID_18: jmethodID? + private static var processMapList_MethodID_20: jmethodID? open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_18, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_20, args: &__args, locals: &__locals ) } open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { processMapList( map: _map ) } + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + + private static var processedStringMap_MethodID_21: jmethodID? + + open func processedStringMap( map: [String:String]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMap_MethodID_21, args: &__args, locals: &__locals ) + } + + open func processedStringMap( _ _map: [String:String]? ) { + processedStringMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + + private static var processedStringMapList_MethodID_22: jmethodID? + + open func processedStringMapList( map: [String:[String]]? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMapList_MethodID_22, args: &__args, locals: &__locals ) + } + + open func processedStringMapList( _ _map: [String:[String]]? ) { + processedStringMapList( map: _map ) + } + } diff --git a/com_johnholdsworth/Sources/SwiftHelloTest.swift b/com_johnholdsworth/Sources/SwiftHelloTest.swift index 9d93ce8..fa45aff 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest.swift @@ -3,7 +3,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// interface com.johnholdsworth.bindings.SwiftHelloTest /// +/// interface com.johnholdsworth.swiftbindings.SwiftHelloTest /// public protocol SwiftHelloTest: JavaProtocol { diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_John.swift b/com_johnholdsworth/Sources/SwiftHelloTest_John.swift deleted file mode 100644 index 0dbddb0..0000000 --- a/com_johnholdsworth/Sources/SwiftHelloTest_John.swift +++ /dev/null @@ -1,65 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Aug 05 09:49:23 BST 2017 /// - -/// class com.johnholdsworth.bindings.SwiftHelloTest$John /// - -open class SwiftHelloTest_John: java_swift.HashMap { - - public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { - self.init( javaObject: nil ) - object.withJavaObject { - self.javaObject = $0 - } - } - - private static var SwiftHelloTest_JohnJNIClass: jclass? - - /// private static final long java.util.HashMap.serialVersionUID - - /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY - - /// static final int java.util.HashMap.MAXIMUM_CAPACITY - - /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR - - /// static final int java.util.HashMap.TREEIFY_THRESHOLD - - /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD - - /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY - - /// transient java.util.HashMap$Node[] java.util.HashMap.table - - /// transient java.util.Set java.util.HashMap.entrySet - - /// transient int java.util.HashMap.size - - /// transient int java.util.HashMap.modCount - - /// int java.util.HashMap.threshold - - /// final float java.util.HashMap.loadFactor - - /// transient java.util.Set java.util.AbstractMap.keySet - - /// transient java.util.Collection java.util.AbstractMap.values - - /// public com.johnholdsworth.bindings.SwiftHelloTest$John() - - private static var new_MethodID_1: jmethodID? - - public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$John", classCache: &SwiftHelloTest_John.SwiftHelloTest_JohnJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_John.new_MethodID_1, args: &__args, locals: &__locals ) - self.init( javaObject: __object ) - JNI.DeleteLocalRef( __object ) - } - -} - diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift b/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift deleted file mode 100644 index 5909fbd..0000000 --- a/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMap.swift +++ /dev/null @@ -1,78 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Aug 05 17:49:33 BST 2017 /// - -/// class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMap /// - -open class SwiftHelloTest_ListenerMap: java_swift.HashMap { - - public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { - self.init( javaObject: nil ) - object.withJavaObject { - self.javaObject = $0 - } - } - - private static var SwiftHelloTest_ListenerMapJNIClass: jclass? - - /// private static final long java.util.HashMap.serialVersionUID - - /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY - - /// static final int java.util.HashMap.MAXIMUM_CAPACITY - - /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR - - /// static final int java.util.HashMap.TREEIFY_THRESHOLD - - /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD - - /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY - - /// transient java.util.HashMap$Node[] java.util.HashMap.table - - /// transient java.util.Set java.util.HashMap.entrySet - - /// transient int java.util.HashMap.size - - /// transient int java.util.HashMap.modCount - - /// int java.util.HashMap.threshold - - /// final float java.util.HashMap.loadFactor - - /// transient java.util.Set java.util.AbstractMap.keySet - - /// transient java.util.Collection java.util.AbstractMap.values - - /// public com.johnholdsworth.bindings.SwiftHelloTest$ListenerMap() - - private static var new_MethodID_1: jmethodID? - - public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMap", classCache: &SwiftHelloTest_ListenerMap.SwiftHelloTest_ListenerMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_ListenerMap.new_MethodID_1, args: &__args, locals: &__locals ) - self.init( javaObject: __object ) - JNI.DeleteLocalRef( __object ) - } - - /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMap.valueClass() - - private static var valueClass_MethodID_2: jmethodID? - - open class func valueClass() -> java_swift.JavaClass! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMap", classCache: &SwiftHelloTest_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil - } - - -} - diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift deleted file mode 100644 index 3bd7376..0000000 --- a/com_johnholdsworth/Sources/SwiftHelloTest_ListenerMapList.swift +++ /dev/null @@ -1,78 +0,0 @@ - -import java_swift - -/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// - -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Aug 05 17:49:33 BST 2017 /// - -/// class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMapList /// - -open class SwiftHelloTest_ListenerMapList: java_swift.HashMap { - - public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { - self.init( javaObject: nil ) - object.withJavaObject { - self.javaObject = $0 - } - } - - private static var SwiftHelloTest_ListenerMapListJNIClass: jclass? - - /// private static final long java.util.HashMap.serialVersionUID - - /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY - - /// static final int java.util.HashMap.MAXIMUM_CAPACITY - - /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR - - /// static final int java.util.HashMap.TREEIFY_THRESHOLD - - /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD - - /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY - - /// transient java.util.HashMap$Node[] java.util.HashMap.table - - /// transient java.util.Set java.util.HashMap.entrySet - - /// transient int java.util.HashMap.size - - /// transient int java.util.HashMap.modCount - - /// int java.util.HashMap.threshold - - /// final float java.util.HashMap.loadFactor - - /// transient java.util.Set java.util.AbstractMap.keySet - - /// transient java.util.Collection java.util.AbstractMap.values - - /// public com.johnholdsworth.bindings.SwiftHelloTest$ListenerMapList() - - private static var new_MethodID_1: jmethodID? - - public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMapList", classCache: &SwiftHelloTest_ListenerMapList.SwiftHelloTest_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) - self.init( javaObject: __object ) - JNI.DeleteLocalRef( __object ) - } - - /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTest$ListenerMapList.valueClass() - - private static var valueClass_MethodID_2: jmethodID? - - open class func valueClass() -> java_swift.JavaClass! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTest$ListenerMapList", classCache: &SwiftHelloTest_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil - } - - -} - diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift index 3d72310..e78fbf2 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift @@ -3,7 +3,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// class com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener /// +/// class com.johnholdsworth.swiftbindings.SwiftHelloTest$SwiftTestListener /// open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter { @@ -16,38 +16,38 @@ open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter private static var SwiftHelloTest_SwiftTestListenerJNIClass: jclass? - /// static int com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener.tcount + /// static int com.johnholdsworth.swiftbindings.SwiftHelloTest$SwiftTestListener.tcount - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.loopback + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.loopback private static var loopback_FieldID: jfieldID? override open var loopback: SwiftHelloTest_TestListener! { get { var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, locals: &__locals ) + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, locals: &__locals ) return __value != nil ? SwiftHelloTest_TestListenerForward( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$SwiftTestListener() private static var new_MethodID_1: jmethodID? public convenience init() { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$SwiftTestListener", classCache: &SwiftHelloTest_SwiftTestListener.SwiftHelloTest_SwiftTestListenerJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_SwiftTestListener.new_MethodID_1, args: &__args, locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTest$SwiftTestListener", classCache: &SwiftHelloTest_SwiftTestListener.SwiftHelloTest_SwiftTestListenerJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_SwiftTestListener.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public void com.johnholdsworth.bindings.SwiftHelloTest$SwiftTestListener.respond(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$SwiftTestListener.respond(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) private static var respond_MethodID_2: jmethodID? @@ -55,7 +55,7 @@ open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: responder, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "respond", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_SwiftTestListener.respond_MethodID_2, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "respond", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_SwiftTestListener.respond_MethodID_2, args: &__args, locals: &__locals ) } open func respond( _ _responder: SwiftHelloTest_TestListener? ) { diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift index 67584c8..3d693fe 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift @@ -3,139 +3,139 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// interface com.johnholdsworth.bindings.SwiftHelloTest$TestListener /// +/// interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener /// public protocol SwiftHelloTest_TestListener: JavaProtocol { - /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) func setLoopback( loopback: SwiftHelloTest_TestListener? ) - /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) func booleanMethod( arg: Bool ) -> Bool - /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! - /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! - /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) func byteMethod( arg: Int8 ) -> Int8 - /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! - /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) func charMethod( arg: UInt16 ) -> UInt16 - /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! - /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! - /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) func shortMethod( arg: Int16 ) -> Int16 - /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) func shortArrayMethod( arg: [Int16]? ) -> [Int16]! - /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! - /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) func intMethod( arg: Int ) -> Int - /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) func intArrayMethod( arg: [Int32]? ) -> [Int32]! - /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! - /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) func longMethod( arg: Int64 ) -> Int64 - /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) func longArrayMethod( arg: [Int64]? ) -> [Int64]! - /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! - /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) func floatMethod( arg: Float ) -> Float - /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) func floatArrayMethod( arg: [Float]? ) -> [Float]! - /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! - /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) func doubleMethod( arg: Double ) -> Double - /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) func doubleArrayMethod( arg: [Double]? ) -> [Double]! - /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) func StringMethod( arg: String? ) -> String! - /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) func StringArrayMethod( arg: [String]? ) -> [String]! - /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! @@ -146,7 +146,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? - /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) private static var setLoopback_MethodID_34: jmethodID? @@ -154,14 +154,14 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_34, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_34, args: &__args, locals: &__locals ) } open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { setLoopback( loopback: _loopback ) } - /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) private static var booleanMethod_MethodID_35: jmethodID? @@ -177,7 +177,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return booleanMethod( arg: _arg ) } - /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) private static var booleanArrayMethod_MethodID_36: jmethodID? @@ -193,7 +193,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return booleanArrayMethod( arg: _arg ) } - /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) private static var boolean2dArrayMethod_MethodID_37: jmethodID? @@ -209,7 +209,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return boolean2dArrayMethod( arg: _arg ) } - /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) private static var byteMethod_MethodID_38: jmethodID? @@ -225,7 +225,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byteMethod( arg: _arg ) } - /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) private static var byteArrayMethod_MethodID_39: jmethodID? @@ -241,7 +241,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byteArrayMethod( arg: _arg ) } - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) private static var byte2dArrayMethod_MethodID_40: jmethodID? @@ -257,7 +257,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return byte2dArrayMethod( arg: _arg ) } - /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) private static var charMethod_MethodID_41: jmethodID? @@ -273,7 +273,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return charMethod( arg: _arg ) } - /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) private static var charArrayMethod_MethodID_42: jmethodID? @@ -289,7 +289,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return charArrayMethod( arg: _arg ) } - /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) private static var char2dArrayMethod_MethodID_43: jmethodID? @@ -305,7 +305,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return char2dArrayMethod( arg: _arg ) } - /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) private static var shortMethod_MethodID_44: jmethodID? @@ -321,7 +321,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return shortMethod( arg: _arg ) } - /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) private static var shortArrayMethod_MethodID_45: jmethodID? @@ -337,7 +337,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return shortArrayMethod( arg: _arg ) } - /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) private static var short2dArrayMethod_MethodID_46: jmethodID? @@ -353,7 +353,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return short2dArrayMethod( arg: _arg ) } - /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) private static var intMethod_MethodID_47: jmethodID? @@ -369,7 +369,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return intMethod( arg: _arg ) } - /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) private static var intArrayMethod_MethodID_48: jmethodID? @@ -385,7 +385,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return intArrayMethod( arg: _arg ) } - /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) private static var int2dArrayMethod_MethodID_49: jmethodID? @@ -401,7 +401,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return int2dArrayMethod( arg: _arg ) } - /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) private static var longMethod_MethodID_50: jmethodID? @@ -417,7 +417,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return longMethod( arg: _arg ) } - /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) private static var longArrayMethod_MethodID_51: jmethodID? @@ -433,7 +433,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return longArrayMethod( arg: _arg ) } - /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) private static var long2dArrayMethod_MethodID_52: jmethodID? @@ -449,7 +449,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return long2dArrayMethod( arg: _arg ) } - /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) private static var floatMethod_MethodID_53: jmethodID? @@ -465,7 +465,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return floatMethod( arg: _arg ) } - /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) private static var floatArrayMethod_MethodID_54: jmethodID? @@ -481,7 +481,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return floatArrayMethod( arg: _arg ) } - /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) private static var float2dArrayMethod_MethodID_55: jmethodID? @@ -497,7 +497,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return float2dArrayMethod( arg: _arg ) } - /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) private static var doubleMethod_MethodID_56: jmethodID? @@ -513,7 +513,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return doubleMethod( arg: _arg ) } - /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) private static var doubleArrayMethod_MethodID_57: jmethodID? @@ -529,7 +529,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return doubleArrayMethod( arg: _arg ) } - /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) private static var double2dArrayMethod_MethodID_58: jmethodID? @@ -545,7 +545,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return double2dArrayMethod( arg: _arg ) } - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) private static var StringMethod_MethodID_59: jmethodID? @@ -561,7 +561,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return StringMethod( arg: _arg ) } - /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) private static var StringArrayMethod_MethodID_60: jmethodID? @@ -577,7 +577,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return StringArrayMethod( arg: _arg ) } - /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) private static var String2dArrayMethod_MethodID_61: jmethodID? @@ -593,7 +593,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return String2dArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) private static var TestListenerMethod_MethodID_62: jmethodID? @@ -601,7 +601,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerMethod_MethodID_62, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerMethod_MethodID_62, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } @@ -610,7 +610,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return TestListenerMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) private static var TestListenerArrayMethod_MethodID_63: jmethodID? @@ -618,7 +618,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerArrayMethod_MethodID_63, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerArrayMethod_MethodID_63, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: __return ) } @@ -626,7 +626,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return TestListenerArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) private static var TestListener2dArrayMethod_MethodID_64: jmethodID? @@ -634,7 +634,7 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListener2dArrayMethod_MethodID_64, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListener2dArrayMethod_MethodID_64, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: __return ) } @@ -642,15 +642,15 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return TestListener2dArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) private static var testMap_MethodID_65: jmethodID? open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestListenerForward.testMap_MethodID_65, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestListenerForward.testMap_MethodID_65, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: __return ) } @@ -659,15 +659,15 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ return testMap( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) private static var testMapList_MethodID_66: jmethodID? open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestListenerForward.testMapList_MethodID_66, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestListenerForward.testMapList_MethodID_66, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: __return ) } @@ -994,7 +994,7 @@ private func SwiftHelloTest_TestListener_testMap_31( _ __env: UnsafeMutablePoint let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) } private typealias SwiftHelloTest_TestListener_testMapList_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? @@ -1004,7 +1004,7 @@ private func SwiftHelloTest_TestListener_testMapList_32( _ __env: UnsafeMutableP let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) } fileprivate class SwiftHelloTest_TestListenerLocal_: JNILocalProxy { @@ -1013,7 +1013,7 @@ fileprivate class SwiftHelloTest_TestListenerLocal_: JNILocalProxy Bool /**/ { return false @@ -1161,7 +1161,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return booleanMethod( arg: _arg ) } - /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { return nil @@ -1171,7 +1171,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return booleanArrayMethod( arg: _arg ) } - /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! /**/ { return nil @@ -1181,7 +1181,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return boolean2dArrayMethod( arg: _arg ) } - /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) open func byteMethod( arg: Int8 ) -> Int8 /**/ { return 0 @@ -1191,7 +1191,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return byteMethod( arg: _arg ) } - /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { return nil @@ -1201,7 +1201,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return byteArrayMethod( arg: _arg ) } - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { return nil @@ -1211,7 +1211,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return byte2dArrayMethod( arg: _arg ) } - /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) open func charMethod( arg: UInt16 ) -> UInt16 /**/ { return 0 @@ -1221,7 +1221,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return charMethod( arg: _arg ) } - /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! /**/ { return nil @@ -1231,7 +1231,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return charArrayMethod( arg: _arg ) } - /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { return nil @@ -1241,7 +1241,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return char2dArrayMethod( arg: _arg ) } - /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) open func shortMethod( arg: Int16 ) -> Int16 /**/ { return 0 @@ -1251,7 +1251,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return shortMethod( arg: _arg ) } - /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! /**/ { return nil @@ -1261,7 +1261,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return shortArrayMethod( arg: _arg ) } - /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! /**/ { return nil @@ -1271,7 +1271,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return short2dArrayMethod( arg: _arg ) } - /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) open func intMethod( arg: Int ) -> Int /**/ { return 0 @@ -1281,7 +1281,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return intMethod( arg: _arg ) } - /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) open func intArrayMethod( arg: [Int32]? ) -> [Int32]! /**/ { return nil @@ -1291,7 +1291,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return intArrayMethod( arg: _arg ) } - /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! /**/ { return nil @@ -1301,7 +1301,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return int2dArrayMethod( arg: _arg ) } - /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) open func longMethod( arg: Int64 ) -> Int64 /**/ { return 0 @@ -1311,7 +1311,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return longMethod( arg: _arg ) } - /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) open func longArrayMethod( arg: [Int64]? ) -> [Int64]! /**/ { return nil @@ -1321,7 +1321,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return longArrayMethod( arg: _arg ) } - /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! /**/ { return nil @@ -1331,7 +1331,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return long2dArrayMethod( arg: _arg ) } - /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) open func floatMethod( arg: Float ) -> Float /**/ { return 0 @@ -1341,7 +1341,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return floatMethod( arg: _arg ) } - /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) open func floatArrayMethod( arg: [Float]? ) -> [Float]! /**/ { return nil @@ -1351,7 +1351,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return floatArrayMethod( arg: _arg ) } - /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! /**/ { return nil @@ -1361,7 +1361,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return float2dArrayMethod( arg: _arg ) } - /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) open func doubleMethod( arg: Double ) -> Double /**/ { return 0 @@ -1371,7 +1371,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return doubleMethod( arg: _arg ) } - /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) open func doubleArrayMethod( arg: [Double]? ) -> [Double]! /**/ { return nil @@ -1381,7 +1381,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return doubleArrayMethod( arg: _arg ) } - /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! /**/ { return nil @@ -1391,7 +1391,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return double2dArrayMethod( arg: _arg ) } - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) open func StringMethod( arg: String? ) -> String! /**/ { return nil @@ -1401,7 +1401,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return StringMethod( arg: _arg ) } - /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) open func StringArrayMethod( arg: [String]? ) -> [String]! /**/ { return nil @@ -1411,7 +1411,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return StringArrayMethod( arg: _arg ) } - /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! /**/ { return nil @@ -1421,7 +1421,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return String2dArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /**/ { return nil @@ -1431,7 +1431,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return TestListenerMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! /**/ { return nil @@ -1441,7 +1441,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return TestListenerArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! /**/ { return nil @@ -1451,7 +1451,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return TestListener2dArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! /**/ { return nil @@ -1461,7 +1461,7 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return testMap( arg: _arg ) } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! /**/ { return nil diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift index 715921c..dfa2166 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift @@ -3,7 +3,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// class com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter /// +/// class com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter /// open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHelloTest_TestListener { @@ -16,36 +16,36 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell private static var SwiftHelloTest_TestResponderAdapterJNIClass: jclass? - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.loopback + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.loopback private static var loopback_FieldID: jfieldID? open var loopback: SwiftHelloTest_TestListener! { get { var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, locals: &__locals ) + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, locals: &__locals ) return __value != nil ? SwiftHelloTest_TestListenerForward( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter() private static var new_MethodID_1: jmethodID? public convenience init() { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTest$TestResponderAdapter", classCache: &SwiftHelloTest_TestResponderAdapter.SwiftHelloTest_TestResponderAdapterJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_TestResponderAdapter.new_MethodID_1, args: &__args, locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTest$TestResponderAdapter", classCache: &SwiftHelloTest_TestResponderAdapter.SwiftHelloTest_TestResponderAdapterJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_TestResponderAdapter.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public void com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) private static var setLoopback_MethodID_2: jmethodID? @@ -53,14 +53,14 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_2, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_2, args: &__args, locals: &__locals ) } open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { setLoopback( loopback: _loopback ) } - /// public boolean com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) + /// public boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) private static var booleanMethod_MethodID_3: jmethodID? @@ -76,7 +76,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return booleanMethod( arg: _arg ) } - /// public boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) + /// public boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) private static var booleanArrayMethod_MethodID_4: jmethodID? @@ -92,7 +92,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return booleanArrayMethod( arg: _arg ) } - /// public boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) + /// public boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) private static var boolean2dArrayMethod_MethodID_5: jmethodID? @@ -108,7 +108,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return boolean2dArrayMethod( arg: _arg ) } - /// public byte com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) + /// public byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) private static var byteMethod_MethodID_6: jmethodID? @@ -124,7 +124,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return byteMethod( arg: _arg ) } - /// public byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) + /// public byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) private static var byteArrayMethod_MethodID_7: jmethodID? @@ -140,7 +140,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return byteArrayMethod( arg: _arg ) } - /// public byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) + /// public byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) private static var byte2dArrayMethod_MethodID_8: jmethodID? @@ -156,7 +156,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return byte2dArrayMethod( arg: _arg ) } - /// public char com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) + /// public char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) private static var charMethod_MethodID_9: jmethodID? @@ -172,7 +172,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return charMethod( arg: _arg ) } - /// public char[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) + /// public char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) private static var charArrayMethod_MethodID_10: jmethodID? @@ -188,7 +188,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return charArrayMethod( arg: _arg ) } - /// public char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) + /// public char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) private static var char2dArrayMethod_MethodID_11: jmethodID? @@ -204,7 +204,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return char2dArrayMethod( arg: _arg ) } - /// public short com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) + /// public short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) private static var shortMethod_MethodID_12: jmethodID? @@ -220,7 +220,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return shortMethod( arg: _arg ) } - /// public short[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) + /// public short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) private static var shortArrayMethod_MethodID_13: jmethodID? @@ -236,7 +236,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return shortArrayMethod( arg: _arg ) } - /// public short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + /// public short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) private static var short2dArrayMethod_MethodID_14: jmethodID? @@ -252,7 +252,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return short2dArrayMethod( arg: _arg ) } - /// public int com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) + /// public int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) private static var intMethod_MethodID_15: jmethodID? @@ -268,7 +268,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return intMethod( arg: _arg ) } - /// public int[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) + /// public int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) private static var intArrayMethod_MethodID_16: jmethodID? @@ -284,7 +284,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return intArrayMethod( arg: _arg ) } - /// public int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) + /// public int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) private static var int2dArrayMethod_MethodID_17: jmethodID? @@ -300,7 +300,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return int2dArrayMethod( arg: _arg ) } - /// public long com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) + /// public long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) private static var longMethod_MethodID_18: jmethodID? @@ -316,7 +316,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return longMethod( arg: _arg ) } - /// public long[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) + /// public long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) private static var longArrayMethod_MethodID_19: jmethodID? @@ -332,7 +332,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return longArrayMethod( arg: _arg ) } - /// public long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) + /// public long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) private static var long2dArrayMethod_MethodID_20: jmethodID? @@ -348,7 +348,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return long2dArrayMethod( arg: _arg ) } - /// public float com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) + /// public float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) private static var floatMethod_MethodID_21: jmethodID? @@ -364,7 +364,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return floatMethod( arg: _arg ) } - /// public float[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) + /// public float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) private static var floatArrayMethod_MethodID_22: jmethodID? @@ -380,7 +380,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return floatArrayMethod( arg: _arg ) } - /// public float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) + /// public float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) private static var float2dArrayMethod_MethodID_23: jmethodID? @@ -396,7 +396,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return float2dArrayMethod( arg: _arg ) } - /// public double com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) private static var doubleMethod_MethodID_24: jmethodID? @@ -412,7 +412,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return doubleMethod( arg: _arg ) } - /// public double[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) + /// public double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) private static var doubleArrayMethod_MethodID_25: jmethodID? @@ -428,7 +428,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return doubleArrayMethod( arg: _arg ) } - /// public double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) + /// public double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) private static var double2dArrayMethod_MethodID_26: jmethodID? @@ -444,7 +444,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return double2dArrayMethod( arg: _arg ) } - /// public java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) + /// public java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) private static var StringMethod_MethodID_27: jmethodID? @@ -460,7 +460,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return StringMethod( arg: _arg ) } - /// public java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) + /// public java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) private static var StringArrayMethod_MethodID_28: jmethodID? @@ -476,7 +476,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return StringArrayMethod( arg: _arg ) } - /// public java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) + /// public java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) private static var String2dArrayMethod_MethodID_29: jmethodID? @@ -492,7 +492,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return String2dArrayMethod( arg: _arg ) } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) private static var TestListenerMethod_MethodID_30: jmethodID? @@ -500,7 +500,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerMethod_MethodID_30, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerMethod_MethodID_30, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } @@ -509,7 +509,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return TestListenerMethod( arg: _arg ) } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) private static var TestListenerArrayMethod_MethodID_31: jmethodID? @@ -517,7 +517,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerArrayMethod_MethodID_31, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerArrayMethod_MethodID_31, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: __return ) } @@ -525,7 +525,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return TestListenerArrayMethod( arg: _arg ) } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) private static var TestListener2dArrayMethod_MethodID_32: jmethodID? @@ -533,7 +533,7 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListener2dArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListener2dArrayMethod_MethodID_32, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: __return ) } @@ -541,15 +541,15 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return TestListener2dArrayMethod( arg: _arg ) } - /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) private static var testMap_MethodID_33: jmethodID? open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMap_MethodID_33, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMap_MethodID_33, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: __return ) } @@ -558,15 +558,15 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell return testMap( arg: _arg ) } - /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) private static var testMapList_MethodID_34: jmethodID? open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMapList_MethodID_34, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMapList_MethodID_34, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: __return ) } @@ -892,7 +892,7 @@ private func SwiftHelloTest_TestResponderAdapter_testMap_31( _ __env: UnsafeMuta let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) } private typealias SwiftHelloTest_TestResponderAdapter_testMapList_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? @@ -902,7 +902,7 @@ private func SwiftHelloTest_TestResponderAdapter_testMapList_32( _ __env: Unsafe let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: arg ) ) JNI.inNative = false; var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) } private typealias SwiftHelloTest_TestResponderAdapter_equals_36_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jboolean @@ -941,7 +941,7 @@ fileprivate class SwiftHelloTest_TestResponderAdapterLocal_: JNIObjectProxy java_swift.JavaClass! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMap", classCache: &SwiftHelloTypes_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", classCache: &SwiftHelloTypes_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil } diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift index 4b7dc47..8c60149 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift @@ -3,7 +3,7 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// class com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList /// +/// class com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList /// open class SwiftHelloTypes_ListenerMapList: java_swift.HashMap { @@ -46,26 +46,26 @@ open class SwiftHelloTypes_ListenerMapList: java_swift.HashMap { /// transient java.util.Collection java.util.AbstractMap.values - /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList() private static var new_MethodID_1: jmethodID? public convenience init() { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapList.SwiftHelloTypes_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapList.SwiftHelloTypes_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList.valueClass() + /// public static java.lang.Class com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList.valueClass() private static var valueClass_MethodID_2: jmethodID? open class func valueClass() -> java_swift.JavaClass! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil } diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift similarity index 51% rename from com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift rename to com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift index 73404a1..0fc5408 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMapList.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift @@ -3,12 +3,9 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Aug 05 18:45:58 BST 2017 /// +/// class com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap /// -/// class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMapList /// - -open class SwiftHelloBinding_ListenerMapList: java_swift.HashMap { +open class SwiftHelloTypes_StringMap: java_swift.HashMap { public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { self.init( javaObject: nil ) @@ -17,7 +14,7 @@ open class SwiftHelloBinding_ListenerMapList: java_swift.HashMap { } } - private static var SwiftHelloBinding_ListenerMapListJNIClass: jclass? + private static var SwiftHelloTypes_StringMapJNIClass: jclass? /// private static final long java.util.HashMap.serialVersionUID @@ -49,26 +46,43 @@ open class SwiftHelloBinding_ListenerMapList: java_swift.HashMap { /// transient java.util.Collection java.util.AbstractMap.values - /// public com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMapList() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap() private static var new_MethodID_1: jmethodID? public convenience init() { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMapList", classCache: &SwiftHelloBinding_ListenerMapList.SwiftHelloBinding_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloBinding_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", classCache: &SwiftHelloTypes_StringMap.SwiftHelloTypes_StringMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_StringMap.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMapList.valueClass() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap(java.util.Map) + + private static var new_MethodID_2: jmethodID? + + public convenience init( map: java_swift.JavaMap? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "java/util/Map", locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", classCache: &SwiftHelloTypes_StringMap.SwiftHelloTypes_StringMapJNIClass, methodSig: "(Ljava/util/Map;)V", methodCache: &SwiftHelloTypes_StringMap.new_MethodID_2, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + public convenience init( _ _map: java_swift.JavaMap? ) { + self.init( map: _map ) + } + + /// public static java.lang.Class com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap.valueClass() - private static var valueClass_MethodID_2: jmethodID? + private static var valueClass_MethodID_3: jmethodID? open class func valueClass() -> java_swift.JavaClass! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMapList", classCache: &SwiftHelloBinding_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", classCache: &SwiftHelloTypes_StringMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_3, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil } diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift similarity index 51% rename from com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift rename to com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift index 985a847..7f257e9 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_ListenerMap.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift @@ -3,12 +3,9 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home /// -/// Sat Aug 05 18:45:58 BST 2017 /// +/// class com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList /// -/// class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMap /// - -open class SwiftHelloBinding_ListenerMap: java_swift.HashMap { +open class SwiftHelloTypes_StringMapList: java_swift.HashMap { public convenience init?( casting object: java_swift.JavaObject, _ file: StaticString = #file, _ line: Int = #line ) { self.init( javaObject: nil ) @@ -17,7 +14,7 @@ open class SwiftHelloBinding_ListenerMap: java_swift.HashMap { } } - private static var SwiftHelloBinding_ListenerMapJNIClass: jclass? + private static var SwiftHelloTypes_StringMapListJNIClass: jclass? /// private static final long java.util.HashMap.serialVersionUID @@ -49,26 +46,43 @@ open class SwiftHelloBinding_ListenerMap: java_swift.HashMap { /// transient java.util.Collection java.util.AbstractMap.values - /// public com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMap() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList() private static var new_MethodID_1: jmethodID? public convenience init() { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __object = JNIMethod.NewObject( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMap", classCache: &SwiftHelloBinding_ListenerMap.SwiftHelloBinding_ListenerMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloBinding_ListenerMap.new_MethodID_1, args: &__args, locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", classCache: &SwiftHelloTypes_StringMapList.SwiftHelloTypes_StringMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_StringMapList.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public static java.lang.Class com.johnholdsworth.bindings.SwiftHelloBinding$ListenerMap.valueClass() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList(java.util.Map) + + private static var new_MethodID_2: jmethodID? + + public convenience init( map: java_swift.JavaMap? ) { + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + var __locals = [jobject]() + __args[0] = JNIType.toJava( value: map, mapClass: "java/util/Map", locals: &__locals ) + let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", classCache: &SwiftHelloTypes_StringMapList.SwiftHelloTypes_StringMapListJNIClass, methodSig: "(Ljava/util/Map;)V", methodCache: &SwiftHelloTypes_StringMapList.new_MethodID_2, args: &__args, locals: &__locals ) + self.init( javaObject: __object ) + JNI.DeleteLocalRef( __object ) + } + + public convenience init( _ _map: java_swift.JavaMap? ) { + self.init( map: _map ) + } + + /// public static java.lang.Class com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList.valueClass() - private static var valueClass_MethodID_2: jmethodID? + private static var valueClass_MethodID_3: jmethodID? open class func valueClass() -> java_swift.JavaClass! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/bindings/SwiftHelloBinding$ListenerMap", classCache: &SwiftHelloBinding_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", classCache: &SwiftHelloTypes_StringMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_3, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil } diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift index 27088f4..d044328 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift @@ -3,11 +3,11 @@ import java_swift /// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// -/// interface com.johnholdsworth.bindings.SwiftHelloTypes$TextListener /// +/// interface com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener /// public protocol SwiftHelloTypes_TextListener: JavaProtocol { - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener.getText() func getText() -> String! @@ -18,7 +18,7 @@ open class SwiftHelloTypes_TextListenerForward: JNIObjectForward, SwiftHelloType private static var SwiftHelloTypes_TextListenerJNIClass: jclass? - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener.getText() private static var getText_MethodID_2: jmethodID? @@ -82,7 +82,7 @@ open class SwiftHelloTypes_TextListenerBase: SwiftHelloTypes_TextListener { public init() {} - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener.getText() open func getText() -> String! /**/ { return nil diff --git a/examples b/examples index c0276ef..638b239 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit c0276ef65222462b868c7e602b9d65c9ca15aa2c +Subproject commit 638b2394d03b31384ca62b2dcaedf939d28b32bb diff --git a/genhello.sh b/genhello.sh index 8c8dcd9..7f54a51 100755 --- a/genhello.sh +++ b/genhello.sh @@ -8,33 +8,35 @@ cd "$(dirname "$0")/src" && export JAVA_HOME=${JAVA_HOME?-Please export JAVA_HOME} +export COMPANY=johnholdsworth + # clear out any generated swift files \rm `find ../{swift-android-samples,swift-android-kotlin} -name 'SwiftHello*.swift'` 2>/dev/null # clear out generated Java proxy files -\rm -rf ../{swift-android-samples,swift-android-kotlin}/*/src/main/java/org/swiftjava/com_johnholdsworth +\rm -rf ../{swift-android-samples,swift-android-kotlin}/*/src/main/java/org/swiftjava/com_$COMPANY # compile bindings and package them into for jar for genswift.sh -$JAVA_HOME/bin/javac -parameters com/johnholdsworth/bindings/*.java && +$JAVA_HOME/bin/javac -parameters com/$COMPANY/swiftbindings/*.java && -$JAVA_HOME/bin/jar cf /tmp/swifthello.jar com/johnholdsworth/bindings/*.class && +$JAVA_HOME/bin/jar cf /tmp/swifthello.jar com/$COMPANY/swiftbindings/*.class && # The last argument is the frameworks the project # is dependent on. java_lang for example will add # about 2mb to the app's apk and needs to be added # to the project's src/main/swift/Package.swift -cd .. && ./genswift.sh com.johnholdsworth.bindings /tmp/swifthello.jar "" && +cd .. && ./genswift.sh com.$COMPANY.swiftbindings /tmp/swifthello.jar "" && # copy newly generated sources derived from the bindings into the example projects -mkdir -p swift-android-samples/swifthello/src/main/java/{com/johnholdsworth/bindings,org/swiftjava/com_johnholdsworth} swift-android-kotlin/app/src/main/java/{com/johnholdsworth/bindings,org/swiftjava/com_johnholdsworth} && +mkdir -p swift-android-samples/swifthello/src/main/java/{com/$COMPANY/swiftbindings,org/swiftjava/com_$COMPANY} swift-android-kotlin/app/src/main/java/{com/$COMPANY/swiftbindings,org/swiftjava/com_$COMPANY} && -\cp -v src/com/johnholdsworth/bindings/*.java swift-android-samples/swifthello/src/main/java/com/johnholdsworth/bindings && -\cp -v src/com/johnholdsworth/bindings/*.java swift-android-kotlin/app/src/main/java/com/johnholdsworth/bindings && +\cp -v src/com/$COMPANY/swiftbindings/*.java swift-android-samples/swifthello/src/main/java/com/$COMPANY/swiftbindings && +\cp -v src/com/$COMPANY/swiftbindings/*.java swift-android-kotlin/app/src/main/java/com/$COMPANY/swiftbindings && -\cp -v src/org/swiftjava/com_johnholdsworth/*.java swift-android-samples/swifthello/src/main/java/org/swiftjava/com_johnholdsworth && -\cp -v src/org/swiftjava/com_johnholdsworth/*.java swift-android-kotlin/app/src/main/java/org/swiftjava/com_johnholdsworth && +\cp -v src/org/swiftjava/com_$COMPANY/*.java swift-android-samples/swifthello/src/main/java/org/swiftjava/com_$COMPANY && +\cp -v src/org/swiftjava/com_$COMPANY/*.java swift-android-kotlin/app/src/main/java/org/swiftjava/com_$COMPANY && -\cp -v com_johnholdsworth/Sources/SwiftHello*.swift swift-android-samples/swifthello/src/main/swift/Sources -\cp -v com_johnholdsworth/Sources/SwiftHello*.swift swift-android-kotlin/app/src/main/swift/Sources +\cp -v com_$COMPANY/Sources/SwiftHello*.swift swift-android-samples/swifthello/src/main/swift/Sources +\cp -v com_$COMPANY/Sources/SwiftHello*.swift swift-android-kotlin/app/src/main/swift/Sources diff --git a/genjar.sh b/genjar.sh index 6ba9202..baf77ae 100755 --- a/genjar.sh +++ b/genjar.sh @@ -11,8 +11,8 @@ export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home \rm `find . -name '*.class'` 2>/dev/null -$JAVA_HOME/bin/javac org/swiftjava/{*,*/*}.java com/johnholdsworth/bindings/*.java && +$JAVA_HOME/bin/javac org/swiftjava/{*,*/*}.java com/johnholdsworth/swiftbindings/*.java && -$JAVA_HOME/bin/jar cfv ../swiftjava.jar org/swiftjava/{*,*/*}.class com/johnholdsworth/bindings/*.class && +$JAVA_HOME/bin/jar cfv ../swiftjava.jar org/swiftjava/{*,*/*}.class com/johnholdsworth/swiftbindings/*.class && \cp ../swiftjava.jar ~/.swiftjava.jar diff --git a/gentests.rb b/gentests.rb index 9a0aa2c..b36fa43 100755 --- a/gentests.rb +++ b/gentests.rb @@ -39,7 +39,7 @@ } java = File.open( "src/org/swiftjava/SwiftTest.java", "w" ) -java2 = File.open( "src/com/johnholdsworth/bindings/SwiftHelloTest.java", "w" ) +java2 = File.open( "src/com/johnholdsworth/swiftbindings/SwiftHelloTest.java", "w" ) java.puts( < /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + open class func TestListenerMethodStatic( arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerMethodStatic", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerMethodStatic_MethodID_56, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerMethodStatic", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerMethodStatic_MethodID_56, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil + return __return != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil } - open class func TestListenerMethodStatic( _ _arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + open class func TestListenerMethodStatic( _ _arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { return TestListenerMethodStatic( arg0: _arg0 ) } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) private static var TestListenerMethod_MethodID_57: jmethodID? - open func TestListenerMethod( arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + open func TestListenerMethod( arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerMethod_MethodID_57, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerMethod_MethodID_57, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil + return __return != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil } - open func TestListenerMethod( _ _arg0: /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + open func TestListenerMethod( _ _arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { return TestListenerMethod( arg0: _arg0 ) } - /// public static com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethodStatic(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) private static var TestListenerArrayMethodStatic_MethodID_58: jmethodID? - open class func TestListenerArrayMethodStatic( arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open class func TestListenerArrayMethodStatic( arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerArrayMethodStatic", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerArrayMethodStatic_MethodID_58, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerArrayMethodStatic", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerArrayMethodStatic_MethodID_58, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) } - open class func TestListenerArrayMethodStatic( _ _arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open class func TestListenerArrayMethodStatic( _ _arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { return TestListenerArrayMethodStatic( arg0: _arg0 ) } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) private static var TestListenerArrayMethod_MethodID_59: jmethodID? - open func TestListenerArrayMethod( arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open func TestListenerArrayMethod( arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerArrayMethod_MethodID_59, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerArrayMethod_MethodID_59, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) } - open func TestListenerArrayMethod( _ _arg0: [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open func TestListenerArrayMethod( _ _arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { return TestListenerArrayMethod( arg0: _arg0 ) } - /// public static com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethodStatic(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) private static var TestListener2dArrayMethodStatic_MethodID_60: jmethodID? - open class func TestListener2dArrayMethodStatic( arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + open class func TestListener2dArrayMethodStatic( arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListener2dArrayMethodStatic", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &TestListener2dArrayMethodStatic_MethodID_60, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListener2dArrayMethodStatic", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListener2dArrayMethodStatic_MethodID_60, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) } - open class func TestListener2dArrayMethodStatic( _ _arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + open class func TestListener2dArrayMethodStatic( _ _arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { return TestListener2dArrayMethodStatic( arg0: _arg0 ) } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) private static var TestListener2dArrayMethod_MethodID_61: jmethodID? - open func TestListener2dArrayMethod( arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + open func TestListener2dArrayMethod( arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/bindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListener2dArrayMethod_MethodID_61, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListener2dArrayMethod_MethodID_61, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) } - open func TestListener2dArrayMethod( _ _arg0: [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.bindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + open func TestListener2dArrayMethod( _ _arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { return TestListener2dArrayMethod( arg0: _arg0 ) } diff --git a/src/com/johnholdsworth/bindings/SwiftHelloTypes.java b/src/com/johnholdsworth/bindings/SwiftHelloTypes.java deleted file mode 100644 index 91a2f18..0000000 --- a/src/com/johnholdsworth/bindings/SwiftHelloTypes.java +++ /dev/null @@ -1,33 +0,0 @@ - -// Shared types/interfaces between Java and Swift - -package com.johnholdsworth.bindings; - -import java.util.HashMap; - -public interface SwiftHelloTypes { - - // These are required becuase of type erasure in jars - public static class ListenerMap extends HashMap { - public static Class valueClass() { - return TextListener.class; - } - } - - public static class ListenerMapList extends HashMap { - public static Class valueClass() { - return (new TextListener [] {}).getClass(); - } - } - - // An example of publishing an object to Java. - // Add the associated protocol to an class and - // objects can be passed to a responder message. - public interface TextListener { - - public String getText(); - - } - -} - diff --git a/src/com/johnholdsworth/bindings/SwiftHelloBinding.java b/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java similarity index 61% rename from src/com/johnholdsworth/bindings/SwiftHelloBinding.java rename to src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java index 7a77886..4865578 100644 --- a/src/com/johnholdsworth/bindings/SwiftHelloBinding.java +++ b/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java @@ -1,9 +1,11 @@ -package com.johnholdsworth.bindings; +package com.johnholdsworth.swiftbindings; -import com.johnholdsworth.bindings.SwiftHelloTypes.TextListener; -import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap; -import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.TextListener; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList; public interface SwiftHelloBinding { @@ -20,6 +22,12 @@ public interface Listener { public void processedMapList( ListenerMapList map ); + public void processStringMap( StringMap map ); + + public void processStringMapList( StringMapList map ); + + public double throwException() throws Exception; + public SwiftHelloTest.TestListener testResponder( int loopback ); } @@ -41,6 +49,10 @@ public interface Responder { public void processMapList( ListenerMapList map ); + public void processedStringMap( StringMap map ); + + public void processedStringMapList( StringMapList map ); + public String[] debug( String msg ); public SwiftHelloTest.TestListener testResponder( int loopback ); @@ -48,3 +60,4 @@ public interface Responder { } } + diff --git a/src/com/johnholdsworth/bindings/SwiftHelloTest.java b/src/com/johnholdsworth/swiftbindings/SwiftHelloTest.java similarity index 98% rename from src/com/johnholdsworth/bindings/SwiftHelloTest.java rename to src/com/johnholdsworth/swiftbindings/SwiftHelloTest.java index f4ec039..acd414e 100644 --- a/src/com/johnholdsworth/bindings/SwiftHelloTest.java +++ b/src/com/johnholdsworth/swiftbindings/SwiftHelloTest.java @@ -1,11 +1,11 @@ // auto generated by ../../../../gentests.rb -package com.johnholdsworth.bindings; +package com.johnholdsworth.swiftbindings; -import com.johnholdsworth.bindings.SwiftHelloTypes.TextListener; -import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap; -import com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.TextListener; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap; +import com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList; public interface SwiftHelloTest { diff --git a/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java b/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java new file mode 100644 index 0000000..c4a20cd --- /dev/null +++ b/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java @@ -0,0 +1,57 @@ + +// Shared types/interfaces between Java and Swift + +package com.johnholdsworth.swiftbindings; + +import java.util.Map; +import java.util.HashMap; + +public interface SwiftHelloTypes { + + // An example of publishing an object to Java. + // Add the associated protocol to an class and + // objects can be passed to a responder message. + public interface TextListener { + public String getText(); + } + + // These are required because of type erasure in Java jars + public static class ListenerMap extends HashMap { + public static Class valueClass() { + return TextListener.class; + } + } + + public static class ListenerMapList extends HashMap { + public static Class valueClass() { + return (new TextListener [] {}).getClass(); + } + } + + public static class StringMap extends HashMap { + public static Class valueClass() { + return String.class; + } + public StringMap() { + super(); + } + public StringMap(Map map) { + super(map); + } + } + + public static class StringMapList extends HashMap { + public static Class valueClass() { + return (new String [] {}).getClass(); + } + public StringMapList() { + super(); + } + public StringMapList(Map map) { + super(map); + } + } + +} + + diff --git a/src/genswift.java b/src/genswift.java index 7fb7c69..723d09e 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -57,13 +57,13 @@ class genswift { static void print( String s ) { System.out.println(s); } - + static int apiVersion = 2; static String Unclassed = "Unclassed"; static String pathToWriteSource = "./"; static String organisation = "org.swiftjava."; - static String proxySourcePath = pathToWriteSource+"src/"+organisation.replace('.', '/'); + static String proxySourcePath = organisation.replace('.', '/'); static String repoBase = "https://github.com/SwiftJava/"; boolean isUnclassed( Class type ) { @@ -115,6 +115,7 @@ boolean isUnclassed( Class type ) { put( Class.class.getName(), true ); put( Runnable.class.getName(), true ); put( Throwable.class.getName(), true ); + put( Exception.class.getName(), true ); put( java.util.Set.class.getName(), true ); put( java.util.Map.class.getName(), true ); put( java.util.HashMap.class.getName(), true ); @@ -217,15 +218,24 @@ static boolean forwardReference( String currentFramework, String framework ) { static int filesWritten = 0; static int frameworkLevel = 0; static int unclassedReferences = 0; - - static String invocation = "genswift.java"; + + static String invocation = "genswift.java", packageOrder, swiftSourceRoot, javaSourceRoot; public static void main( String args[] ) { for ( int i=0 ; i 10 ) continue; - + int mustBeAfter = i; for ( int j=i+1; j @@ -286,19 +296,19 @@ public static void main( String args[] ) { StringBuilder pkg = new StringBuilder(); pkg.append( "\nimport PackageDescription\n\nlet package = Package(\n"); pkg.append(" name: \""+newFramework+"\",\n dependencies: [\n"); - + if ( crossReferences.containsKey(newFramework) ) for ( String depend : crossReferences.get(newFramework).keySet() ) if ( !newFramework.equals(depend) ) { if ( forwardReference( newFramework, depend ) ) pkg.append("//"); - pkg.append(" Package(url: \"" + repoBase + depend + + pkg.append(" .Package(url: \"" + repoBase + depend + ".git\", versions: Version("+apiVersion+",0,0).. fieldsSeen, boolean isInterface, Cl String fieldName = safe(field.getName()); boolean isFinal = Modifier.isFinal(mods); boolean isStatic = Modifier.isStatic(mods); - + boolean skipField = (fieldOverride( field, superclazz)) && isStatic || !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || fieldsSeen.containsKey(fieldName) || fieldName.equals(classSuffix) || interfaceMethods.containsKey(fieldName+"()") || @@ -555,21 +566,21 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl } catch ( NoSuchFieldException e ) { } - + // if ( fieldType.isInterface() && fieldType.isArray() ) // continue; //// - + boolean arrayType = crashesCompilerOnLinx(fieldType); if ( arrayType ) code.append( " #if !os(Linux)\n"); - + String fieldIDVar = safe(field.getName())+"_FieldID"; if ( ! isInterface ) code.append( " private static var "+fieldIDVar+": jfieldID?\n\n" ); - + if ( !isStatic ) fieldIDVar = classSuffix+"."+fieldIDVar; - + code.append( " "+(fieldOverride(field,superclazz)&&!isLost?"override ":"")+(isInterface?"":visibility)+ (Modifier.isStatic(mods) ? "static " : "")+"var "+fieldName+": "+ swiftTypeFor(fieldType, true, false) ); @@ -581,7 +592,7 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl (isStatic? ", className: \""+pathToClass+"\", classCache: &"+classCacheVar : ", object: javaObject"); - + code.append( " {\n" ); code.append( " get {\n" ); if ( !isStatic ) @@ -635,7 +646,7 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis for ( Parameter param : constructor.getParameters() ) if ( crashesCompilerOnLinx( param.getType() ) ) arrayType = true; - + if ( arrayType ) code.append( " #if !os(Linux)\n"); @@ -644,7 +655,7 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis code.append( " public "+/*(overridden != null && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ "convenience init("+argsFor( constructor, false, true )+")"+(canThrow?" throws":"")+" {\n" ); code.append( functionHeader( constructor.getParameters(), null, isListenerBase ? 1 : 0 ) ); - + String signature = jniArgs(constructor, "", ""); if ( isListenerBase ) { signature = jniArgs(constructor, "", "J"); @@ -721,14 +732,14 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, // argument names differ? if ( skipMethod && !(""+method).equals("public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException") - &&!(""+method).equals("public java.util.Set java.util.HashMap.keySet()") ) { + &&!(""+method).equals("public java.util.Set java.util.HashMap.keySet()") ) { print(methodName + (overridden != null && !isStatic && !isListenerBase) + (!Modifier.isPublic(mods) && !Modifier.isProtected(mods)) + (isInterface && (dontEnforceProtocol(clazz) || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType()))) + methodName.startsWith("lambda$") + fieldExists); continue; } - + String namedSignature = swiftSignatureFor( method, isProtocol, true, true); if ( methodsSeen.containsKey(namedSignature) ) continue; @@ -740,7 +751,7 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, String unnamedSignature = swiftSignatureFor( method, isProtocol, true, false); boolean createsNameless = !methodsSeen.containsKey(unnamedSignature) && !fieldExists && !(isInterface && lostType(returnType)) && method.getParameterCount() != 0; - + if ( arrayType ) code.append( " #if !os(Linux)\n"); @@ -762,7 +773,7 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, if ( !isProtocol && (!isListenerBase || !isInterface) ) code.append(" private static var "+methodIDVar+": jmethodID?\n\n" ); - code.append(" " + (overridden != null && !isLost && !createBody && !(isListenerBase && isProtocol) + code.append(" " + (overridden != null && !isLost && !createBody && !(isListenerBase && isProtocol) || isAdapter() && isListenerBase ? "override " : "") + swiftSignatureFor(method, isProtocol, false, true, interfaceMethod)); @@ -778,10 +789,10 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, code.append( functionHeader( method.getParameters(), interfaceMethod, 0 ) ); code.append( " " ); - if ( notVoid ) + if ( notVoid ) code.append( "let __return = " ); - String methodArgs = + String methodArgs = (Modifier.isStatic(mods)? "className: \""+pathToClass+"\", classCache: &"+classCacheVar : "object: javaObject")+ @@ -790,7 +801,7 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, code.append( "JNIMethod.Call"+funcType( returnType, mods )+"Method( "+methodArgs+ ", args: &__args, locals: "+(method.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); - if ( isObjectType( returnType ) ) // || returnType.isArray() && !returnType.getComponentType().isPrimitive() ) + if ( isObjectType( returnType ) ) // || returnType.isArray() && !returnType.getComponentType().isPrimitive() ) code.append( " defer { JNI.DeleteLocalRef( __return ) }\n" ); if ( canThrow ) @@ -803,8 +814,7 @@ else if ( notVoid(returnType) ) { String passthrough = ""; for ( Parameter param : method.getParameters() ) passthrough += (passthrough==""?" ":", ")+safe(param.getName())+": _"+safe(param.getName()); - code.append(" return "+ (clazz.isInterface() ? - returnType.isPrimitive() ? returnType.getName() == "boolean" ? "false" : "0" : "nil" : + code.append(" return "+ (clazz.isInterface() ? defaultReturn(returnType) : "super."+methodName+"("+passthrough+" )")+"\n"); } @@ -866,8 +876,11 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect decoder( safe(param.getName()), param.getType() );//+(!p.getType().isPrimitive()?"!":""); String call = classSuffix + "Local_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject )." + method.getName() + "(" + passthrough + " )"; - if ( method.getExceptionTypes().length != 0 ) - call = "try! " + call; + boolean rethrow = method.getExceptionTypes().length != 0; + if ( rethrow ) { + call = "try " + call; + code.append(" do {\n"); + } Class returnType = method.getReturnType(); if ( notVoid(returnType) ) @@ -875,9 +888,21 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" JNI.inNative = true;\n " + call + "\n JNI.inNative = false;\n"); if ( notVoid(returnType) ) { code.append(" var locals = [jobject]()\n"); - code.append(" return JNI.check( "+(!isObjectType( returnType ) || true ? //returnType.isPrimitive() || returnType == java.lang.String.class ? - encoder("__return", returnType, "&locals") + encodeSuffix(returnType) : - "/*JNI.api.NewWeakGlobalRef( JNI.env,*/ __return?.takeJavaObject /*)*/")+", &locals, removeLast: true )\n"); + code.append(" return JNI.check( "+( + encoder("__return", returnType, "&locals") + encodeSuffix(returnType))+", &locals, removeLast: true )\n"); + } + + if ( rethrow ) { + code.append(" }\n"); + code.append(" catch let exception as Throwable {\n"); + code.append(" _ = exception.withJavaObject { JNI.api.Throw( JNI.env, $0 ) }\n"); + if ( notVoid(returnType) ) + code.append(" return "+defaultReturn(returnType)+"\n"); + code.append(" }\n catch {\n"); + code.append(" _ = Exception(\"Unknown exception\").withJavaObject { JNI.api.Throw( JNI.env, $0 ) }\n"); + if ( notVoid(returnType) ) + code.append(" return "+defaultReturn(returnType)+"\n"); + code.append(" }\n"); } code.append("}\n"); @@ -885,7 +910,7 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append("#endif\n"); code.append("\n"); } - + code.append("fileprivate class " + classSuffix + "Local_: JNI"+(isInterface?"Local":"Object")+ "Proxy<"+classSuffix+(isInterface?", Any":"")+"> {\n\n"); @@ -909,7 +934,7 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" #endif\n"); code.append("\n"); } - + String jniName = classSuffix + "__finalize"; code.append(" natives.append( JNINativeMethod( name: strdup(\"__finalize\"), signature: strdup(\"(J)V\")" + ", fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) )\n\n"); @@ -936,15 +961,15 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" return "+classSuffix+"Local_( owned: self, proto: self ).localJavaObject( locals )\n"); code.append(" }\n\n}\n\n"); } - + code.append("open class " + classSuffix + "Base: " + (isInterface&&false?"JNIObject, ":"") + classSuffix + " {\n\n"); if ( !isInterface ) { code.append(" private static var "+classSuffix+"BaseJNIClass: jclass? = "+classSuffix+"Local_.proxyClass()\n\n" ); code.append(" private lazy var __local: "+classSuffix+"Local_? = "+classSuffix+"Local_( owned: self, proto: self )\n\n"); - + code.append(" override open func clearLocal() {\n __local = nil\n }\n\n"); - + code.append(" open func inherit( _ parent: JNIObjectProtocol ) {\n"); code.append(" parent.withJavaObject {\n"); code.append(" self.javaObject = $0\n"); @@ -965,12 +990,13 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append("}\n"); - generateJavaCallbackStub( methods ); + generateJavaCallbackStub( methods ); } - + void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOException { StringBuilder java = new StringBuilder(); - + + java.append("\n/// generated by: "+invocation+" ///\n"); java.append("\n/// "+clazz+" ///\n\n"); java.append("package "+organisation+currentFramework+";\n\n"+ @@ -978,6 +1004,7 @@ void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOExc "public class "+classSuffix+ "Proxy "+ (isInterface?"implements ":"extends ")+className.replace('$', '.')+" {\n\n"); + java.append(" // address of proxy object\n"); java.append(" long __swiftObject;\n\n"); if ( isInterface ) { @@ -991,12 +1018,12 @@ void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOExc int mods = constructor.getModifiers(); if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) ) continue; - + String args = longJavaArgs(constructor); java.append(" "+classSuffix+"Proxy("+args+(args==""?" ":", ")+"long __swiftObject ) {\n" ); args = ""; - for (Parameter param : constructor.getParameters()) + for (Parameter param : constructor.getParameters()) args += (args == ""?" ":", ")+safe(param.getName()); java.append(" super("+args+" );\n"); java.append(" this.__swiftObject = __swiftObject;\n }\n\n"); @@ -1051,12 +1078,13 @@ void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOExc } java.append( - " public native void __finalize( long __swiftObject );\n\n" + - " public void finalize() {\n" + - " __finalize( __swiftObject );\n" + + " public native void __finalize( long __swiftObject );\n\n" + + " public void finalize() {\n" + + " __finalize( __swiftObject );\n" + " }\n\n}\n"); - String dest = proxySourcePath+currentFramework; + String dest = (javaSourceRoot != null ? javaSourceRoot+"/" : + pathToWriteSource+"src/")+proxySourcePath+currentFramework; new File( dest ).mkdirs(); String javaSource = dest+"/"+classSuffix+"Proxy.java"; FileOutputStream out = new FileOutputStream( javaSource ); @@ -1066,11 +1094,11 @@ void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOExc } void generateInterfaceFields( HashMap fieldsSeen, Class intrface ) { - generateFields( fieldsSeen, isInterface, intrface ); + generateFields( fieldsSeen, isInterface, intrface ); for ( Class secondLevel : intrface.getInterfaces() ) - generateInterfaceFields( fieldsSeen, secondLevel ); + generateInterfaceFields( fieldsSeen, secondLevel ); } - + String longJavaType( Class type ) { return type.isArray() ? longJavaType( type.getComponentType() )+"[]" : type.getName().replace('$', '.'); } @@ -1095,7 +1123,7 @@ boolean interfacesChangingReturnTypeInSubclass( Class intrface ) { return /*intrface == java.util.stream.BaseStream.class || intrface == java.util.concurrent.CompletionStage.class ||*/ intrface == java.util.SortedSet.class - || intrface == java.util.Iterator.class + || intrface == java.util.Iterator.class || intrface == java.util.concurrent.BlockingQueue.class || intrface == java.util.NavigableSet.class || intrface == java.util.concurrent.locks.ReadWriteLock.class @@ -1113,7 +1141,7 @@ boolean argumentsOfProtocolRenamed( Class clazz ) { boolean awkwardMethodInProtocol( Method method ) { return false; } - + boolean ambiguousInitialiser( String signature ) { return signature.equals("public java.awt.Dialog(java.awt.Window)") || signature.equals("public java.awt.Window(java.awt.Frame)") //// crashes compiler on Linux @@ -1157,7 +1185,7 @@ void addAnyMethodsDeclaredInProtocolsButNotDefined( boolean isProtocol, HashMap< Method missingMethods0[] = inProtocolsButNotDeclared.toArray( new Method[inProtocolsButNotDeclared.size()] ); java.lang.reflect.Method missingMethods[] = new java.lang.reflect.Method[inProtocolsButNotDeclared.size()]; for ( int i=0 ; i< missingMethods0.length ; i++ ) - missingMethods[i] = missingMethods0[i].method; + missingMethods[i] = missingMethods0[i].method; generateMethods( missingMethods, isProtocol, fieldsSeen, outputClassName, false ); } } @@ -1179,13 +1207,17 @@ void addThrowCode( Executable executable ) { code.append( " throw "+swiftTypeFor(executable.getExceptionTypes()[0], false, false)+"( javaObject: throwable )\n }\n" ); } + String defaultReturn( Class returnType ) { + return returnType.isPrimitive() ? returnType.getName() == "boolean" ? "false" : "0" : "nil"; + } + String funcType( Class type, int mods ) { String typeName = funcNames.get( type.getName() ); if ( typeName == null ) typeName = "Object"; return (Modifier.isStatic(mods)?"Static":"")+typeName; } - + String jniArgs( Executable executable, String prefix, String suffix ) { String sig = "("+prefix; for ( Parameter param : executable.getParameters() ) @@ -1209,7 +1241,7 @@ String jniName( Method method, int i ) { String jniDecl( Method method, String unnamed ) { String decl = ""; - for ( Parameter param : method.getParameters() ) + for ( Parameter param : method.getParameters() ) decl += ", "+(unnamed==null?"_":unnamed+safe(param.getName()))+": "+jniType(param.getType()); return "( "+(unnamed==null?"_":unnamed+"__env")+": UnsafeMutablePointer, "+ (unnamed==null?"_":unnamed+"__this")+": jobject?, "+ @@ -1256,11 +1288,11 @@ boolean crashesCompilerOnLinx( Class type ) { String encoder( String var, Class type, String locals ) { if ( type == java.lang.Float.class ) return "JNIType.toJavaFloat( value: "+var+", locals: "+locals+" )"; - return "JNIType.toJava( value: "+var+(isObjectType( type ) && - !type.isInterface() && !java.util.Map.class.isAssignableFrom(type) ? - " != nil ? "+var+"! as JNIObject : nil":"")+ - (java.util.Map.class.isAssignableFrom(type) ? - ", mapClass: \""+type.getName().replace(".", "/")+"\"":"") +", locals: "+locals+" )"; + boolean isMap = java.util.Map.class.isAssignableFrom(type); + return "JNIType.toJava( value: "+var+/*(isObjectType( type ) && + !type.isInterface() && type.getInterfaces().length != 0 && !isMap && false? + " != nil ? "+var+"! as JNIObject : nil" : "")+*/ + (isMap ? ", mapClass: \""+type.getName().replace(".", "/")+"\"" : "") +", locals: "+locals+" )"; } String encodeSuffix( Class type ) { @@ -1275,10 +1307,10 @@ String decoder( String var, Class type ) { return "JNIType.toSwiftFloat( from: "+var+" )"; String swiftType = swiftTypeFor(type, false, false, true, false, true); return isObjectType( type ) && !java.util.Map.class.isAssignableFrom(type) ? - var + " != nil ? " + swiftType+"( javaObject: " + var + " ) : nil" : + var + " != nil ? " + swiftType+"( javaObject: " + var + " ) : nil" : "JNIType.toSwift( type: "+swiftType+"(), from: " + var + " )"; } - + boolean isObjectType( Class type ) { return !type.isPrimitive() && type != String.class && !type.isArray(); } @@ -1293,12 +1325,12 @@ String argsFor( Executable e, boolean anon, boolean named, Method interfaceMetho Parameter param = e.getParameters()[i]; String name = interfaceMethod != null ? interfaceMethod.getParameters()[i].getName() : param.getName(); args += (args == "" ? " " : ", ") + (named?"":"_ _")+ - (anon?"arg":safe(name)) + ": " + + (anon?"arg":safe(name)) + ": " + swiftTypeFor( param.getType(), true, anon, true, true, false ); } return args == "" ? "" : args+" "; } - + boolean notVoid( Class returnType ) { return !returnType.getName().equals("void"); } @@ -1310,7 +1342,7 @@ String safe( String name ) { String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boolean named ) { return swiftSignatureFor( method, isProtocol, anon, named, null ); } - + String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boolean named, Method interfaceMethod ) { String ret = ""; if ( method.getExceptionTypes().length != 0 ) { @@ -1318,7 +1350,6 @@ String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boole for ( Class exception : method.getExceptionTypes() ) exceptions += (exceptions==""?"":", ") + exception.getName(); ret += " throws /* "+exceptions+" */"; - } Class returnType = method.getReturnType(); if ( notVoid( returnType ) && !anon ) @@ -1327,7 +1358,7 @@ String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boole return (isProtocol ? "" : visibility)+(isStatic ? "class ": "")+ "func "+safe(method.getName())+"("+argsFor( method, anon, named, interfaceMethod )+")" + ret; } - + boolean fieldOverride(Field f, Class superclazz) { if (superclazz == null) return false; @@ -1438,29 +1469,29 @@ String swiftTypeFor( Class type, boolean isReturn, boolean anon, boolean pref decl = nativeType; else decl = classTypeFor( elementType, anon, false ); - + if ( addForward && elementType.isInterface() ) - decl += "Forward"; + decl += "Forward"; decl = (isReturn || true ? "" : "inout ") + left + decl + right; } else if ( java.util.Map.class.isAssignableFrom(type) ) { - try { - java.lang.reflect.Method method = type.getDeclaredMethod("valueClass"); - Class vtype = (Class) method.invoke(type); - decl = "[String:"+swiftTypeFor(vtype, false, anon, true, false, addForward)+"]"; - } - catch (Exception e) { - e.printStackTrace(); - decl = classTypeFor( type, anon, prefix ); + try { + java.lang.reflect.Method method = type.getDeclaredMethod("valueClass"); + Class vtype = (Class) method.invoke(type); + decl = "[String:"+swiftTypeFor(vtype, false, anon, true, false, addForward)+"]"; + } + catch (Exception e) { +// e.printStackTrace(); + decl = classTypeFor( type, anon, prefix ); if ( addForward && type.isInterface() ) - decl += "Forward"; - } - } + decl += "Forward"; + } + } else { decl = classTypeFor( type, anon, prefix ); if ( addForward && type.isInterface() ) - decl += "Forward"; + decl += "Forward"; } } @@ -1471,19 +1502,19 @@ String classTypeFor( Class type, boolean anon, boolean prefix ) { String typeName = type.getName(); String className = classSuffix( typeName ); String frameworkPrefix = classPrefix( typeName ); - + crossReference( currentFramework, frameworkPrefix ); if ( lostType( type ) || excludeFromCodeGeneration( type ) /*|| - currentFramework.equals("java_swift") && !frameworkPrefix.equals("java_swift")*/ ) { + currentFramework.equals("java_swift") && !frameworkPrefix.equals("java_swift")*/ ) { unclassedReferences++; return (anon?"":"/* "+typeName+" */ ") + Unclassed + (type.isInterface()?"Protocol":"Object"); } if ( !frameworkPrefix.equals(currentFramework) && !type.isPrimitive() ) { if ( !referencedFrameworks.containsKey( frameworkPrefix ) ) { - if ( !frameworkPrefix.equals("java_swift") ) - frameworkImports += "import "+frameworkPrefix+"\n"; + if ( !frameworkPrefix.equals("java_swift") ) + frameworkImports += "import "+frameworkPrefix+"\n"; referencedFrameworks.put(frameworkPrefix, true); } if ( prefix ) @@ -1557,8 +1588,8 @@ static class Parameter { int number; public Class getType() { - return executable.constructor != null ? - executable.constructor.getParameterTypes()[number] : + return executable.constructor != null ? + executable.constructor.getParameterTypes()[number] : executable.method.getParameterTypes()[number]; } @@ -1569,20 +1600,20 @@ public String getName() { } static class Executable { - java.lang.reflect.Constructor constructor; + java.lang.reflect.Constructor constructor; java.lang.reflect.Method method; Parameter parameters[]; String parameterNames[]; public int getModifiers() { - return constructor != null ? - constructor.getModifiers() : + return constructor != null ? + constructor.getModifiers() : method.getModifiers(); } public int getParameterCount() { - return constructor != null ? - constructor.getParameterTypes().length : + return constructor != null ? + constructor.getParameterTypes().length : method.getParameterTypes().length; } @@ -1601,7 +1632,7 @@ public int getParameterCount() { Object executable = constructor != null ? constructor : method; Class executableClass = executable.getClass(); java.lang.reflect.Method paramsMethod = executableClass.getMethod("getParameters", new Class[] {}); - + Object realParameters[] = (Object []) paramsMethod.invoke(executable, new Object[] {}); Class parametersClass = realParameters[0].getClass(); java.lang.reflect.Method nameMethod = parametersClass.getMethod("getName", new Class[] {}); @@ -1618,23 +1649,23 @@ public int getParameterCount() { } public Class [] getExceptionTypes() { - return constructor != null ? - constructor.getExceptionTypes() : + return constructor != null ? + constructor.getExceptionTypes() : method.getExceptionTypes(); } - + } - + static class Constructor extends Executable { public String toString() { return constructor.toString(); } } - + static Constructor newConstructor( java.lang.reflect.Constructor constructor ) { if ( constructor == null ) return null; - Constructor proxy = new Constructor(); + Constructor proxy = new Constructor(); proxy.constructor = constructor; return proxy; } @@ -1650,17 +1681,17 @@ public String toString() { return method.toString(); } } - + static Method newMethod( java.lang.reflect.Method method ) { if ( method == null ) return null; - Method proxy = new Method(); + Method proxy = new Method(); proxy.method = method; return proxy; } boolean excludeFromCodeGeneration( Class clazz ) { - String className = clazz.getName(); + String className = clazz.getName(); return !Modifier.isPublic(clazz.getModifiers()) || className.equals("java.util.concurrent.CompletableFuture") || classPrefix(className).equals("java_util") && className.indexOf('$') != -1; } @@ -1678,3 +1709,4 @@ boolean isAdapter() { } } + diff --git a/src/org/swiftjava/SwiftTest.java b/src/org/swiftjava/SwiftTest.java index d18f195..c4b6581 100644 --- a/src/org/swiftjava/SwiftTest.java +++ b/src/org/swiftjava/SwiftTest.java @@ -3,7 +3,7 @@ // auto generated by ../../../gentests.rb -import com.johnholdsworth.bindings.SwiftHelloTest.TestListener; +import com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener; public class SwiftTest { diff --git a/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java b/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java index 8bb81b3..82113d8 100644 --- a/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java +++ b/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java @@ -15,49 +15,17 @@ public class ApplicationAdapterProxy extends com.apple.eawt.ApplicationAdapter { this.__swiftObject = __swiftObject; } - /// public void com.apple.eawt.ApplicationAdapter.handleAbout(com.apple.eawt.ApplicationEvent) - - public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - boolean entered_handleAbout_0; - - public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleAbout_0 ) { - entered_handleAbout_0 = true; - __handleAbout( __swiftObject, arg0); - entered_handleAbout_0 = false; - } - else - super.handleAbout( arg0 ); - } - - /// public void com.apple.eawt.ApplicationAdapter.handlePreferences(com.apple.eawt.ApplicationEvent) - - public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - boolean entered_handlePreferences_1; - - public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handlePreferences_1 ) { - entered_handlePreferences_1 = true; - __handlePreferences( __swiftObject, arg0); - entered_handlePreferences_1 = false; - } - else - super.handlePreferences( arg0 ); - } - /// public void com.apple.eawt.ApplicationAdapter.handleOpenApplication(com.apple.eawt.ApplicationEvent) public native void __handleOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleOpenApplication_2; + boolean entered_handleOpenApplication_0; public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleOpenApplication_2 ) { - entered_handleOpenApplication_2 = true; + if ( !entered_handleOpenApplication_0 ) { + entered_handleOpenApplication_0 = true; __handleOpenApplication( __swiftObject, arg0); - entered_handleOpenApplication_2 = false; + entered_handleOpenApplication_0 = false; } else super.handleOpenApplication( arg0 ); @@ -67,13 +35,13 @@ public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handleOpenFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleOpenFile_3; + boolean entered_handleOpenFile_1; public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleOpenFile_3 ) { - entered_handleOpenFile_3 = true; + if ( !entered_handleOpenFile_1 ) { + entered_handleOpenFile_1 = true; __handleOpenFile( __swiftObject, arg0); - entered_handleOpenFile_3 = false; + entered_handleOpenFile_1 = false; } else super.handleOpenFile( arg0 ); @@ -83,13 +51,13 @@ public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handlePrintFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handlePrintFile_4; + boolean entered_handlePrintFile_2; public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handlePrintFile_4 ) { - entered_handlePrintFile_4 = true; + if ( !entered_handlePrintFile_2 ) { + entered_handlePrintFile_2 = true; __handlePrintFile( __swiftObject, arg0); - entered_handlePrintFile_4 = false; + entered_handlePrintFile_2 = false; } else super.handlePrintFile( arg0 ); @@ -99,13 +67,13 @@ public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handleQuit( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleQuit_5; + boolean entered_handleQuit_3; public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleQuit_5 ) { - entered_handleQuit_5 = true; + if ( !entered_handleQuit_3 ) { + entered_handleQuit_3 = true; __handleQuit( __swiftObject, arg0); - entered_handleQuit_5 = false; + entered_handleQuit_3 = false; } else super.handleQuit( arg0 ); @@ -115,18 +83,50 @@ public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handleReOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleReOpenApplication_6; + boolean entered_handleReOpenApplication_4; public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleReOpenApplication_6 ) { - entered_handleReOpenApplication_6 = true; + if ( !entered_handleReOpenApplication_4 ) { + entered_handleReOpenApplication_4 = true; __handleReOpenApplication( __swiftObject, arg0); - entered_handleReOpenApplication_6 = false; + entered_handleReOpenApplication_4 = false; } else super.handleReOpenApplication( arg0 ); } + /// public void com.apple.eawt.ApplicationAdapter.handleAbout(com.apple.eawt.ApplicationEvent) + + public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + boolean entered_handleAbout_5; + + public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { + if ( !entered_handleAbout_5 ) { + entered_handleAbout_5 = true; + __handleAbout( __swiftObject, arg0); + entered_handleAbout_5 = false; + } + else + super.handleAbout( arg0 ); + } + + /// public void com.apple.eawt.ApplicationAdapter.handlePreferences(com.apple.eawt.ApplicationEvent) + + public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + boolean entered_handlePreferences_6; + + public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { + if ( !entered_handlePreferences_6 ) { + entered_handlePreferences_6 = true; + __handlePreferences( __swiftObject, arg0); + entered_handlePreferences_6 = false; + } + else + super.handlePreferences( arg0 ); + } + /// public boolean java.lang.Object.equals(java.lang.Object) public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); diff --git a/src/org/swiftjava/com_apple/ApplicationListenerProxy.java b/src/org/swiftjava/com_apple/ApplicationListenerProxy.java index 2d23815..c2313bd 100644 --- a/src/org/swiftjava/com_apple/ApplicationListenerProxy.java +++ b/src/org/swiftjava/com_apple/ApplicationListenerProxy.java @@ -12,22 +12,6 @@ public class ApplicationListenerProxy implements com.apple.eawt.ApplicationListe this.__swiftObject = __swiftObject; } - /// public abstract void com.apple.eawt.ApplicationListener.handleAbout(com.apple.eawt.ApplicationEvent) - - public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { - __handleAbout( __swiftObject, arg0 ); - } - - /// public abstract void com.apple.eawt.ApplicationListener.handlePreferences(com.apple.eawt.ApplicationEvent) - - public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { - __handlePreferences( __swiftObject, arg0 ); - } - /// public abstract void com.apple.eawt.ApplicationListener.handleOpenApplication(com.apple.eawt.ApplicationEvent) public native void __handleOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); @@ -68,6 +52,22 @@ public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { __handleReOpenApplication( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.ApplicationListener.handleAbout(com.apple.eawt.ApplicationEvent) + + public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { + __handleAbout( __swiftObject, arg0 ); + } + + /// public abstract void com.apple.eawt.ApplicationListener.handlePreferences(com.apple.eawt.ApplicationEvent) + + public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { + __handlePreferences( __swiftObject, arg0 ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java index 1af6161..53e62ad 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java @@ -1,18 +1,29 @@ -/// interface com.johnholdsworth.bindings.SwiftHelloBinding$Listener /// +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// interface com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener /// package org.swiftjava.com_johnholdsworth; @SuppressWarnings("JniMissingFunction") -public class SwiftHelloBinding_ListenerProxy implements com.johnholdsworth.bindings.SwiftHelloBinding.Listener { +public class SwiftHelloBinding_ListenerProxy implements com.johnholdsworth.swiftbindings.SwiftHelloBinding.Listener { + // address of proxy object long __swiftObject; SwiftHelloBinding_ListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + + public native double __throwException( long __swiftObject ); + + public double throwException() throws java.lang.Exception { + return __throwException( __swiftObject ); + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) public native void __setCacheDir( long __swiftObject, java.lang.String cacheDir ); @@ -20,7 +31,7 @@ public void setCacheDir( java.lang.String cacheDir ) { __setCacheDir( __swiftObject, cacheDir ); } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) public native void __processNumber( long __swiftObject, double number ); @@ -28,7 +39,7 @@ public void processNumber( double number ) { __processNumber( __swiftObject, number ); } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) public native void __processText( long __swiftObject, java.lang.String text ); @@ -36,27 +47,43 @@ public void processText( java.lang.String text ) { __processText( __swiftObject, text ); } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - public native void __processedMap( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap map ); + public native void __processedMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap map ); - public void processedMap( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap map ) { + public void processedMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap map ) { __processedMap( __swiftObject, map ); } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) - public native void __processedMapList( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList map ); + public native void __processedMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList map ); - public void processedMapList( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList map ) { + public void processedMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList map ) { __processedMapList( __swiftObject, map ); } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloBinding$Listener.testResponder(int) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + + public native void __processStringMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap map ); + + public void processStringMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap map ) { + __processStringMap( __swiftObject, map ); + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + + public native void __processStringMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList map ); + + public void processStringMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList map ) { + __processStringMapList( __swiftObject, map ); + } + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener __testResponder( long __swiftObject, int loopback ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __testResponder( long __swiftObject, int loopback ); - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener testResponder( int loopback ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener testResponder( int loopback ) { return __testResponder( __swiftObject, loopback ); } diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java index aad032f..11d66a7 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java @@ -1,26 +1,29 @@ -/// interface com.johnholdsworth.bindings.SwiftHelloTest$TestListener /// +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener /// package org.swiftjava.com_johnholdsworth; @SuppressWarnings("JniMissingFunction") -public class SwiftHelloTest_TestListenerProxy implements com.johnholdsworth.bindings.SwiftHelloTest.TestListener { +public class SwiftHelloTest_TestListenerProxy implements com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener { + // address of proxy object long __swiftObject; SwiftHelloTest_TestListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.johnholdsworth.bindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - public native void __setLoopback( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ); + public native void __setLoopback( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ); - public void setLoopback( com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ) { + public void setLoopback( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ) { __setLoopback( __swiftObject, loopback ); } - /// public abstract boolean com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) public native boolean __booleanMethod( long __swiftObject, boolean arg ); @@ -28,7 +31,7 @@ public boolean booleanMethod( boolean arg ) { return __booleanMethod( __swiftObject, arg ); } - /// public abstract boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); @@ -36,7 +39,7 @@ public boolean[] booleanArrayMethod( boolean[] arg ) { return __booleanArrayMethod( __swiftObject, arg ); } - /// public abstract boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) public native boolean[][] __boolean2dArrayMethod( long __swiftObject, boolean[][] arg ); @@ -44,7 +47,7 @@ public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { return __boolean2dArrayMethod( __swiftObject, arg ); } - /// public abstract byte com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) public native byte __byteMethod( long __swiftObject, byte arg ); @@ -52,7 +55,7 @@ public byte byteMethod( byte arg ) { return __byteMethod( __swiftObject, arg ); } - /// public abstract byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); @@ -60,7 +63,7 @@ public byte[] byteArrayMethod( byte[] arg ) { return __byteArrayMethod( __swiftObject, arg ); } - /// public abstract byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) public native byte[][] __byte2dArrayMethod( long __swiftObject, byte[][] arg ); @@ -68,7 +71,7 @@ public byte[][] byte2dArrayMethod( byte[][] arg ) { return __byte2dArrayMethod( __swiftObject, arg ); } - /// public abstract char com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) public native char __charMethod( long __swiftObject, char arg ); @@ -76,7 +79,7 @@ public char charMethod( char arg ) { return __charMethod( __swiftObject, arg ); } - /// public abstract char[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) public native char[] __charArrayMethod( long __swiftObject, char[] arg ); @@ -84,7 +87,7 @@ public char[] charArrayMethod( char[] arg ) { return __charArrayMethod( __swiftObject, arg ); } - /// public abstract char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) public native char[][] __char2dArrayMethod( long __swiftObject, char[][] arg ); @@ -92,7 +95,7 @@ public char[][] char2dArrayMethod( char[][] arg ) { return __char2dArrayMethod( __swiftObject, arg ); } - /// public abstract short com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortMethod(short) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) public native short __shortMethod( long __swiftObject, short arg ); @@ -100,7 +103,7 @@ public short shortMethod( short arg ) { return __shortMethod( __swiftObject, arg ); } - /// public abstract short[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); @@ -108,7 +111,7 @@ public short[] shortArrayMethod( short[] arg ) { return __shortArrayMethod( __swiftObject, arg ); } - /// public abstract short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); @@ -116,7 +119,7 @@ public short[][] short2dArrayMethod( short[][] arg ) { return __short2dArrayMethod( __swiftObject, arg ); } - /// public abstract int com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) public native int __intMethod( long __swiftObject, int arg ); @@ -124,7 +127,7 @@ public int intMethod( int arg ) { return __intMethod( __swiftObject, arg ); } - /// public abstract int[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) public native int[] __intArrayMethod( long __swiftObject, int[] arg ); @@ -132,7 +135,7 @@ public int[] intArrayMethod( int[] arg ) { return __intArrayMethod( __swiftObject, arg ); } - /// public abstract int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); @@ -140,7 +143,7 @@ public int[][] int2dArrayMethod( int[][] arg ) { return __int2dArrayMethod( __swiftObject, arg ); } - /// public abstract long com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) public native long __longMethod( long __swiftObject, long arg ); @@ -148,7 +151,7 @@ public long longMethod( long arg ) { return __longMethod( __swiftObject, arg ); } - /// public abstract long[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) public native long[] __longArrayMethod( long __swiftObject, long[] arg ); @@ -156,7 +159,7 @@ public long[] longArrayMethod( long[] arg ) { return __longArrayMethod( __swiftObject, arg ); } - /// public abstract long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); @@ -164,7 +167,7 @@ public long[][] long2dArrayMethod( long[][] arg ) { return __long2dArrayMethod( __swiftObject, arg ); } - /// public abstract float com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatMethod(float) + /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) public native float __floatMethod( long __swiftObject, float arg ); @@ -172,7 +175,7 @@ public float floatMethod( float arg ) { return __floatMethod( __swiftObject, arg ); } - /// public abstract float[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); @@ -180,7 +183,7 @@ public float[] floatArrayMethod( float[] arg ) { return __floatArrayMethod( __swiftObject, arg ); } - /// public abstract float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); @@ -188,7 +191,7 @@ public float[][] float2dArrayMethod( float[][] arg ) { return __float2dArrayMethod( __swiftObject, arg ); } - /// public abstract double com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) public native double __doubleMethod( long __swiftObject, double arg ); @@ -196,7 +199,7 @@ public double doubleMethod( double arg ) { return __doubleMethod( __swiftObject, arg ); } - /// public abstract double[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); @@ -204,7 +207,7 @@ public double[] doubleArrayMethod( double[] arg ) { return __doubleArrayMethod( __swiftObject, arg ); } - /// public abstract double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); @@ -212,7 +215,7 @@ public double[][] double2dArrayMethod( double[][] arg ) { return __double2dArrayMethod( __swiftObject, arg ); } - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); @@ -220,7 +223,7 @@ public java.lang.String StringMethod( java.lang.String arg ) { return __StringMethod( __swiftObject, arg ); } - /// public abstract java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); @@ -228,7 +231,7 @@ public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { return __StringArrayMethod( __swiftObject, arg ); } - /// public abstract java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); @@ -236,43 +239,43 @@ public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { return __String2dArrayMethod( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ); - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ) { return __TestListenerMethod( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ); - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ) { return __TestListenerArrayMethod( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ); - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ) { return __TestListener2dArrayMethod( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap arg ); - public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap arg ) { return __testMap( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) - public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList arg ); - public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList arg ) { return __testMapList( __swiftObject, arg ); } diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java index 605f265..2380cae 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java @@ -1,27 +1,30 @@ -/// class com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter /// +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// class com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter /// package org.swiftjava.com_johnholdsworth; @SuppressWarnings("JniMissingFunction") -public class SwiftHelloTest_TestResponderAdapterProxy extends com.johnholdsworth.bindings.SwiftHelloTest.TestResponderAdapter { +public class SwiftHelloTest_TestResponderAdapterProxy extends com.johnholdsworth.swiftbindings.SwiftHelloTest.TestResponderAdapter { + // address of proxy object long __swiftObject; - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter() + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter() SwiftHelloTest_TestResponderAdapterProxy( long __swiftObject ) { super( ); this.__swiftObject = __swiftObject; } - /// public void com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - public native void __setLoopback( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ); + public native void __setLoopback( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ); boolean entered_setLoopback_0; - public void setLoopback( com.johnholdsworth.bindings.SwiftHelloTest.TestListener loopback ) { + public void setLoopback( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ) { if ( !entered_setLoopback_0 ) { entered_setLoopback_0 = true; __setLoopback( __swiftObject, loopback); @@ -31,7 +34,7 @@ public void setLoopback( com.johnholdsworth.bindings.SwiftHelloTest.TestListener super.setLoopback( loopback ); } - /// public boolean com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) + /// public boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) public native boolean __booleanMethod( long __swiftObject, boolean arg ); @@ -48,7 +51,7 @@ public boolean booleanMethod( boolean arg ) { return super.booleanMethod( arg ); } - /// public boolean[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) + /// public boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); @@ -65,7 +68,7 @@ public boolean[] booleanArrayMethod( boolean[] arg ) { return super.booleanArrayMethod( arg ); } - /// public boolean[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) + /// public boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) public native boolean[][] __boolean2dArrayMethod( long __swiftObject, boolean[][] arg ); @@ -82,7 +85,7 @@ public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { return super.boolean2dArrayMethod( arg ); } - /// public byte com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) + /// public byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) public native byte __byteMethod( long __swiftObject, byte arg ); @@ -99,7 +102,7 @@ public byte byteMethod( byte arg ) { return super.byteMethod( arg ); } - /// public byte[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) + /// public byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); @@ -116,7 +119,7 @@ public byte[] byteArrayMethod( byte[] arg ) { return super.byteArrayMethod( arg ); } - /// public byte[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) + /// public byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) public native byte[][] __byte2dArrayMethod( long __swiftObject, byte[][] arg ); @@ -133,7 +136,7 @@ public byte[][] byte2dArrayMethod( byte[][] arg ) { return super.byte2dArrayMethod( arg ); } - /// public char com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) + /// public char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) public native char __charMethod( long __swiftObject, char arg ); @@ -150,7 +153,7 @@ public char charMethod( char arg ) { return super.charMethod( arg ); } - /// public char[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) + /// public char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) public native char[] __charArrayMethod( long __swiftObject, char[] arg ); @@ -167,7 +170,7 @@ public char[] charArrayMethod( char[] arg ) { return super.charArrayMethod( arg ); } - /// public char[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) + /// public char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) public native char[][] __char2dArrayMethod( long __swiftObject, char[][] arg ); @@ -184,7 +187,7 @@ public char[][] char2dArrayMethod( char[][] arg ) { return super.char2dArrayMethod( arg ); } - /// public short com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) + /// public short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) public native short __shortMethod( long __swiftObject, short arg ); @@ -201,7 +204,7 @@ public short shortMethod( short arg ) { return super.shortMethod( arg ); } - /// public short[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) + /// public short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); @@ -218,7 +221,7 @@ public short[] shortArrayMethod( short[] arg ) { return super.shortArrayMethod( arg ); } - /// public short[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + /// public short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); @@ -235,7 +238,7 @@ public short[][] short2dArrayMethod( short[][] arg ) { return super.short2dArrayMethod( arg ); } - /// public int com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) + /// public int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) public native int __intMethod( long __swiftObject, int arg ); @@ -252,7 +255,7 @@ public int intMethod( int arg ) { return super.intMethod( arg ); } - /// public int[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) + /// public int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) public native int[] __intArrayMethod( long __swiftObject, int[] arg ); @@ -269,7 +272,7 @@ public int[] intArrayMethod( int[] arg ) { return super.intArrayMethod( arg ); } - /// public int[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) + /// public int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); @@ -286,7 +289,7 @@ public int[][] int2dArrayMethod( int[][] arg ) { return super.int2dArrayMethod( arg ); } - /// public long com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) + /// public long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) public native long __longMethod( long __swiftObject, long arg ); @@ -303,7 +306,7 @@ public long longMethod( long arg ) { return super.longMethod( arg ); } - /// public long[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) + /// public long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) public native long[] __longArrayMethod( long __swiftObject, long[] arg ); @@ -320,7 +323,7 @@ public long[] longArrayMethod( long[] arg ) { return super.longArrayMethod( arg ); } - /// public long[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) + /// public long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); @@ -337,7 +340,7 @@ public long[][] long2dArrayMethod( long[][] arg ) { return super.long2dArrayMethod( arg ); } - /// public float com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) + /// public float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) public native float __floatMethod( long __swiftObject, float arg ); @@ -354,7 +357,7 @@ public float floatMethod( float arg ) { return super.floatMethod( arg ); } - /// public float[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) + /// public float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); @@ -371,7 +374,7 @@ public float[] floatArrayMethod( float[] arg ) { return super.floatArrayMethod( arg ); } - /// public float[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) + /// public float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); @@ -388,7 +391,7 @@ public float[][] float2dArrayMethod( float[][] arg ) { return super.float2dArrayMethod( arg ); } - /// public double com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) public native double __doubleMethod( long __swiftObject, double arg ); @@ -405,7 +408,7 @@ public double doubleMethod( double arg ) { return super.doubleMethod( arg ); } - /// public double[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) + /// public double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); @@ -422,7 +425,7 @@ public double[] doubleArrayMethod( double[] arg ) { return super.doubleArrayMethod( arg ); } - /// public double[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) + /// public double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); @@ -439,7 +442,7 @@ public double[][] double2dArrayMethod( double[][] arg ) { return super.double2dArrayMethod( arg ); } - /// public java.lang.String com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) + /// public java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); @@ -456,7 +459,7 @@ public java.lang.String StringMethod( java.lang.String arg ) { return super.StringMethod( arg ); } - /// public java.lang.String[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) + /// public java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); @@ -473,7 +476,7 @@ public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { return super.StringArrayMethod( arg ); } - /// public java.lang.String[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) + /// public java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); @@ -490,16 +493,16 @@ public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { return super.String2dArrayMethod( arg ); } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ); boolean entered_TestListenerMethod_28; - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ) { if ( !entered_TestListenerMethod_28 ) { entered_TestListenerMethod_28 = true; - com.johnholdsworth.bindings.SwiftHelloTest.TestListener __return = __TestListenerMethod( __swiftObject, arg); + com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __return = __TestListenerMethod( __swiftObject, arg); entered_TestListenerMethod_28 = false; return __return; } @@ -507,16 +510,16 @@ public com.johnholdsworth.bindings.SwiftHelloTest.TestListener TestListenerMetho return super.TestListenerMethod( arg ); } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ); boolean entered_TestListenerArrayMethod_29; - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ) { if ( !entered_TestListenerArrayMethod_29 ) { entered_TestListenerArrayMethod_29 = true; - com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] __return = __TestListenerArrayMethod( __swiftObject, arg); + com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __return = __TestListenerArrayMethod( __swiftObject, arg); entered_TestListenerArrayMethod_29 = false; return __return; } @@ -524,16 +527,16 @@ public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[] TestListenerArr return super.TestListenerArrayMethod( arg ); } - /// public com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.bindings.SwiftHelloTest$TestListener[][]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - public native com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ); boolean entered_TestListener2dArrayMethod_30; - public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ) { if ( !entered_TestListener2dArrayMethod_30 ) { entered_TestListener2dArrayMethod_30 = true; - com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] __return = __TestListener2dArrayMethod( __swiftObject, arg); + com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __return = __TestListener2dArrayMethod( __swiftObject, arg); entered_TestListener2dArrayMethod_30 = false; return __return; } @@ -541,16 +544,16 @@ public com.johnholdsworth.bindings.SwiftHelloTest.TestListener[][] TestListener2 return super.TestListener2dArrayMethod( arg ); } - /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMap) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap arg ); boolean entered_testMap_31; - public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap arg ) { if ( !entered_testMap_31 ) { entered_testMap_31 = true; - com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap __return = __testMap( __swiftObject, arg); + com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap __return = __testMap( __swiftObject, arg); entered_testMap_31 = false; return __return; } @@ -558,16 +561,16 @@ public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMap testMap( com.john return super.testMap( arg ); } - /// public com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.bindings.SwiftHelloTest$TestResponderAdapter.testMapList(com.johnholdsworth.bindings.SwiftHelloTypes$ListenerMapList) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) - public native com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ); + public native com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList arg ); boolean entered_testMapList_32; - public com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList arg ) { + public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList arg ) { if ( !entered_testMapList_32 ) { entered_testMapList_32 = true; - com.johnholdsworth.bindings.SwiftHelloTypes.ListenerMapList __return = __testMapList( __swiftObject, arg); + com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList __return = __testMapList( __swiftObject, arg); entered_testMapList_32 = false; return __return; } diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java index 5120488..255f1fa 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTypes_TextListenerProxy.java @@ -1,18 +1,21 @@ -/// interface com.johnholdsworth.bindings.SwiftHelloTypes$TextListener /// +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// interface com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener /// package org.swiftjava.com_johnholdsworth; @SuppressWarnings("JniMissingFunction") -public class SwiftHelloTypes_TextListenerProxy implements com.johnholdsworth.bindings.SwiftHelloTypes.TextListener { +public class SwiftHelloTypes_TextListenerProxy implements com.johnholdsworth.swiftbindings.SwiftHelloTypes.TextListener { + // address of proxy object long __swiftObject; SwiftHelloTypes_TextListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract java.lang.String com.johnholdsworth.bindings.SwiftHelloTypes$TextListener.getText() + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener.getText() public native java.lang.String __getText( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java b/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java index 18e0034..b127a23 100644 --- a/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java +++ b/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java @@ -15,17 +15,49 @@ public class DragSourceAdapterProxy extends java.awt.dnd.DragSourceAdapter { this.__swiftObject = __swiftObject; } + /// public void java.awt.dnd.DragSourceAdapter.dragDropEnd(java.awt.dnd.DragSourceDropEvent) + + public native void __dragDropEnd( long __swiftObject, java.awt.dnd.DragSourceDropEvent dsde ); + + boolean entered_dragDropEnd_0; + + public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { + if ( !entered_dragDropEnd_0 ) { + entered_dragDropEnd_0 = true; + __dragDropEnd( __swiftObject, dsde); + entered_dragDropEnd_0 = false; + } + else + super.dragDropEnd( dsde ); + } + + /// public void java.awt.dnd.DragSourceAdapter.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) + + public native void __dragMouseMoved( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + + boolean entered_dragMouseMoved_1; + + public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent dsde ) { + if ( !entered_dragMouseMoved_1 ) { + entered_dragMouseMoved_1 = true; + __dragMouseMoved( __swiftObject, dsde); + entered_dragMouseMoved_1 = false; + } + else + super.dragMouseMoved( dsde ); + } + /// public void java.awt.dnd.DragSourceAdapter.dragEnter(java.awt.dnd.DragSourceDragEvent) public native void __dragEnter( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - boolean entered_dragEnter_0; + boolean entered_dragEnter_2; public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dragEnter_0 ) { - entered_dragEnter_0 = true; + if ( !entered_dragEnter_2 ) { + entered_dragEnter_2 = true; __dragEnter( __swiftObject, dsde); - entered_dragEnter_0 = false; + entered_dragEnter_2 = false; } else super.dragEnter( dsde ); @@ -35,13 +67,13 @@ public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { public native void __dragOver( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - boolean entered_dragOver_1; + boolean entered_dragOver_3; public void dragOver( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dragOver_1 ) { - entered_dragOver_1 = true; + if ( !entered_dragOver_3 ) { + entered_dragOver_3 = true; __dragOver( __swiftObject, dsde); - entered_dragOver_1 = false; + entered_dragOver_3 = false; } else super.dragOver( dsde ); @@ -51,13 +83,13 @@ public void dragOver( java.awt.dnd.DragSourceDragEvent dsde ) { public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - boolean entered_dropActionChanged_2; + boolean entered_dropActionChanged_4; public void dropActionChanged( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dropActionChanged_2 ) { - entered_dropActionChanged_2 = true; + if ( !entered_dropActionChanged_4 ) { + entered_dropActionChanged_4 = true; __dropActionChanged( __swiftObject, dsde); - entered_dropActionChanged_2 = false; + entered_dropActionChanged_4 = false; } else super.dropActionChanged( dsde ); @@ -67,50 +99,18 @@ public void dropActionChanged( java.awt.dnd.DragSourceDragEvent dsde ) { public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); - boolean entered_dragExit_3; + boolean entered_dragExit_5; public void dragExit( java.awt.dnd.DragSourceEvent dse ) { - if ( !entered_dragExit_3 ) { - entered_dragExit_3 = true; + if ( !entered_dragExit_5 ) { + entered_dragExit_5 = true; __dragExit( __swiftObject, dse); - entered_dragExit_3 = false; + entered_dragExit_5 = false; } else super.dragExit( dse ); } - /// public void java.awt.dnd.DragSourceAdapter.dragDropEnd(java.awt.dnd.DragSourceDropEvent) - - public native void __dragDropEnd( long __swiftObject, java.awt.dnd.DragSourceDropEvent dsde ); - - boolean entered_dragDropEnd_4; - - public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { - if ( !entered_dragDropEnd_4 ) { - entered_dragDropEnd_4 = true; - __dragDropEnd( __swiftObject, dsde); - entered_dragDropEnd_4 = false; - } - else - super.dragDropEnd( dsde ); - } - - /// public void java.awt.dnd.DragSourceAdapter.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) - - public native void __dragMouseMoved( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - - boolean entered_dragMouseMoved_5; - - public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dragMouseMoved_5 ) { - entered_dragMouseMoved_5 = true; - __dragMouseMoved( __swiftObject, dsde); - entered_dragMouseMoved_5 = false; - } - else - super.dragMouseMoved( dsde ); - } - /// public boolean java.lang.Object.equals(java.lang.Object) public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); diff --git a/src/org/swiftjava/java_awt/DragSourceListenerProxy.java b/src/org/swiftjava/java_awt/DragSourceListenerProxy.java index 8e62f87..d4b5b3e 100644 --- a/src/org/swiftjava/java_awt/DragSourceListenerProxy.java +++ b/src/org/swiftjava/java_awt/DragSourceListenerProxy.java @@ -12,6 +12,14 @@ public class DragSourceListenerProxy implements java.awt.dnd.DragSourceListener this.__swiftObject = __swiftObject; } + /// public abstract void java.awt.dnd.DragSourceListener.dragDropEnd(java.awt.dnd.DragSourceDropEvent) + + public native void __dragDropEnd( long __swiftObject, java.awt.dnd.DragSourceDropEvent dsde ); + + public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { + __dragDropEnd( __swiftObject, dsde ); + } + /// public abstract void java.awt.dnd.DragSourceListener.dragEnter(java.awt.dnd.DragSourceDragEvent) public native void __dragEnter( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); @@ -44,14 +52,6 @@ public void dragExit( java.awt.dnd.DragSourceEvent dse ) { __dragExit( __swiftObject, dse ); } - /// public abstract void java.awt.dnd.DragSourceListener.dragDropEnd(java.awt.dnd.DragSourceDropEvent) - - public native void __dragDropEnd( long __swiftObject, java.awt.dnd.DragSourceDropEvent dsde ); - - public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { - __dragDropEnd( __swiftObject, dsde ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java b/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java index 1b1136b..898f51e 100644 --- a/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java +++ b/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java @@ -36,17 +36,17 @@ public class DefaultTableModelProxy extends javax.swing.table.DefaultTableModel this.__swiftObject = __swiftObject; } - /// public javax.swing.table.DefaultTableModel() + /// public javax.swing.table.DefaultTableModel(int,int) - DefaultTableModelProxy( long __swiftObject ) { - super( ); + DefaultTableModelProxy( int rowCount, int columnCount , long __swiftObject ) { + super( rowCount, columnCount ); this.__swiftObject = __swiftObject; } - /// public javax.swing.table.DefaultTableModel(int,int) + /// public javax.swing.table.DefaultTableModel() - DefaultTableModelProxy( int rowCount, int columnCount , long __swiftObject ) { - super( rowCount, columnCount ); + DefaultTableModelProxy( long __swiftObject ) { + super( ); this.__swiftObject = __swiftObject; } diff --git a/swift-android-kotlin b/swift-android-kotlin index 0898df2..20d29bc 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 0898df2327e388f61a876f7b47c4fde38abcc084 +Subproject commit 20d29bc5e33e8188560b6ac03dc1ffa5e8085621 diff --git a/swift-android-samples b/swift-android-samples index 58ed815..56d95c1 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 58ed8152e4e80543a373db308bc9c56480c991d5 +Subproject commit 56d95c1bcf7e190a358eccac5a075126b510a3b6 diff --git a/swiftjava.jar b/swiftjava.jar index 7b700da28a9b0490ef6e1c6273e176ea3fbca0b2..434883cab9847f954ef4f1dac88cb0c9d8a5f48a 100644 GIT binary patch delta 28543 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 z zQ;?_!HmnV|_xULDjg`u?vH7yCFRChx#_$qm3cxb)Y)iV2QBa_~{ZIvv!QU`eulG%v zjYBwaZX6Wk9Jsw(JRoqdNW32@v1z6lbCsqYLBA*l;k7V0AJl_*0%q21KP?WHKOL~CvVT*189v@y3>IU(?kNt`W^)xXagXuOtn z@AK^%Vbu(7e_#tXSw?KY}i!ig+GDbCXXvytU3&oJFc+sWwTR|N7fO@ymBYL{SljUMt&2l^HH-SWwvNGD_y)*`yu zxzGo35@JGrVOn!@p72Ug59T^A>Hqzv=wzgR+uMnllHVoX15E_3Z0*6!+v${k1bAq| z)%D)WUR;#RO2?J3li1p`2KIFQr!utN{hbcUoTy9`$tqQEIaK(UN1=*|pnS+|?5t4q zn8uKgc888F@)5+l6(%TI9jnYCHh%0C&4&e0A-MvVao+Ae%hA1Vi8>y7| zq}~MO;ef;_#9jc*SY7vJM+)~e`Cus+YM%H_jqZCG6bTd^Vk1&!Cm9kyt%#*9bKT>2YHicNAd5WC*V?wRfWjk_!}n zrGo=150{g)y4${tk87erWn7hgW%QWMuD*flv6_0@YD8Of$e+g8Sd1LLTf4^nGH~V_8!`g@T34qk<|L&y>~xKlLDkgK=sLc z7nearxCc~nZ91Kb)v|Xm9rU(5qYFPkNdZz_sUBpb8&l3es>iqhmILxsVBP{%hnTbc za_=vu_xdvemojp=;18hnjy4^}m%{s3l?ylV?+e zrZk*nrxlmmMyEsUcah_9QAorild7dn^q?43Q>B(_!K3S^U1qV-s`pIkSp8NW(_qsw zzm4nvnABGoRPx9Z+ABnqn(FN?r9GmS#OoDB(ab{#6iaSv)!s7OTla&;&Nb5ul2_(J z9Vx}pQ;?K6j~)-aCB25TT(EBwTZvtEn(+cR>esJ*Ir+V8ly}1I*ks=(v68)fI^)&U zh->GU*yvZ^p|he;-=VQGTHj%?!cgC#wo+c-p|@gRzgB)C>{vZ_&F@&fa1HC|tl`BS z;9T$sr2Jv^0a2Cb;Z1RvauPg>pmJw;KJ;2pSH~xsYz*39HClD}b&nL>`>KE^A|L;n zV2Q!cD*+=2R79mtWbnpY2=efr!L9L05}`C@0%*tTP&cKL597s@BfZ=lAM0%13ZwK) znzRybarB%4G zlXK-iGHN$Fg^bI%jH_^dLP67uDkP;U2(UpC6TqwoD-zJ>6y*Q#otoif8c!cyx1*jt z2Bs@|PZq%}BTn_?%>`+}Ez2i|1%0vkTt-rltTgK4HmcELx!7{$x<3!OthYUr8+&y! zcsS7;#clI>Au25CL~L}Xo-sVN(ngoNvO2R7sy@39n~(5lDZU{q+|z!_g-C@n3trIX zk+U+FBbm>R`hJOHX+tR4Pi#fT00LZV2Yl42_0`FQMJYv*>J97-{=UH3m8@SiGVZ*e zx<7FOVdIUNn^IR>^Pr>U>$8VKfXWdSb`b;T_^|}V#Rdx7@uQN!xRL-Y!MaX6;*t;g zgAewvb8LLhtQ0JiK`J!8&XPR=4nEm&i%y~B;5Cllls50sN&D;2+ew4>O?8693V~?_ zTb$p;7^dnWX`0CBn;-?6@=sTdAWo#Fj37@er;Gq6T*+a{IR#ra`(lJ8w!K7pqSIkZ z^?8}sur|&Zq`&G89H-U+Cql_#!9@jIj0a*!wt7S9!{S`YWPa4)ZPve_ri7tSD5ivA zPcWy1Ic#}L=?UV#kkpeaF}S(C?8dt>)VVWw?NO`I$`xTuBz$6`{4Mov1hYelAg((q zEV%}*QgT+FNUy9QWwD-}r&7cwV9HHw6v`38<~KD;se@FnSX=Nsu?Tmi!R!dO<0b-u z?r{CD2Z{VZ8ryGVxRr0}xAL$9xgqP#rbZMAP=7{+xwp$W6>>S&C$He8tk?hrnrcs1 z=|wXkmL;dC1G(|*%cxPjp{07cx`VluX9xJ|XR#f#lnBpC#$g;uY%av~A(q9baMC#q z#IR7B-k|A)mT1y0Z(?$q^3T#EqK3of7Da{|*6-!%=2b#4A?q>OpeKhB#uaQO?TBR- z*(PVLQkSn%FSRJS?&H8z!n~~i@*0BXVVB=0har6`*h1YCEB{t6AI_~gP4BqO$>S(s zBOtnhu*^K=72G&jv=#8O)+_LBPoCv+Y%M?$5aalg#x3MS$$3nf?b;{R23y~ecLH^y zH&q37BApy|lv}U``y+8hQ7Q9ams??vdv>C7Bzwg$j~L>_Y3dYkVl)LLVYT_tW|&c}hh;OK6VIu2h!dr$b;y$!hkBt}Vjy6?A*rXzXza_+uC!5bSmtwD zzR&ZASPswghh84c^S7I+lWZ)w!hRIAQQ&eclPFiMFXlcmz#RuE%5`ETb!v=UU%l;m zrpfq1#Z1GH}@j_p3+|QbUr|^DC9R+gwFySqA<$GeP7EW{wFQXQC9-trBZGC3nXW8 zdi(Dcgdt+@U1{MeRi~Aw4*8Jn83m)F&wNkEQUe=^7^CYxFnsP}QEcgaAD)7wMTf`- z9_g1w(@M7DvYpRBwBq`W7BqJ}QI20htHWec2~&<;;Yn?e#e6hIz%*bp|HiAkU z{&|WuYLui6M}>eWqW|BgSem83dqB`2q;~*h!d=Q}W^+Yopks)aXJ==p-+VW} zncOh$0<`y*pg?gUx$D%*RoML;>C1@p#6$^$*?7m?$0~$M)1J#-BLTY;oIt*2Nn4M$ zkuy_U4TR0gUqw$M&CU%KJcTip#2LMj5j^>+0LiTGV2$wsrJXi`qB?UxJZ_yM4Gn$n zx)9KKh8BuU{xcSDztpa?(tX9yljP<%P5yIE#Nnq@rj#Tijc>lqoUs85HyW^&l8MPiV zY2;WY*(iIcIO^w7i`2WT=WoapV^^XxEu=7VJ(ywH`*np<@eUuY-Vwe>rQEk!p-t*1 z8<)z#(Ou0oak{{1v2UIBeyckoNQI?BZ4t^Q)HkNzy)D!!#g?(+wnn%c@b>u;;A9a; z&@E&JffLM6h z()@2{(Vu-wS9@Bpi($^+eL66@ao_8P9a=SQo$2S-^YM0C@T{4}-~G%Na(a-TDgYns zXt@OScVlzXix#w``m)U!YrFL-#nnFIzo-ng7nG=T(SK#3xgNfv$x>;PSp%TKw4VQ9 zC%v?QbV1@0v_-{d?V8YEid1Se80+8rkpY;ChOB}yI12Z zxW#Y;j5zMJ@ab|~ER?#*(+M=-j+j`-1|l_PT5dV+3rjI9-D|fV`XdhT#ijcGkKB zsSKMfD=lUwyqc4=ene7Pb5|NNn4Vx`mO0R~$(@NimDXfVXZ|Li5T=*^RZ7$W%_bGoKl=dTJ55 zg@UnE^N)ULjFcmM+7XCX{EF>#2$esjmLV+Rv%M*bcJpiOP62&OXAh#P&Lf19cIgOF zfE6uS1C@`Y9Ix9}KKyjENXcDeX*)VHP|V(Ieq=G;7V%TtC42UiSiph)L@sg#IDAElVF{DiYC>Y)$wiQ5v+1_R(C}pVHyW(JRtPR zz*J~UkbZ(>c<>X3)`axdF1pk_P_-RaMFNa?{3I3j*0^kw?vTY{7%3|=EGv3TQx zCi!`sXOvDFn`mv3U>0T7xf`N6SJJt6@O}42o7m~iBk8x$4-bv`VM0*oK;|-HRqECL zPb^ctbcJ($wSA~@npGb!?6bN;%F(locOZ=nSX^CY{d-pi z=sZApo)TAWhHV1Qs{9apAeKS!0P)3kYJ@)ZDXOb?Bu8YMH~b*O_f4Ns`ppc^spPqQ77QAsbVLCC3cYVZKFNp+_ItTg~iIJ^oW<;f%W6?6%A)}XN!@g zB=go5{>t;XiYE%oo!f@Dt$lVh(a!O`+ZXDA*wYmeRt@p+3>Zr^42R=Kgms-%M*?-7 zr6+K80UqGnR=x^vS9Ne}e?Rxsk+S?r^lBMSK#3Hzr`!NyfhBs z{NKhQXox>a@g@DeWF|xqsRjTO7@O?;ZdL_rAh%6vJ~b}?BhZCcj9aE#GqMxi+{~m? z2Zwd~*6Uz?wB4ey=u=<-17?5U-}c9!S#75IwRRczm)AKLZTqY4PQZtUYvQle+)O&n z&OMU7w(9EkOfSvSBgLw`T%AXoBDRtxkJ*rHiF-Q*eU!?7ZdaSFLGu-rLXIj(pV-|Co| zwfr$m1O4V9K$By_Q`sz?`7?|iH;Ri^k)V}INs4X;-_R_S&IC{!zVr^J<=v%};gpd> zx^$o{CKcJO>@t6RD1tGKz4FC`_3r#+!aE-Y{qK>6Z&T^>nRr|oqM3@85Nj3sn3We- zmX1?6+vFW$7e_)2N32R`j$xnI`qbL$_n0-=gPBT}2K$7`Qd=vSZfKL)^b6m+kt&Yo zbjudLGc}3Uvg0J1%zr}q<1hMa>^cxH^)u$hXa2t$3VOl^P=MZO0MNkv0j2*IP|$|P zOHU5nN0Qgd*?mTlEE)<6b`L6j1)v+#f-*H=UJ7&aNgM)b zO&fp-PWu%0%1oB}>tAJH;k2~Z!K-mFpi3P9HW()(?5{X*Zua#n`j7grxki7rg2@U5 z|F$%NO-gxR?Lez$0uPnx{#(^SU3xFA%8dFidhIF;UiG3?kNsCKY;DHBf*i0kd|$ss}&!ME^w<#`e8(zFay;#27#T9v@Kok1opOufs5)T;mr}rbE21 zP_k4?@Ymsi*MZSE9mvE4Kmnc`{byc{#$P(D|Ktv`REp$}ckp1Z$;H0_u9~PbzvE_IvouL&26-wBjQm>2`%gP|ZoO~VIvskobQ=#Ix!^7oj z{&@&^3^TDcXt?jL6JfP7Xf*h<3Q8cOTlJ)7{ z=;mRC-n!fzk&u6Yt-DPLCtg?3^yjDkpg6hJ=|mYZ8FVUQv;<6@qibcxB|crwX!ldf zxhhne8rs;3{6t3QZyF}ja~f52x6<+StcN;x|vG!qBLgJ(yn71-4 z;%bG?h~8u_@m`ve=%t!G455G!K49d~JANcZ1$KJNAi)^)$=#Tw82Vvba_fjOd3FJL zEw~7}VaP-&a)qQU%_LW<7TH~lL`%7KQnHIrj^c6|l3EcJ^6a=t)CW4{=}?s8d@xPG zIK0QwqFOp=w5)G4W1$bi{jt+}+(5D`C_WCa$WLftjGN)8&LcKBY?fOUt13U zIxjeU_jSn+X8wNnw}0|a4rKt*TLMr(IhHRG?sX*e8lJIzePfc5JSuNHKlF@huSd|$Eu2~O6>{ns%2qc)lK5gIJ_{F=G{ z8q!1p0KmU;pjA_VYLEd4O`1@E*9OOA7IM;LmuciCBN)KatCT+h*<=X^p!%D>nqC6^ zpA4-!%>atA1K>5Op#g0E3T%3zCHQ;x8pbO20HS2$S%fBfEWpRV(wbgE-|v;;Z^j^X z01*GB_<#ohzEZqceeqw-AQeXdH0a#nMU4Ov;QW<@nFR2ff0B*HU#`FrK-Z-C7BK!7 znaup1p-F`t@S21`=%N5h7<-(8i-9LRj^2N7P(>`RHP zuNF1|okoVgPQ0%suygnRgR|UkE|Oaa;V3b$pzQ1M2GS3dhH^66Nss$y)f*7YHkmdV zK9Zjq^4qHRqm2^YG@d;5J#O*m6B6@7WkXM!mR`ly;Lyxq%KHlo6ChldFLit~$juA~ zZcAcn?PuTt-OMq$b8n!Er6@7D&wq>cnelimNujSV`M)FK!#t4bL>{!G$2<|RBlxgT z_?Cd9!40plRdGt;RQA$*EXj1$cX zrug;jHybQq{6WsAGY$_HhEZxUrf&Afd$ zRlj+38ROLQ?EbTLmoXF$iFxS8Q4C=W2%iVv8?TymeZYN{jd9`^#LF|_- zFE0gJ{{J3l$d}$^TDpH-0zeI*2Ue!&yU(b+)ERv`wy8|bFZ1uq3Q&wPqMFj*7gs6^ z1oKl68~Y&c!kf;73?s}3aFISh1ketS10?9%p+}&)+?T-5LVjK}UC$2>FnKY!1o8wV zZ*bZIH?Y(Y@72#flR=6PEHe00jSUipZ_CKi;?2cft+5-9+NU?Ly0p)a0*9(xMyd{n zRD8&%&Ldbs23rS#gR7oQ+^HeNh0B-mV{seT%boV4<|6PbC4yd^p(umkr7lkUX$Rxx zDxl8{c3qms=Wp7BU$le1@{=7CTyZ4m5HhGX!jbz)KQd~#L8ZJj&-7B0Jv)PN;ZqRY zQe5(|aKaF$Q(=>hMNF|!fCy)$>QQ0xj(ih(U0UBd8sXmyQnhD`G6+{`Xi00{dHapQ ze6XYY5=QrJ+i!fiVA>v?d!RwW-y?PhJ`}kNe(6d`z%GX73!6m&8~uP7ouSz09Yp2PDX&uC2M$EVUiF@GEb-vpe%|*1U41^bJ}Z;4aX=fl^;~qLcXP-G zkVIu7J#Dt5pc*0H>^JL*+7<*krHb9p{i3v`K(ijL7^4BaW zEma94SJaCrBpnTd9;tqX<_aH}1*`=Z^`AKN*v>o5emUJjS6zWb?wK7qgAzYf8QE#ol@d+rhm1bPQ` zsa9F2XRb{JV6(BLSoQD!otT!Clq(bxJ(lDfS3ndr zR52v;F@2lV8x0(Q7Y|}=CEQotyMsl-^Nnc{o4Jy(&_z=c_E1J$*J+!5xZOP z4r9I4ml;1s!^40Pp~;qlQj*_#tnkf$M-*=Km0{KpL6O5sQ8FS&`bLLVQY&N5aiiy= z*RJ&(P){TrSW9KmZ8IWSEA;VEPo(T$NPbZ6+h@vh-bP}7EQnx!7#~R!u|ss>rW+BBg$v)HSFLZM*&9jM6lsm=M$*vP6*op;6#vnHPnbK+to z3ti#|^M?Yni1)>N`9TQG^@-&ETbaYnAe^`yhB0dB5SFpxY!b zFRBq3=p9QZ{u>Ge$9q1cJGL7J69m=>Zx{ofc3sOkZ-APxtM|-NFeKbjFh~Y}i@#Be z#p6N{NG*KAO)`kd{q(VeJExB{J+~-YN8eE}wAAqdVRF$22T1+H!PC)^`zfev*#~uU z#RtIBnuuh-x(mbv;SjQHS-yPVe#ULoZ+|?45gU$KH7e3qyfkp+(>svqGdi$xOLMbG zL~2%Nkn8Oe_+_8vt>Uneeo3*rRAb%xK-YN{F!tuWGZyVUKN5H$eOI(H7ld-t*E$D0>rSWbf>qk#(~-8KrdzSGKyi zWF({P+>{6@BYUq<6tX2nW_iE&tKq)C{_kHOpU-v9dCqgjGtTqebDpLzx0s=yy}Ysj zdno+6S)(yyIb;U8x5xF>nsj$-{!GPvK}1NEOy9gOTc;P#^kjm-_qDY)b`4pU>9TP# z!+zN1%#xEKwSnvDaS@I}T+x#<(&am&Bv<0eQA^0MurE@*F57aWBu+%JsF587=HSjL z0qW_GGp8Ltw6Be)-p<#RB2G(c&+RN9h0&IiHz()8F0^D$y=P@V=jur=jzMXlvk+wh zCo+%S7SNKaiWzGqd*gPa(Lrntcn;({o^Osof<&#&HDxJ_2acV_iQN}_9gzcz)&zA7 zd>BDFD^KO`3(%_Bb1j;fIjtFt{-TXHWU?2_v{dB8g?eQ@*(VtDE=2?J5mm3`QHK}S zx}m+@P_1;^a-I{e#eJAhg{>|a#GXtGY;%QuKI@+7+v6X&tUq{E3Q3X7?laZAInFaC zO08%habDZvBT>)Jed?h4I`=FqP4fn&))K`eHNGhi*VN%)+2>h8YCX^ghTH7U!I}+e z_4n?xt^IJm{_#2+^N&o-ao3&JomH|p$!sHuUD?>OfQT~x@6tdF*&;o~cpc$ACnAQH z&n}Xmm*eOh-an1fnl=_|APUTzsYVuj|cOK`Lut-GAVbzeVm?N)A9AVadPk#G2j zKgEWsBaF8s3eGsU9thiMO3M-H5B6j$_FWZR4Svh!QBiMD@+ICO_g3Up4L?E@bcmUe zXPlJxTUTcBUhu`9!ctS2VKc-H7*S-T{I~UHeVdDg6t|XcW%2i3VhW#U4}92;XPWg` zl)qp7vpT_zH#yue(G}%WW@Q%?de%?akB_QWZZ-=Xa^)_ZYMp za=B!@ykU_MeX%MkS1LSqTu<~Xb4&lN=?|x4BxqVr3P1xc<)-be^9zQ1IP=ETh{klB zj_J^YrWhbnfQtUB{DP7QqkOg4kG_4uh6_fziA94jt&k||+-IYUj0IeUM*f8p2lAh% ziuwDsXlJb^Pv>pq>PqJLsRpn#D5x65n`Cp#RSwZwP-3oWq}Ha@;rVN~&iY3^ptt32 zjeIh5JV4OIP_YIRX|Cl~8&Cbr>sgXX7I%Rc;Wx(Pb4gE5Xz0WzAtY?YYGoM6CA-Gq z!hv7W>)b6m=0;@~*S-q-Vy^sDaXlN8D(L!}M>v^nF0Ed9RD|(DoZ5wF?_Hvn>}S3_ zX`5+Lx^bMROp@{-K~G#)<{RalbCGFNFA6F)Y=gO~#Ve+3V^>^{6|k+* zLXJYz|G|n(Yi7(40%fReM{VDJA~mS++jwLelKa#*&AzsHx#rUax80d8`ZUpHzR+k) zy$08M*koN_QDyeln4Wh^QRC%}rzHN_O0PJ&NItfz@wYamC2Cc`64zTd{D0n744c6m zWBtP2^TxCq&(QH$_Uo)GOpm8S>JpB95w+tc66+_d(`&gBN!^GjF++~J$=W>{z7lTG zbRkf2@?pjocB+{h zSIFvKK5hsJqDU!0BL?I*1<8xIjL*H-HNR)@%$i+fhCxQ~^Bz*lw`)S=D(1x)oJutwx;;>& znMoWs=+-9_g^Z(ci}k1TJ|p^Q_05^U7yb%a@VLJ8H@1PP{z_Ti@|yG0GIJGFlHX6s zrbf@`2PTnCH1E#hnXRg^K}U&K9Pb1ROZ2B7e-oSupB`+7d$oq^WhMcC%D-(!&Q>(c z5ce8O8v9H)&*CA3-$w2BCoC&yjhJW12*~0MTO}056-R6EHnyLXaFaA;)u zzk)(lAZ&E>Mav05=>7)BU}Q*!&~pz6boOz+B|6S3K4%v-?yrR0eeQbM zRr1HTtx;dR&TZK13DPRU>4cA|-nHh#p7)99Cy+C#83~@2ni)uq*ffM>Q0uAVVVi+9 zE{OJ(391r!M$mkpPi=f$z}t60CHf_kPrqmCX~auW4n8#>%9QrixJeHy8n1F+7_=T}|XL@LVDe(ki_=%ksXfw2M5h=$?|e z&>0i$0{nqCLAH`J8^O{d2)=;ihaNwlW)7X>Ng+SSRTB8ly-zi0M(_!zc#j6cPQzo? zWCb5zTZqHkI=ebom^{v;o#T8mOS-=V#F#rJKE3MMXt!WHeYe^0KAflMj*cK>lIHov z?Q-|!>=E)O%2a;+_brlGYM`~D$^#vIOW#$7H@v*;=89qshB?yFEQt2#1j;t<$3ExG z-UV06E$#${*dG+T>b)QD3>=D)x6QR*wb^WbIB5N95OQXzB;eDsXV@;e4r$!E5W_+3 z#^)7L67Od4O(*?(XI~C3MJ$WVe#0M}#Q3fv3ZK!8*)I@tiN;HBo+n&e+~1$FsUP0z zVSh&H+QZN{-;;ecb6ghjS>K#%TiKU5(E^RH)U;VBs`kB|ZiBPrEy?OVW4C+Avz`i` zFAIB22sh?zs46dP2rjdClr6n9&NCnTEIBmw@|E@5F$$;M%+yyV4N7OZPl)4frn5n1 z!cT_6UW-e{z$6n00|@iFPQ^*0&Yj{DZ}Wu3QI^@UYyK3kdN6~58a_nOiNsk*n#$@30XQTwo=ULmYy2D z<2+~N@KQ7S{6#$9?b^7?W@c-~FnvmDjXSM!b-CtaCz$Adfc4cGCv#o;fCJxW2V z@@qvQ@Uy)iD}VFyg?svGmGeWHnE{eJb92w9-nVy6e&26+)QguEizqgVwGcc-@HnAy z7$_a2CVQ-VMXfP|K3M09E?75Mq1#wXKZ*K+cp34YUNPy*gNQ`#l{;TB5r*8?1>uh) zZqO^DzSKngpnsX4ne)?Hxni6|)XH zlQP7yQMa6nHzl&VM8u7lo}Opsr;#O_c$HS=G;TNYT*}Aw{F`Y3!MrEI<=$;W(+=*V zDZ23qat0j<1?ce_pxjQEWTGs%?;>1cB>yTrYi99F!I%*<*qK@B%^Y6!hSNLlssGT1Z2geqBh8MyQAcO`tbEeuyk{d)sU^^4Y+%qAMwxqsEcmfCHf&;!`=SCr99M zs(LI&Dr39-)pl42Rl304Z<6hIY-?c4 z;l@)K=9#`N|Ff!$7pNw#c6#s1Grc%a+#735U=zt%TT}AU`lw#!O6*D*&yXh7D45-wMK;$Eg z`Nxntw`nng?t^)fs>Yu0XBP>dJ8_O=AW+DBO)-o4-i%M{?6u*svJJ`hPs5ax->X=e zT|6;9OP%2ayA*YjS@RuS9Vzm;LIYX$xxyR?zYI%-SIT*b`knQYxD<4zl}BheE0>rl zwc4CYSn$U41BI@M3;U9fqD?MGhauriaEBg0u^9K2SxhM$DE+_}`RWdi1!2Nw@Ii+|m}y!^{wv7{j zF-V(CM^DqRJRlMIcFX5MvuS%n1^EpGT!@@vre1Q)NHLX%iZcty@gS z(>qJ{mIW^>h9e`_Bff8$7HlzW?bc+`8-^hI_!SBVDXdka4apB0lV4V3H#TmUu5U?N zuko#JRwmQmxA>W(y8+yf1|H*4{I*ZQnkVLE3x{9#*xf4{*&AEf44~mr4EdpgaNNw% zx9hu+yuHCLSQ__OwQuNVoDf6bP`E~p$WCL2z?Yr1HP^by-t&*|lL%m7}!R+*e`P%*nDdlI96EQxuXa z;Xv02NiF-)xmmodkRV@a-~XXEfY=)YBeDC;~Q*^aYTWmpFXXW`1 z6^licNA)=($!{z7!XGZGxYp&&^JCVwNc2a;d#Hy;U>rDlTl6 z+-B>|r5F2hgLT%vTx*?2@PGgtf>}@x1Tq6fc(IJQI}7f{a^_zf3nAK20ee50^je4D z6fN?g=!L)MFq1;acdu8K=-k`4PP~1o{6a3cvN_)=_l7i$Vkixdix4|`{Zr;N8sx!2 zdiz%I{IO8aI4CiBD>+|8zmvQDU^0(_mG+7(J#nJqw-IJKrbyGq5WXvLD?Mz0`V&-HPJW3KSg`v zlcR+qbjOTAA?*q+b@_TnM`W|ZExQww6woTC#k;Gb3k?IPXc9!IQin`!GvP;dFI0%+ zp!B!1`VB9Y6d~_EaK}P*cm;Wjc@toi7X+D~!tSCs`H*H4tYk=43&C|*4{_t#w=muG zm0PtB+-hw+k%+I(^>Uvmd}?g;OJ&BK+BRm@*H3Ij+fBH6rYdoZs6M&Ygfu`xQq-1B+t}v)o<*-!fco%gol}Nak`Zp z(_s7f!tTIXbfe{ko8$}4s`<#DM(^6)syc{&2%2e>kqaOVY0ssu6zojKEngr-;Qja&K8>DX%%j%UEe5gHv@lm)tW6Oq{vx zq|?l2r$<8WT7?iDe`DDUfk)R7Zca!`H1p>nyTC75qq%3&tpLyD0^!lo(1=2p>d4(X zp5}i>@NYjcA_`184e(Dv6^NYt)alf(v+CR6QM6VQMMp=!CJci3&lD@O>Aay%U)vBewFtGx;e3eW3TmnQ}(LTyVY(q3gohOqJoTUtH^_SJG-o}loP zR^^$e@~QVTzxE>ATjD>lMSL~faR;u=PNcf26`hf-iZNo z8!bq?ZUf_{N4WY}LUq3gv&RE<<;6R>u*VbjQsQQ?k?#Rp&9mz4#d2Tv~T zpnLi_3d7bmn>>~J2>9w!kG&8wzYl#dC}m}OC3~udE!uC{b@-la)cfywIegRwH8%cw zFTHhK?jW5J@JRTY{U_m47YtGW`9o>%dWaDRWgLe~T>HTitf|MI;#Ako%R5iypbD3I zs#ROX!u9hP*3$0aNqRq!RU2c`(DcvUB@H$VRfKderrB_MImT4M7B#yd>9dmbH0LJc zi!74jS0CNkSFdbq#e^Pj!GAy)lcsGr0FQa|gUv`+fP|FfBV6ek;KcF&IPs_tmH+8O zglXUcb=#MWwxY{KT}t+_ky!sd_9bT4cta5%5m%b;K6-cw4VS&SrY zTKHZdc9*~#ZkZXFYWyY>8N$j+$+y*y+JX@Y-fr}fxIKOP3q4yAmpKAG8!b)uT#;NY zXz9ZC1+-WSJ!TQu?nL#UwfJpM*}T;Zv(rnI*Qs#eisD?YdPRAm@K*hRUIDE&@;y>5 ztx0&b(7Z7ho-Ui^PJQRv-ZL3)!lh)F(YATStX%UlLrIO2`c0DtEsYwp0sek`rtZ3k zGkH0_;m)PG8(?A}UyV>*qX*!;(ErnU>i-|-VNdeE9BBM|Iy$J+wQNzuQ#3DpaO8=I zkM1W73d2sv$h!|5=N_y-4$O;=20h4jTg7s$rGB+${$2Lu%^M8}d>Q4QS8>t8F8a-< z9yQg4X%Gle&JjE(@V^+)>zLN=YazEEc0tNQ1R+GIONn84Bmf&QFKTw~E2G%DH|ni= z_sp2dI~tqu-guqPNb;f?=c0Uj`0cspzOaYi6s$k!PQ3WA#Y4qT#<;i|c{-i8^F0)yP zI@@8nT$N&V-R&P@0zXITq{KBjN-dz;uyZF=ncKo5-8gq4-(%V&SKY5dXW-7qW}sZ> z`lFGm#wAkx%S)CYsru3O(c0=cw_)GauD&qTo8q>yn2yYnZbt4zIj!FI+7!K~%G)() zNzEKrOkt_|6+C_h(Pah40v@jZKRvAWFAu{IDF$*r*!_>diHhQ!fQ)KPpM!dAA*Y6l zst(4+!3t^nI4*v~fYc(d4I*O(%^;3W5SZ&ew|03)?f^dx&fmwlz@XlKvs)=!{3_ey zrF}W{S?PkV>v?*zeEI1=Jjica+#}$VE6zG_C|lhPbdZk54}-vs-`1CUI}4UP|Llff zwbwq@&gxwCy1iX)QCH7aV1CR`4fd{Hm*I>4d=G|8ek$gMkB6x0`^CI4vamkY<4d&T z3lSxekCqLRi1p}X@$2)qz@5h3E@ZeFSdRn&OW^J_M;9q6;15S%Z!r&FHy<}&FDJB* zB!uK>eBhu4ga!q7^bMNCX(Okgx3v*&Vfe=!TJX72Noncn@yVJw>y_`_dvga<^46%D zg@XFk16qckX3obd3U>0>uNmg8PwaIHg{rNPQWB03Ns-obCyyKW4vanf9@ba?3Je*h{%94{AWC0>}v50&=5HZTff|Uk@TWbSw z2>}r9EWq&x-hhP*2!U`Lp%Z_kN2Z8nrvakO0ydV!5d~iaON@Ohj}O#yh)HQE6`&jd zC{N)~?umkIMa7uW2X+uj4y^gixX*BA0@V0`WpGvef`;fq)IpZXT|7UqM5_QxT+^*d zfSm)c?eT+Z73%`xubu|`IdO&w><45)e3y^d3t-{+ANlvCKx#2*R;;pQSfSw8LAMh#`?B<9*X#!-Xa04Ywpe!PlhF=<2b@fCxr%yWNtHpW5f$Z>7=Yp6e}+em zFFMQwq5@LwTz%_~l`si-lZ_uo!hC-~M-~*VKP@^_^Oy3hrht|;K>&gc#UBJtJ&?=M z@&{bu<1PclTo2?YV-eRALBwjp$-m2C zQfc;l5+K}1KsZ^PexWEVHQL((A`14IZ2_>LNcqJA%*5va5eHbr+f)#to%(lH@_TrZ zx&o|?0M@uFb*F*EifPCGNdD3iV3KqX>=MY^KM5M8VM;J78{hx|3?qUg-1%&f(!dJB z2~zg+kW2{!{j342x)=_nVGh{WtNSqYP5oci=(EB~oC~r5vipfp2Dyhj1gMX&HGn-< z_!k@h2wVn0WHc6OQv4fvxPUEVffHrFfnc@3p=}H<0GKzAe`APH@{j*|s{)Hm!GOrQ z3%}MqN*e%ZT?qnz7ZV&h-5rZLS@Q>jN~`|Ms|$;yuKj~V1EmFrA_&?7n27q{7&cIi zP%Ln@;Wv;NTWP=zT9Q;V{U>&-Sp=+!J3n5&2FMw~3Ivq+>*Ig-0Z7@J-x;9EEbuFY zWBjV7KTXir?S2WAZ3pzN-trqG2MR=O4*<1VL7=kzuO&$&k(i4eV44H`;?A7WHZ0}u z!iGc1i#oJsuDNzdZS4&v-0? z{u8Kh)a>y;@O3PFb`DenNQf5#6_)G>py2|Pbq8{F&*G@@arrkTm^yzrf?qiUJiI;w z7&dI?yd0EYVrqYdiRhw$fCcLX7~wUe^r1D?hvc}0Z<@114~Y6nY;0$o!Pn^vQ27GvaH*1@hdl#@0f)ilHBZ1Oj!fu2pbh|i z!V5_Cf6oZ{yJu8CWj*Z!aJmF=lExhwus>}MIq7-^6E&CxC&=Cl4fPce@Lrfh|asaB@Yx6EN z0N@=52#C91PH_HGl@kJn{-7vFv(i;?^m)dOR`G=}{yKUBr3z<2uN=)qR>f&RgjV)F zntv>acDwW|;6IwZD}&SM2KoU`BQR;1{si{Sbu_yJHw4ZXJSrNH>ijp)mkVrq^!sjH zA%{=@t0@^;%@4u?Ha+@P;CE4@8gtlERd!4&-QZv z>jw3ID|GbwM;(V@kj6h55+5=|ulYlmL6MGLov7h(xTN(j4%}d?qgMpDv;NV!|Fpth bt1ubq5&_{Y9^N(JUlI_ek>~(33GaUZ8_;Ct delta 27134 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 z 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 Date: Sat, 12 Aug 2017 22:25:51 +0100 Subject: [PATCH 26/53] Tidyup version 2 --- SwiftJava.xcodeproj/project.pbxproj | 16 +- java_swift | 2 +- src/genswift.java | 414 ++++++++++++++-------------- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 5 files changed, 211 insertions(+), 225 deletions(-) diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index bc7bdb2..92e2968 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; - BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB6651331F2E3A8D004EFD5F /* swift-android-gradle */; }; BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; @@ -241,7 +240,6 @@ BB5ACFE31D35B09900E2386A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; - BB6651331F2E3A8D004EFD5F /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; BB8AC4621D3F11E600BD5B0F /* examples */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = examples; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -347,6 +345,12 @@ children = ( BBCCEF991F3C83440084F9E3 /* LICENSE */, BBBF389C1D49B5E6004142AE /* README.md */, + CE31850D1F368C77002046A6 /* Scripts */, + CE3185051F368C37002046A6 /* Bindings */, + CE8102371F3693260069563B /* Android */, + BB5ACFDD1D35B09900E2386A /* JDBC */, + BB8AC4631D3F11E600BD5B0F /* examples */, + BBC13DB71D48FDCE0035A039 /* org_swiftjava */, BBC13E5B1D49954A0035A039 /* CJavaVM.xcodeproj */, BBC13E7D1D4996AE0035A039 /* java_swift.xcodeproj */, BBC13EB71D4997FA0035A039 /* java_lang.xcodeproj */, @@ -355,18 +359,11 @@ BBBF2F031D49A163004142AE /* java_awt.xcodeproj */, BBBF322A1D49A246004142AE /* javax_swing.xcodeproj */, BBBF38DB1D49DB05004142AE /* com_apple.xcodeproj */, - CE31850D1F368C77002046A6 /* Scripts */, - CE3185051F368C37002046A6 /* Bindings */, - CE8102371F3693260069563B /* Android */, - BB5ACFDD1D35B09900E2386A /* JDBC */, - BB8AC4631D3F11E600BD5B0F /* examples */, - BBC13DB71D48FDCE0035A039 /* org_swiftjava */, BBF280D81D64BC6100A7AF5D /* src */, CE4A250F1F3555CA003AF384 /* com_johnholdsworth */, BB6651351F2E3F50004EFD5F /* android_toolchain */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, - BB6651331F2E3A8D004EFD5F /* swift-android-gradle */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, ); @@ -779,7 +776,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BB6651341F2E3A8E004EFD5F /* swift-android-gradle in Resources */, CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */, BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, diff --git a/java_swift b/java_swift index a852f2c..804833a 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit a852f2ca2e8236b6f966e28d2b9f5e26758e8ee0 +Subproject commit 804833a743c9951dbc26ee1f92297389d10340cb diff --git a/src/genswift.java b/src/genswift.java index 723d09e..67f685f 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -1,11 +1,13 @@ // // genswift.java -// SwiftJava +// https://github.com/SwiftJava/SwiftJava +// $Id: //depot/SwiftJava/src/genswift.java#90 $ // // Created by John Holdsworth on 14/07/2016. // Copyright (c) 2016 John Holdsworth. All rights reserved. +// MIT License // -// See ../genswift.sh.. +// See ../genswift.sh for details on invocation. // Code generator for Swift written in the style of a Perl script. // // List of classes to be generated received on stdin which is the @@ -14,7 +16,8 @@ // The ordering of frameworks can be specified in argv[0] otherwise // the ordering is found by processing all files then re-processing // after reordering to minimise the number of forward references in -// the generated code. +// the generated code. argv[1] can be the destination directory for +/// generated Swift and argv[2] can be the root for Java generation. // // For Java classes, a Swift class of the same name is generated in // a framework derived from the first two packages of the classes @@ -29,7 +32,7 @@ // have Swift methods in a subclass called from Java. This is used // in threading and in event processing in Swift. These "Base" classes // are also generated for concrete classes with names ending in "Adapter". -// Thes seemingly arbitrary conventions are taken from java.awt & swing. +// These seemingly arbitrary conventions are taken from java.awt & swing. // // A variation on this forwarding of Java methods into Swift is where // a method is generally a subclasses responsibility to implement such @@ -37,7 +40,7 @@ // be maintained in this source and where one is encountered a "Base" // class is generated allowing the method to be implemented in Swift. // -// For this proxy of Java methods into Swift support is required on +// For this proxy of Java methods into Swift, support is required on // the Java side of the divide. Proxy classes delegating to "native" // implementations of the relevant method are generated and must be // available to the application. On UNIX this is through the jar file @@ -50,7 +53,6 @@ import java.util.ArrayList; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.lang.reflect.TypeVariable; class genswift { @@ -58,6 +60,10 @@ static void print( String s ) { System.out.println(s); } + static void progress( Object o ) { + //print( o.toString() ); + } + static int apiVersion = 2; static String Unclassed = "Unclassed"; @@ -67,7 +73,7 @@ static void print( String s ) { static String repoBase = "https://github.com/SwiftJava/"; boolean isUnclassed( Class type ) { - return swiftTypeFor(type, false, true).indexOf(Unclassed) != -1; + return notVoid(type) && swiftTypeFor(type, false, true).indexOf(Unclassed) != -1; } static HashMap swiftKeywords = new HashMap() { @@ -96,7 +102,6 @@ boolean isUnclassed( Class type ) { put( Object.class.getName(), true ); put( String.class.getName(), true ); put( Comparable.class.getName(), true ); -// put( CharSequence.class.getName(), true ); put( Error.class.getName(), true ); put( SecurityException.class.getName(), true ); put( java.util.Map.class.getName(), true ); @@ -202,13 +207,26 @@ boolean isUnclassed( Class type ) { } }; - static HashMap frameworkLevels = new HashMap(); + boolean excludeFromCodeGeneration( Class clazz ) { + String className = clazz.getName(); + return !Modifier.isPublic(clazz.getModifiers()) + || classPrefix(className).equals("java_util") && className.indexOf('$') != -1 + || className.equals("java.util.concurrent.CompletableFuture"); + } - static boolean forwardReference( String currentFramework, String framework ) { - Integer level = frameworkLevels.get( framework ); - if ( level == null ) - return true; - return level > frameworkLevels.get( currentFramework ); + boolean supportsProxyCallback( Class clazz ) { + if ( false ) + return clazz.isInterface() && !dontEnforceProtocol( clazz ) && !clazz.getName().startsWith("java.util.") || isAdapter(); + String clazzName = clazz.getName(); + while ( clazzName.charAt(className.length()-1) == ']' ) + clazzName = clazzName.substring(0, clazzName.length()-1 ); + return clazz == java.lang.Runnable.class || isAdapter() || clazz.isInterface() && + (clazzName.endsWith("Listener") || clazzName.endsWith("Handler") + || clazzName.endsWith("Manager"));// || clazzName.indexOf(".swiftbindings.") != -1); + } + + boolean isAdapter() { + return classSuffix.endsWith("Adapter"); } String frameworkImports; @@ -343,7 +361,7 @@ public static void main( String args[] ) { StringBuilder code = new StringBuilder(); String pathToClass, className, classSuffix, currentFramework, visibility, classCacheVar; - boolean isInterface, isLost, isListener; + boolean isInterface, isLost; Class clazz, superclazz; genswift( String pathToClass ) { @@ -368,17 +386,12 @@ boolean generate() throws Exception { knownAdditionalFrameworks.put(currentFramework, true); additionalFrameworks.add(currentFramework); } -// if ( !currentFramework.equals("java_lang") ) -// classTypeFor( java.lang.Object.class, false, false ); frameworkImports = keyClasses.containsKey(className) ? "" : "\nimport java_swift\n"; visibility = "open "; superclazz = clazz.getSuperclass(); isInterface = clazz.isInterface(); - //if ( !isInterface ) return false; - - isListener = isInterface && supportsProxyCallback( clazz ); code.append("\n/// generated by: "+invocation+" ///\n"); // code.append("\n/// JAVA_HOME: "+System.getenv("JAVA_HOME")+" ///\n"); @@ -465,11 +478,10 @@ boolean generate() throws Exception { generateConstructors( pathToClass, classSuffix, false ); - boolean hasSubclassResponsibility = generateMethods( clazz.getDeclaredMethods(), isInterface, fieldsSeen, classSuffix, false ); + generateMethods( clazz.getDeclaredMethods(), isInterface, fieldsSeen, classSuffix, false ); ArrayList responsibles = new ArrayList(); for ( java.lang.reflect.Method method : clazz.getMethods() ) { - //print( "!!"+method.toString() ); if ( subclassResponsibilities.containsKey(method.toString()) ) responsibles.add( method ); } @@ -540,7 +552,7 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl for (Field field : clazz.getDeclaredFields()) { int mods = field.getModifiers(); - print(field.toString()); + progress(field); code.append( " /// "+field+"\n\n" ); String fieldName = safe(field.getName()); @@ -550,7 +562,7 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl boolean skipField = (fieldOverride( field, superclazz)) && isStatic || !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || fieldsSeen.containsKey(fieldName) || fieldName.equals(classSuffix) || interfaceMethods.containsKey(fieldName+"()") || - isStatic && (Modifier.isProtected(mods) || + isStatic && (Modifier.isProtected(mods) || isInterface || //// superclazz == javax.swing.undo.AbstractUndoableEdit.class || superclazz != null && superclazz.getSuperclass() == javax.swing.undo.AbstractUndoableEdit.class || superclazz == javax.swing.plaf.basic.BasicComboBoxRenderer.class || @@ -567,9 +579,6 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl catch ( NoSuchFieldException e ) { } -// if ( fieldType.isInterface() && fieldType.isArray() ) -// continue; //// - boolean arrayType = crashesCompilerOnLinx(fieldType); if ( arrayType ) code.append( " #if !os(Linux)\n"); @@ -624,11 +633,13 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis Constructor constructor = newConstructor( _constructor ); int mods = constructor.getModifiers(); - print(constructor.toString()); + progress(constructor); code.append( " /// "+constructor.toString()+"\n\n" ); - String namedSignature = argsFor( constructor, true, true ); - if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || constructorSeen.containsKey(namedSignature) || ambiguousInitialiser( constructor.toString() ) ) + String namedSignature = argsFor( constructor, true, true, null ); + if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) + || constructorSeen.containsKey(namedSignature) + || ambiguousInitialiser( constructor.toString() ) ) continue; constructorSeen.put( namedSignature, true ); @@ -637,7 +648,6 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis boolean canThrow = constructor.getExceptionTypes().length != 0 && constructor.getParameterCount() != 0 && (overridden == null || overridden.getExceptionTypes().length != 0); - boolean unnamedOverride = overridden != null; if (overridden != null) if ( argumentNamesDiffer( constructor, newConstructor( overridden ) ) ) overridden = null; @@ -653,7 +663,7 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis code.append(" private static var "+methodIDVar+": jmethodID?\n\n" ); code.append( " public "+/*(overridden != null && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ - "convenience init("+argsFor( constructor, false, true )+")"+(canThrow?" throws":"")+" {\n" ); + "convenience init("+argsFor( constructor, false, true, null )+")"+(canThrow?" throws":"")+" {\n" ); code.append( functionHeader( constructor.getParameters(), null, isListenerBase ? 1 : 0 ) ); String signature = jniArgs(constructor, "", ""); @@ -665,7 +675,7 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis code.append( " let __object = JNIMethod.NewObject( className: \""+pathToClass+"\", classCache: &"+ classSuffix+"."+classSuffix+"JNIClass, methodSig: \""+signature+"V\", methodCache: &"+classSuffix+"."+methodIDVar+ - ", args: &__args, locals: "+(constructor.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); + ", args: &__args, locals: &__locals )\n" ); if ( canThrow ) addThrowCode( constructor ); @@ -677,11 +687,11 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis code.append( " JNI.DeleteLocalRef( __object )\n" ); code.append( " }\n" ); - String unnamedSigature = argsFor( constructor, true, false ); + String unnamedSigature = argsFor( constructor, true, false, null ); if ( !constructorSeen.containsKey(unnamedSigature) && constructor.getParameters().length != 0 ) { code.append( "\n public "+/*(unnamedOverride && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ - "convenience init("+argsFor( constructor, false, false )+")"+(canThrow?" throws":"")+" {\n" ); + "convenience init("+argsFor( constructor, false, false, null )+")"+(canThrow?" throws":"")+" {\n" ); code.append( " "+(canThrow?"try ":"")+"self.init("+passthroughArguments(constructor,null)+" )\n }\n" ); @@ -705,7 +715,7 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, boolean isStatic = Modifier.isStatic(mods); String methodIdent = method.toString(); - print(method.toString()); + progress(method); code.append( " /// "+method+"\n\n" ); if ( subclassResponsibilities.containsKey(methodIdent) ) @@ -722,25 +732,30 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, unnamedOverride = overridden != null; String methodName = method.getName(); - //if ( methodName.equals("clone") ) continue; boolean fieldExists = fieldsSeen.containsKey(safe(methodName)) && method.getParameterCount() == 0; boolean skipMethod = overridden != null && !isStatic && !isListenerBase + && !(isInterface && clazz.getInterfaces().length != 0 && isUnclassed(clazz.getInterfaces()[0])) || !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || isInterface && (dontEnforceProtocol(clazz) - || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType()) && clazz != java.lang.Runnable.class) + || awkwardMethodInProtocol(method) + || isUnclassed(method.getReturnType()) && clazz != java.lang.Runnable.class) || methodName.startsWith("lambda$") || fieldExists; // argument names differ? - if ( skipMethod && !(""+method).equals("public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException") - &&!(""+method).equals("public java.util.Set java.util.HashMap.keySet()") ) { - print(methodName + (overridden != null && !isStatic && !isListenerBase) + (!Modifier.isPublic(mods) && !Modifier.isProtected(mods)) - + (isInterface && (dontEnforceProtocol(clazz) + String methodString = method.toString(); + if ( skipMethod && !methodString.equals("public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException") + && !methodString.equals("public java.util.Set java.util.HashMap.keySet()") ) { + print(methodName + + " skipped " + (overridden != null && !isStatic && !isListenerBase) + + " " + (!Modifier.isPublic(mods) && !Modifier.isProtected(mods)) + + " " + (isInterface && (dontEnforceProtocol(clazz) || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType()))) - + methodName.startsWith("lambda$") + fieldExists); + + " " + methodName.startsWith("lambda$") + + " " + fieldExists); continue; } - String namedSignature = swiftSignatureFor( method, isProtocol, true, true); + String namedSignature = swiftSignatureFor( method, isProtocol, true, true, null); if ( methodsSeen.containsKey(namedSignature) ) continue; methodsSeen.put(namedSignature, true ); @@ -748,9 +763,9 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, Class returnType = method.getReturnType(); boolean arrayType = crashesCompilerOnLinx( method ); boolean canThrow = method.getExceptionTypes().length != 0; - String unnamedSignature = swiftSignatureFor( method, isProtocol, true, false); + String unnamedSignature = swiftSignatureFor( method, isProtocol, true, false, null); boolean createsNameless = !methodsSeen.containsKey(unnamedSignature) && !fieldExists && - !(isInterface && lostType(returnType)) && method.getParameterCount() != 0; + !(isInterface && lostType(returnType)) && method.getParameterCount() != 0 && !isListenerBase; if ( arrayType ) code.append( " #if !os(Linux)\n"); @@ -798,8 +813,7 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, "object: javaObject")+ ", methodName: \""+methodName+"\", methodSig: \""+jniSignature(method, "", "")+"\", methodCache: &"+methodIDVarRef; - code.append( "JNIMethod.Call"+funcType( returnType, mods )+"Method( "+methodArgs+ - ", args: &__args, locals: "+(method.getParameters().length != 0 || true?"&__locals":"nil")+" )\n" ); + code.append( "JNIMethod.Call"+funcType( returnType, mods )+"Method( "+methodArgs + ", args: &__args, locals: &__locals )\n" ); if ( isObjectType( returnType ) ) // || returnType.isArray() && !returnType.getComponentType().isPrimitive() ) code.append( " defer { JNI.DeleteLocalRef( __return ) }\n" ); @@ -893,15 +907,16 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect } if ( rethrow ) { + String dflt = returnType.getName().equals("boolean") ? "0" : defaultReturn(returnType); code.append(" }\n"); code.append(" catch let exception as Throwable {\n"); code.append(" _ = exception.withJavaObject { JNI.api.Throw( JNI.env, $0 ) }\n"); if ( notVoid(returnType) ) - code.append(" return "+defaultReturn(returnType)+"\n"); + code.append(" return "+dflt+"\n"); code.append(" }\n catch {\n"); code.append(" _ = Exception(\"Unknown exception\").withJavaObject { JNI.api.Throw( JNI.env, $0 ) }\n"); if ( notVoid(returnType) ) - code.append(" return "+defaultReturn(returnType)+"\n"); + code.append(" return "+dflt+"\n"); code.append(" }\n"); } @@ -935,7 +950,6 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append("\n"); } - String jniName = classSuffix + "__finalize"; code.append(" natives.append( JNINativeMethod( name: strdup(\"__finalize\"), signature: strdup(\"(J)V\")" + ", fnPtr: unsafeBitCast( JNIReleasableProxy__finalize_thunk, to: UnsafeMutableRawPointer.self ) ) )\n\n"); @@ -962,7 +976,7 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" }\n\n}\n\n"); } - code.append("open class " + classSuffix + "Base: " + (isInterface&&false?"JNIObject, ":"") + classSuffix + " {\n\n"); + code.append("open class " + classSuffix + "Base: " + classSuffix + " {\n\n"); if ( !isInterface ) { code.append(" private static var "+classSuffix+"BaseJNIClass: jclass? = "+classSuffix+"Local_.proxyClass()\n\n" ); @@ -990,10 +1004,10 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append("}\n"); - generateJavaCallbackStub( methods ); + generateJavaProxyStub( methods ); } - void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOException { + void generateJavaProxyStub( java.lang.reflect.Method methods[] ) throws IOException { StringBuilder java = new StringBuilder(); java.append("\n/// generated by: "+invocation+" ///\n"); @@ -1084,13 +1098,15 @@ void generateJavaCallbackStub( java.lang.reflect.Method methods[] ) throws IOExc " }\n\n}\n"); String dest = (javaSourceRoot != null ? javaSourceRoot+"/" : - pathToWriteSource+"src/")+proxySourcePath+currentFramework; + pathToWriteSource+"src/") + proxySourcePath+currentFramework; new File( dest ).mkdirs(); - String javaSource = dest+"/"+classSuffix+"Proxy.java"; + + String javaSource = dest + "/" + classSuffix+"Proxy.java"; FileOutputStream out = new FileOutputStream( javaSource ); out.write(java.toString().getBytes("UTF-8") ); out.close(); - print("Wrote: "+javaSource); + + print("Created: "+javaSource); } void generateInterfaceFields( HashMap fieldsSeen, Class intrface ) { @@ -1107,22 +1123,13 @@ String longJavaArgs( Executable executable ) { String args = ""; for (Parameter param : executable.getParameters()) { String javaType = longJavaType( param.getType() ); -// Class type = ; -// String subs = ""; -// while ( type.isArray() ) { -// type = type.getComponentType(); -// subs += "[]"; -// javaType = type.getName()+subs; -// } - args += (args == ""?" ":", ")+javaType+" "+safe(param.getName()); + args += (args == "" ? " " : ", ")+javaType+" "+safe(param.getName()); } return args == "" ? "" : args + " "; } boolean interfacesChangingReturnTypeInSubclass( Class intrface ) { - return /*intrface == java.util.stream.BaseStream.class - || intrface == java.util.concurrent.CompletionStage.class - ||*/ intrface == java.util.SortedSet.class + return intrface == java.util.SortedSet.class || intrface == java.util.Iterator.class || intrface == java.util.concurrent.BlockingQueue.class || intrface == java.util.NavigableSet.class @@ -1143,25 +1150,27 @@ boolean awkwardMethodInProtocol( Method method ) { } boolean ambiguousInitialiser( String signature ) { - return signature.equals("public java.awt.Dialog(java.awt.Window)") - || signature.equals("public java.awt.Window(java.awt.Frame)") //// crashes compiler on Linux - || signature.equals("public javax.swing.JDialog(java.awt.Window)") - || signature.equals("public javax.swing.JWindow(java.awt.Window)") - || signature.equals("public javax.swing.JDialog(java.awt.Window,java.lang.String)"); + return false; +// return signature.equals("public java.awt.Dialog(java.awt.Window)") +// || signature.equals("public java.awt.Window(java.awt.Frame)") //// crashes compiler on Linux +// || signature.equals("public javax.swing.JDialog(java.awt.Window)") +// || signature.equals("public javax.swing.JWindow(java.awt.Window)") +// || signature.equals("public javax.swing.JDialog(java.awt.Window,java.lang.String)"); } boolean redundantConformance(Class prospectiveInterface, Class interfaces[]) { boolean prospectiveUnclassed = isUnclassed(prospectiveInterface); for (Class intrface : interfaces) if ( prospectiveInterface == intrface || prospectiveUnclassed && isUnclassed(intrface) || - redundantConformance(prospectiveInterface, intrface.getInterfaces())) + redundantConformance(prospectiveInterface, intrface.getInterfaces()) ) return true; return false; } boolean skipCallbackMethod( Method method ) { return awkwardMethodInProtocol( method ) || Modifier.isFinal(method.getModifiers()) - || !isInterface && !subclassResponsibilities.containsKey(method.toString()) && !isAdapter(); + || !isInterface && !subclassResponsibilities.containsKey(method.toString()) && !isAdapter() + || isUnclassed(method.getReturnType()) || Modifier.isStatic(method.getModifiers()); } HashMap interfaceMethods = new HashMap(); @@ -1193,8 +1202,7 @@ void addAnyMethodsDeclaredInProtocolsButNotDefined( boolean isProtocol, HashMap< String functionHeader( Parameter parameters[], Method interfaceMethod, int extra ) { StringBuilder setup = new StringBuilder(); setup.append( " var __args = [jvalue]( repeating: jvalue(), count: "+Math.max(1,parameters.length+extra)+" )\n" ); - //if ( parameters.length != 0 ) - setup.append( " var __locals = [jobject]()\n" ); + setup.append( " var __locals = [jobject]()\n" ); for ( int i=0 ; i type ) { return false;//type.isArray() && !type.getComponentType().isPrimitive(); } - String encoder( String var, Class type, String locals ) { - if ( type == java.lang.Float.class ) - return "JNIType.toJavaFloat( value: "+var+", locals: "+locals+" )"; - boolean isMap = java.util.Map.class.isAssignableFrom(type); - return "JNIType.toJava( value: "+var+/*(isObjectType( type ) && - !type.isInterface() && type.getInterfaces().length != 0 && !isMap && false? - " != nil ? "+var+"! as JNIObject : nil" : "")+*/ - (isMap ? ", mapClass: \""+type.getName().replace(".", "/")+"\"" : "") +", locals: "+locals+" )"; - } - String encodeSuffix( Class type ) { String jvalueField = jvalueFields.get( type.getName() ); if ( jvalueField == null ) @@ -1302,6 +1300,14 @@ String encodeSuffix( Class type ) { return "."+jvalueField; } + String encoder( String var, Class type, String locals ) { + if ( type == java.lang.Float.class ) + return "JNIType.toJavaFloat( value: "+var+", locals: "+locals+" )"; + boolean isMap = java.util.Map.class.isAssignableFrom(type); + return "JNIType.toJava( value: " + var + + (isMap ? ", mapClass: \""+type.getName().replace(".", "/")+"\"" : "") + ", locals: "+locals+" )"; + } + String decoder( String var, Class type ) { if ( type == java.lang.Float.class ) return "JNIType.toSwiftFloat( from: "+var+" )"; @@ -1315,10 +1321,6 @@ boolean isObjectType( Class type ) { return !type.isPrimitive() && type != String.class && !type.isArray(); } - String argsFor( Executable e, boolean anon, boolean named ) { - return argsFor( e, anon, named, null ); - } - String argsFor( Executable e, boolean anon, boolean named, Method interfaceMethod ) { String args = ""; for ( int i=0 ; i superclazz) { - if (superclazz == null) - return false; - if (f.getName().equals("serialVersionUID")) - return true; - try { - return superclazz.getField(f.getName()) != null; - } - catch ( NoSuchFieldException e ) { - return false; - } - } - - java.lang.reflect.Constructor constructorOverride(java.lang.reflect.Constructor c, Class superclazz) { - if (superclazz == null) - return null; - Class types[] = c.getParameterTypes(); - //print(""+types.length); - - try { - switch (types.length) { - case 0: - return superclazz.getConstructor(); - case 1: - return superclazz.getConstructor(types[0]); - case 2: - return superclazz.getConstructor(types[0], types[1]); - case 3: - return superclazz.getConstructor(types[0], types[1], types[2]); - case 4: - return superclazz.getConstructor(types[0], types[1], types[2], types[3]); - case 5: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4]); - case 6: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5]); - case 7: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5],types[6]); - case 8: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); - case 9: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); - case 10: - return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); - default: - return null; - } - } catch (NoSuchMethodException e) { - return null; - } - } - - java.lang.reflect.Method funcOverride(java.lang.reflect.Method m, Class superclazz) { - if (superclazz == null) - return null; - String name = m.getName(); - Class types[] = m.getParameterTypes(); - if ( types.length == 0 && name.equals("registerNatives") ) - return null;//// - try { - switch (types.length) { - case 0: - return superclazz.getMethod(name); - case 1: - return superclazz.getMethod(name, types[0]); - case 2: - return superclazz.getMethod(name, types[0], types[1]); - case 3: - return superclazz.getMethod(name, types[0], types[1], types[2]); - case 4: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3]); - case 5: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4]); - case 6: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5]); - case 7: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5],types[6]); - case 8: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); - case 9: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); - case 10: - return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); - default: - return null; - } - } catch (NoSuchMethodException e) { - return null; - } - } - String swiftTypeFor( Class type, boolean isReturn, boolean anon ) { return swiftTypeFor( type, isReturn, anon, true, false, false ); } @@ -1458,12 +1366,14 @@ String swiftTypeFor( Class type, boolean isReturn, boolean anon, boolean pref if ( decl == null ) { if(type.isArray()) { String left = "[", right = "]"; - Class elementType = type.getComponentType(); + Class elementType = type.getComponentType(); + while ( elementType.isArray() ) { elementType = elementType.getComponentType(); left += "["; right += "]"; } + String nativeType = arrayTypes.get( elementType.getName() ); if ( nativeType != null ) decl = nativeType; @@ -1482,10 +1392,9 @@ else if ( java.util.Map.class.isAssignableFrom(type) ) { decl = "[String:"+swiftTypeFor(vtype, false, anon, true, false, addForward)+"]"; } catch (Exception e) { -// e.printStackTrace(); decl = classTypeFor( type, anon, prefix ); - if ( addForward && type.isInterface() ) - decl += "Forward"; + if ( addForward && type.isInterface() ) + decl += "Forward"; } } else { @@ -1495,7 +1404,7 @@ else if ( java.util.Map.class.isAssignableFrom(type) ) { } } - return decl + (isReturn && !type.isPrimitive() /*&& !isListener*/ ? isArg && type != java.lang.Float.class ? "?" : "!" : ""); + return decl + (isReturn && !type.isPrimitive() ? isArg && type != java.lang.Float.class ? "?" : "!" : ""); } String classTypeFor( Class type, boolean anon, boolean prefix ) { @@ -1505,10 +1414,9 @@ String classTypeFor( Class type, boolean anon, boolean prefix ) { crossReference( currentFramework, frameworkPrefix ); - if ( lostType( type ) || excludeFromCodeGeneration( type ) /*|| - currentFramework.equals("java_swift") && !frameworkPrefix.equals("java_swift")*/ ) { + if ( lostType( type ) || excludeFromCodeGeneration( type ) ) { unclassedReferences++; - return (anon?"":"/* "+typeName+" */ ") + Unclassed + (type.isInterface()?"Protocol":"Object"); + return (anon?"":"/* "+typeName+" */ ") + Unclassed + (type.isInterface() ? "Protocol" : "Object"); } if ( !frameworkPrefix.equals(currentFramework) && !type.isPrimitive() ) { @@ -1567,8 +1475,17 @@ static String classSuffix( String className ) { static HashMap> crossReferences = new HashMap>(); static HashMap knownAdditionalFrameworks = new HashMap(); + static HashMap frameworkLevels = new HashMap(); static ArrayList additionalFrameworks = new ArrayList(); + static boolean forwardReference( String currentFramework, String framework ) { + Integer level = frameworkLevels.get( framework ); + if ( level == null ) + return true; + return level > frameworkLevels.get( currentFramework ); + } + + static void crossReference( String from, String to ) { if ( !crossReferences.containsKey( from ) ) crossReferences.put( from, new HashMap() ); @@ -1583,6 +1500,97 @@ static int references( String from, String to ) { return crossReferences.get(from).get(to); } + boolean fieldOverride(Field f, Class superclazz) { + if (superclazz == null) + return false; + if (f.getName().equals("serialVersionUID")) + return true; + try { + return superclazz.getField(f.getName()) != null; + } + catch ( NoSuchFieldException e ) { + return false; + } + } + + java.lang.reflect.Constructor constructorOverride(java.lang.reflect.Constructor c, Class superclazz) { + if (superclazz == null) + return null; + Class types[] = c.getParameterTypes(); + + try { + switch (types.length) { + case 0: + return superclazz.getConstructor(); + case 1: + return superclazz.getConstructor(types[0]); + case 2: + return superclazz.getConstructor(types[0], types[1]); + case 3: + return superclazz.getConstructor(types[0], types[1], types[2]); + case 4: + return superclazz.getConstructor(types[0], types[1], types[2], types[3]); + case 5: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4]); + case 6: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5]); + case 7: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5],types[6]); + case 8: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); + case 9: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); + case 10: + return superclazz.getConstructor(types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); + default: + return null; + } + } catch (NoSuchMethodException e) { + return null; + } + } + + java.lang.reflect.Method funcOverride(java.lang.reflect.Method m, Class superclazz) { + if (superclazz == null) + return null; + String name = m.getName(); + Class types[] = m.getParameterTypes(); + if ( types.length == 0 && name.equals("registerNatives") ) + return null;//// + try { + switch (types.length) { + case 0: + return superclazz.getMethod(name); + case 1: + return superclazz.getMethod(name, types[0]); + case 2: + return superclazz.getMethod(name, types[0], types[1]); + case 3: + return superclazz.getMethod(name, types[0], types[1], types[2]); + case 4: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3]); + case 5: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4]); + case 6: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5]); + case 7: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5],types[6]); + case 8: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7]); + case 9: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8]); + case 10: + return superclazz.getMethod(name, types[0], types[1], types[2], types[3], types[4], types[5], types[6],types[7], types[8], types[9]); + default: + return null; + } + } catch (NoSuchMethodException e) { + return null; + } + } + + // for compatibility with JDK < 1.8 + static class Parameter { Executable executable; int number; @@ -1662,6 +1670,7 @@ public String toString() { } } + @SuppressWarnings("rawtypes") static Constructor newConstructor( java.lang.reflect.Constructor constructor ) { if ( constructor == null ) return null; @@ -1690,23 +1699,4 @@ static Method newMethod( java.lang.reflect.Method method ) { return proxy; } - boolean excludeFromCodeGeneration( Class clazz ) { - String className = clazz.getName(); - return !Modifier.isPublic(clazz.getModifiers()) || className.equals("java.util.concurrent.CompletableFuture") - || classPrefix(className).equals("java_util") && className.indexOf('$') != -1; - } - - boolean supportsProxyCallback( Class clazz ) { - String clazzName = clazz.getName(); - while ( clazzName.charAt(className.length()-1) == ']' ) - clazzName = clazzName.substring(0, clazzName.length()-1 ); - return clazz == java.lang.Runnable.class || isAdapter() - || clazz.isInterface() && (clazzName.endsWith("Listener") || clazzName.endsWith("Handler") || clazzName.endsWith("Manager")); - } - - boolean isAdapter() { - return classSuffix.endsWith("Adapter") && clazz != java.awt.dnd.DropTargetAdapter.class; // missing drop()? - } - } - diff --git a/swift-android-kotlin b/swift-android-kotlin index 20d29bc..500ede4 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 20d29bc5e33e8188560b6ac03dc1ffa5e8085621 +Subproject commit 500ede4d1a45396e8d378acce86c2ac6e5ef4a72 diff --git a/swift-android-samples b/swift-android-samples index 56d95c1..4a03215 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 56d95c1bcf7e190a358eccac5a075126b510a3b6 +Subproject commit 4a03215df127ee500043cabf313ae62ca15e8d02 From 21b56cbbc21ee5cd8db2a09c5346eeb7cda23d3d Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 13 Aug 2017 23:22:42 +0100 Subject: [PATCH 27/53] Tidyup version 2 --- SwiftJava.xcodeproj/project.pbxproj | 39 +++-------------------------- genhello.sh | 2 +- genpkg.sh | 4 +-- genswift.sh | 2 +- 4 files changed, 8 insertions(+), 39 deletions(-) diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 92e2968..26c9936 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -36,14 +36,6 @@ BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = BBCCEF991F3C83440084F9E3 /* LICENSE */; }; BBF280D91D64BC6100A7AF5D /* src in Resources */ = {isa = PBXBuildFile; fileRef = BBF280D81D64BC6100A7AF5D /* src */; }; CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */; }; - CE4A25031F34B37C003AF384 /* JNIMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */; }; - CE4A25041F34B37C003AF384 /* JNIType.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FC1F34B37C003AF384 /* JNIType.swift */; }; - CE4A25051F34B37C003AF384 /* JNICore.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FD1F34B37C003AF384 /* JNICore.swift */; }; - CE4A25061F34B37C003AF384 /* JavaClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FE1F34B37C003AF384 /* JavaClass.swift */; }; - CE4A25071F34B37C003AF384 /* JNIObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A24FF1F34B37C003AF384 /* JNIObject.swift */; }; - CE4A25081F34B37C003AF384 /* Runnable.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25001F34B37C003AF384 /* Runnable.swift */; }; - CE4A25091F34B37C003AF384 /* JavaObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25011F34B37C003AF384 /* JavaObject.swift */; }; - CE4A250A1F34B37C003AF384 /* JNIField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25021F34B37C003AF384 /* JNIField.swift */; }; CE4A250B1F34B3E0003AF384 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */; }; CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */ = {isa = PBXBuildFile; fileRef = CE4A250F1F3555CA003AF384 /* com_johnholdsworth */; }; CE4A25191F355910003AF384 /* SwiftHelloTest_SwiftTestListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25151F355902003AF384 /* SwiftHelloTest_SwiftTestListener.swift */; }; @@ -51,17 +43,9 @@ CE4A251B1F355918003AF384 /* SwiftHelloTestImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A25131F355902003AF384 /* SwiftHelloTestImpl.swift */; }; CE4A25211F355CAC003AF384 /* SwiftHelloTest_TestListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4A251F1F355CA6003AF384 /* SwiftHelloTest_TestListener.swift */; }; CE4A25241F3563AB003AF384 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */; }; - CE649E311F39E88200C5B7FE /* SwiftHelloTypes.java in Sources */ = {isa = PBXBuildFile; fileRef = CE649E2D1F39E88200C5B7FE /* SwiftHelloTypes.java */; }; - CE649E321F39E88200C5B7FE /* SwiftHelloBinding.java in Sources */ = {isa = PBXBuildFile; fileRef = CE649E2F1F39E88200C5B7FE /* SwiftHelloBinding.java */; }; - CE649E331F39E88200C5B7FE /* SwiftHelloTest.java in Sources */ = {isa = PBXBuildFile; fileRef = CE649E301F39E88200C5B7FE /* SwiftHelloTest.java */; }; CE6BB1D81F33E59900CA6A8F /* java_swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13E821D4996AE0035A039 /* java_swift.framework */; }; CE6BB1D91F33E5AD00CA6A8F /* CJavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBC13E601D49954A0035A039 /* CJavaVM.framework */; }; CE81023A1F3693510069563B /* MainActivity.kt in Resources */ = {isa = PBXBuildFile; fileRef = CE8102391F3693510069563B /* MainActivity.kt */; }; - CE81023C1F3693790069563B /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE81023B1F3693790069563B /* main.swift */; }; - CE81023E1F369D8D0069563B /* SwiftHello.java in Sources */ = {isa = PBXBuildFile; fileRef = CE81023D1F369D8D0069563B /* SwiftHello.java */; }; - CE85B31C1F3655DD0014857D /* JavaMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE85B3191F3655DD0014857D /* JavaMap.swift */; }; - CE85B31D1F3655DD0014857D /* HashMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE85B31A1F3655DD0014857D /* HashMap.swift */; }; - CE85B31E1F3655DD0014857D /* JavaSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE85B31B1F3655DD0014857D /* JavaSet.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -640,7 +624,7 @@ CreatedOnToolsVersion = 8.0; DevelopmentTeam = 9V5A8WE85E; DevelopmentTeamName = "John Holdsworth"; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; ProvisioningStyle = Automatic; }; BB8AC4611D3F11E600BD5B0F = { @@ -654,6 +638,7 @@ CreatedOnToolsVersion = 8.0; DevelopmentTeam = 9V5A8WE85E; DevelopmentTeamName = "John Holdsworth"; + LastSwiftMigration = 0900; ProvisioningStyle = Automatic; }; }; @@ -805,23 +790,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CE649E331F39E88200C5B7FE /* SwiftHelloTest.java in Sources */, - CE85B31C1F3655DD0014857D /* JavaMap.swift in Sources */, - CE4A25041F34B37C003AF384 /* JNIType.swift in Sources */, - CE4A25031F34B37C003AF384 /* JNIMethod.swift in Sources */, - CE4A25051F34B37C003AF384 /* JNICore.swift in Sources */, BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */, - CE649E321F39E88200C5B7FE /* SwiftHelloBinding.java in Sources */, - CE4A25091F34B37C003AF384 /* JavaObject.swift in Sources */, - CE85B31E1F3655DD0014857D /* JavaSet.swift in Sources */, - CE81023C1F3693790069563B /* main.swift in Sources */, - CE85B31D1F3655DD0014857D /* HashMap.swift in Sources */, - CE4A250A1F34B37C003AF384 /* JNIField.swift in Sources */, - CE4A25071F34B37C003AF384 /* JNIObject.swift in Sources */, - CE4A25061F34B37C003AF384 /* JavaClass.swift in Sources */, - CE4A25081F34B37C003AF384 /* Runnable.swift in Sources */, - CE649E311F39E88200C5B7FE /* SwiftHelloTypes.java in Sources */, - CE81023E1F369D8D0069563B /* SwiftHello.java in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -829,6 +798,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + BBBF3A691D4BCE36004142AE /* main.swift in Sources */, BBBF3A591D4A8B88004142AE /* ImageCanvas.swift in Sources */, BBBF3A571D4A8B45004142AE /* SimpleEx.swift in Sources */, BBBF3A5B1D4A8C27004142AE /* FocusTest.swift in Sources */, @@ -836,7 +806,6 @@ BBBF3A631D4AC26B004142AE /* JComboBox.swift in Sources */, BBBF3A551D4A8ADD004142AE /* SimpleJTreeExample.swift in Sources */, BBBF3A531D4A8A68004142AE /* PhilosophersJList.swift in Sources */, - BBBF3A691D4BCE36004142AE /* main.swift in Sources */, BBBF3A671D4B1B95004142AE /* PopupTest.swift in Sources */, BBBF3A611D4AC24F004142AE /* TableColumnColor.swift in Sources */, BBBF3A731D4BF8CF004142AE /* AWTGraphicsDemo.swift in Sources */, @@ -849,10 +818,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */, CE4A25211F355CAC003AF384 /* SwiftHelloTest_TestListener.swift in Sources */, CE4A25191F355910003AF384 /* SwiftHelloTest_SwiftTestListener.swift in Sources */, BBC13DC21D4900AA0035A039 /* SwiftTest.swift in Sources */, - BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */, CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */, CE4A251A1F355914003AF384 /* SwiftHelloTest_TestResponderAdapter.swift in Sources */, CE4A251B1F355918003AF384 /* SwiftHelloTestImpl.swift in Sources */, diff --git a/genhello.sh b/genhello.sh index 7f54a51..6e3d271 100755 --- a/genhello.sh +++ b/genhello.sh @@ -17,7 +17,7 @@ export COMPANY=johnholdsworth \rm -rf ../{swift-android-samples,swift-android-kotlin}/*/src/main/java/org/swiftjava/com_$COMPANY # compile bindings and package them into for jar for genswift.sh -$JAVA_HOME/bin/javac -parameters com/$COMPANY/swiftbindings/*.java && +$JAVA_HOME/bin/javac -Xlint:unchecked -parameters com/$COMPANY/swiftbindings/*.java && $JAVA_HOME/bin/jar cf /tmp/swifthello.jar com/$COMPANY/swiftbindings/*.class && diff --git a/genpkg.sh b/genpkg.sh index 2ef8807..0a9e48e 100755 --- a/genpkg.sh +++ b/genpkg.sh @@ -11,8 +11,8 @@ XCODEBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild export JAVA_HOME=${JAVA_HOME:-/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home} for i in $*; do - ./genswift.sh $i $JAVA_HOME/jre/lib/rt.jar - ./overrides.pl $i + "$PWD/genswift.sh" $i $JAVA_HOME/jre/lib/rt.jar && + ./overrides.pl $i && while true; do ($XCODEBUILD SYMROOT=/tmp -config Debug -target examples -project SwiftJava.xcodeproj; STATUS=$?) | tee -a $i/build.log ./overrides.pl $i diff --git a/genswift.sh b/genswift.sh index d68e7c8..115e808 100755 --- a/genswift.sh +++ b/genswift.sh @@ -20,6 +20,6 @@ TARGET_JAR=${2:-$JAVA_HOME/jre/lib/rt.jar} PACKAGE_ORDER=${3:-java/lang|java/util|java/sql|java/awt|javax/swing} -cd "$(dirname "$0")/src" && $JAVA_HOME/bin/javac -d ../bin genswift.java && cd - && +cd "$(dirname "$0")/src" && $JAVA_HOME/bin/javac -d ../bin genswift.java && cd "$(dirname "$0")" && $JAVA_HOME/bin/jar tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | $JAVA_HOME/bin/java -cp "$TARGET_JAR:bin" genswift "$PACKAGE_ORDER" From 8c100b9eae3459bb697c8d71cf7dfc1dc4c33b02 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 20 Aug 2017 21:09:38 +0100 Subject: [PATCH 28/53] Rework for use in toolchain beta 2 --- LICENSE | 2 +- SwiftJava.xcodeproj/project.pbxproj | 28 +- .../xcshareddata/SwiftJava.xcscmblueprint | 10 +- android_toolchain | 2 +- com_apple | 2 +- .../Sources/SwiftHelloBinding.swift | 1 - .../Sources/SwiftHelloBinding_Listener.swift | 298 ++- .../Sources/SwiftHelloBinding_Responder.swift | 205 +- .../Sources/SwiftHelloTest.swift | 1 - .../SwiftHelloTest_SwiftTestListener.swift | 10 +- .../Sources/SwiftHelloTest_TestListener.swift | 1395 ++++++------- .../SwiftHelloTest_TestResponderAdapter.swift | 1099 +++++----- .../Sources/SwiftHelloTypes.swift | 1 - .../Sources/SwiftHelloTypes_ListenerMap.swift | 46 +- .../SwiftHelloTypes_ListenerMapList.swift | 46 +- .../Sources/SwiftHelloTypes_Planet.swift | 357 ++++ .../Sources/SwiftHelloTypes_StringMap.swift | 48 +- .../SwiftHelloTypes_StringMapList.swift | 48 +- .../SwiftHelloTypes_TextListener.swift | 12 +- examples | 2 +- genpkg.sh | 3 +- genswift.sh | 6 +- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- org_swiftjava/Sources/SwiftTest.swift | 1774 ++++++++--------- .../swiftbindings/SwiftHelloBinding.java | 2 + .../swiftbindings/SwiftHelloTypes.java | 33 +- src/genswift.java | 372 ++-- .../com_apple/AboutHandlerProxy.java | 3 + .../com_apple/AppEventListenerProxy.java | 3 + .../com_apple/AppForegroundListenerProxy.java | 19 +- .../com_apple/AppHiddenListenerProxy.java | 3 + .../com_apple/AppReOpenedListenerProxy.java | 3 + .../com_apple/ApplicationAdapterProxy.java | 167 +- .../com_apple/ApplicationListenerProxy.java | 35 +- .../com_apple/FullScreenAdapterProxy.java | 135 +- .../com_apple/FullScreenListenerProxy.java | 27 +- .../com_apple/GestureAdapterProxy.java | 137 +- .../com_apple/GestureListenerProxy.java | 3 + .../com_apple/GesturePhaseListenerProxy.java | 3 + .../com_apple/MagnificationListenerProxy.java | 3 + .../com_apple/OpenFilesHandlerProxy.java | 3 + .../com_apple/OpenURIHandlerProxy.java | 3 + .../com_apple/PreferencesHandlerProxy.java | 3 + .../com_apple/PrintFilesHandlerProxy.java | 3 + .../swiftjava/com_apple/QuitHandlerProxy.java | 3 + .../com_apple/RotationListenerProxy.java | 3 + .../com_apple/ScreenSleepListenerProxy.java | 19 +- .../com_apple/SwipeListenerProxy.java | 3 + .../com_apple/SystemSleepListenerProxy.java | 19 +- .../com_apple/UserSessionListenerProxy.java | 19 +- .../SwiftHelloBinding_ListenerProxy.java | 48 +- .../SwiftHelloTest_TestListenerProxy.java | 240 +-- ...ftHelloTest_TestResponderAdapterProxy.java | 628 +++--- .../java_awt/AWTEventListenerProxy.java | 3 + .../java_awt/ActionListenerProxy.java | 3 + .../java_awt/AdjustmentListenerProxy.java | 3 + src/org/swiftjava/java_awt/CanvasProxy.java | 39 +- .../java_awt/ComponentAdapterProxy.java | 93 +- .../java_awt/ComponentListenerProxy.java | 27 +- .../java_awt/ContainerAdapterProxy.java | 39 +- .../java_awt/ContainerListenerProxy.java | 3 + src/org/swiftjava/java_awt/DialogProxy.java | 3 + .../java_awt/DragGestureListenerProxy.java | 3 + .../java_awt/DragSourceAdapterProxy.java | 123 +- .../java_awt/DragSourceListenerProxy.java | 19 +- .../DragSourceMotionListenerProxy.java | 3 + .../java_awt/DropTargetAdapterProxy.java | 152 ++ .../java_awt/DropTargetListenerProxy.java | 35 +- .../swiftjava/java_awt/FileDialogProxy.java | 3 + .../java_awt/FlavorListenerProxy.java | 3 + .../swiftjava/java_awt/FocusAdapterProxy.java | 79 +- .../java_awt/FocusListenerProxy.java | 3 + src/org/swiftjava/java_awt/FrameProxy.java | 3 + .../java_awt/HierarchyBoundsAdapterProxy.java | 39 +- .../HierarchyBoundsListenerProxy.java | 3 + .../java_awt/HierarchyListenerProxy.java | 3 + .../java_awt/InputMethodListenerProxy.java | 19 +- .../swiftjava/java_awt/ItemListenerProxy.java | 3 + .../swiftjava/java_awt/KeyAdapterProxy.java | 99 +- .../swiftjava/java_awt/KeyListenerProxy.java | 19 +- .../java_awt/LayoutManagerProxy.java | 27 +- .../swiftjava/java_awt/MouseAdapterProxy.java | 163 +- .../java_awt/MouseListenerProxy.java | 43 +- .../java_awt/MouseMotionAdapterProxy.java | 91 +- .../java_awt/MouseMotionListenerProxy.java | 19 +- .../java_awt/MouseWheelListenerProxy.java | 3 + .../swiftjava/java_awt/TextListenerProxy.java | 3 + .../java_awt/WindowAdapterProxy.java | 225 +-- .../java_awt/WindowFocusListenerProxy.java | 3 + .../java_awt/WindowListenerProxy.java | 51 +- src/org/swiftjava/java_awt/WindowProxy.java | 3 + .../java_awt/WindowStateListenerProxy.java | 3 + .../java_lang/InvocationHandlerProxy.java | 3 + .../Thread_UncaughtExceptionHandlerProxy.java | 3 + .../swiftjava/java_swift/RunnableProxy.java | 3 + .../java_util/EventListenerProxy.java | 3 + .../java_util/NodeChangeListenerProxy.java | 3 + .../PreferenceChangeListenerProxy.java | 3 + .../RejectedExecutionHandlerProxy.java | 3 + .../javax_swing/AncestorListenerProxy.java | 19 +- .../javax_swing/CaretListenerProxy.java | 3 + .../javax_swing/CellEditorListenerProxy.java | 19 +- .../javax_swing/ChangeListenerProxy.java | 3 + .../DefaultTableCellRendererProxy.java | 3 + ...aultTableCellRenderer_UIResourceProxy.java | 3 + .../javax_swing/DefaultTableModelProxy.java | 15 +- .../javax_swing/DesktopManagerProxy.java | 107 +- .../javax_swing/DocumentListenerProxy.java | 19 +- .../javax_swing/HyperlinkListenerProxy.java | 3 + .../InternalFrameAdapterProxy.java | 181 +- .../InternalFrameListenerProxy.java | 51 +- .../JComboBox_KeySelectionManagerProxy.java | 3 + .../swiftjava/javax_swing/JDialogProxy.java | 3 + .../swiftjava/javax_swing/JFrameProxy.java | 3 + .../swiftjava/javax_swing/JTableProxy.java | 3 + .../swiftjava/javax_swing/JWindowProxy.java | 3 + .../javax_swing/ListDataListenerProxy.java | 3 + .../ListSelectionListenerProxy.java | 3 + .../MenuDragMouseListenerProxy.java | 19 +- .../javax_swing/MenuKeyListenerProxy.java | 3 + .../javax_swing/MenuListenerProxy.java | 19 +- .../javax_swing/MouseInputAdapterProxy.java | 163 +- .../javax_swing/MouseInputListenerProxy.java | 51 +- .../javax_swing/PlainDocumentProxy.java | 3 + .../javax_swing/PopupMenuListenerProxy.java | 19 +- .../javax_swing/RowSorterListenerProxy.java | 3 + .../TableColumnModelListenerProxy.java | 19 +- .../javax_swing/TableModelListenerProxy.java | 3 + .../TreeExpansionListenerProxy.java | 19 +- .../javax_swing/TreeModelListenerProxy.java | 3 + .../TreeSelectionListenerProxy.java | 3 + .../TreeWillExpandListenerProxy.java | 19 +- .../UndoableEditListenerProxy.java | 3 + swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- swiftjava.jar | Bin 96685 -> 99418 bytes 142 files changed, 5209 insertions(+), 4422 deletions(-) create mode 100644 com_johnholdsworth/Sources/SwiftHelloTypes_Planet.swift create mode 100644 src/org/swiftjava/java_awt/DropTargetAdapterProxy.java diff --git a/LICENSE b/LICENSE index 5e9e416..0c9dc3e 100644 --- a/LICENSE +++ b/LICENSE @@ -15,6 +15,6 @@ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -This License does not apply to the code generated from the Apple distribution of the Java VM +This License does not apply to the code generated from the macOS distribution of the Java VM which are provided under the provisions of "Fair Use" and your use is ultimately subject to the original License Agreement. diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 26c9936..fba2a3e 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5ACFDE1D35B09900E2386A /* AppDelegate.swift */; }; BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; + BB643B321F4873F7003E849E /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB643B311F4873F7003E849E /* swift-android-gradle */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; @@ -223,6 +224,7 @@ BB5ACFE01D35B09900E2386A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; BB5ACFE31D35B09900E2386A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BB643B311F4873F7003E849E /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; BB8AC4391D3F035700BD5B0F /* libswiftCore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftCore.tbd; path = System/Library/PrivateFrameworks/Swift/libswiftCore.tbd; sourceTree = SDKROOT; }; @@ -267,14 +269,6 @@ BBCD9F871D3CD05900DF5E47 /* genswift.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genswift.sh; sourceTree = ""; }; BBF280D81D64BC6100A7AF5D /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = src; sourceTree = ""; }; CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTypes_TextListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift; sourceTree = SOURCE_ROOT; }; - CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIMethod.swift; path = java_swift/Sources/JNIMethod.swift; sourceTree = SOURCE_ROOT; }; - CE4A24FC1F34B37C003AF384 /* JNIType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIType.swift; path = java_swift/Sources/JNIType.swift; sourceTree = SOURCE_ROOT; }; - CE4A24FD1F34B37C003AF384 /* JNICore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNICore.swift; path = java_swift/Sources/JNICore.swift; sourceTree = SOURCE_ROOT; }; - CE4A24FE1F34B37C003AF384 /* JavaClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaClass.swift; path = java_swift/Sources/JavaClass.swift; sourceTree = SOURCE_ROOT; }; - CE4A24FF1F34B37C003AF384 /* JNIObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIObject.swift; path = java_swift/Sources/JNIObject.swift; sourceTree = SOURCE_ROOT; }; - CE4A25001F34B37C003AF384 /* Runnable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Runnable.swift; path = java_swift/Sources/Runnable.swift; sourceTree = SOURCE_ROOT; }; - CE4A25011F34B37C003AF384 /* JavaObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaObject.swift; path = java_swift/Sources/JavaObject.swift; sourceTree = SOURCE_ROOT; }; - CE4A25021F34B37C003AF384 /* JNIField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JNIField.swift; path = java_swift/Sources/JNIField.swift; sourceTree = SOURCE_ROOT; }; CE4A250F1F3555CA003AF384 /* com_johnholdsworth */ = {isa = PBXFileReference; lastKnownFileType = folder; path = com_johnholdsworth; sourceTree = ""; }; CE4A25131F355902003AF384 /* SwiftHelloTestImpl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTestImpl.swift; path = com_johnholdsworth/Sources/SwiftHelloTestImpl.swift; sourceTree = SOURCE_ROOT; }; CE4A25141F355902003AF384 /* SwiftHelloTest_TestResponderAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTest_TestResponderAdapter.swift; path = com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift; sourceTree = SOURCE_ROOT; }; @@ -288,9 +282,6 @@ CE8102391F3693510069563B /* MainActivity.kt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = MainActivity.kt; path = "swift-android-kotlin/app/src/main/java/com/example/user/myapplication/MainActivity.kt"; sourceTree = ""; }; CE81023B1F3693790069563B /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = main.swift; path = "swift-android-kotlin/app/src/main/swift/Sources/main.swift"; sourceTree = ""; }; CE81023D1F369D8D0069563B /* SwiftHello.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = SwiftHello.java; path = "swift-android-samples/swifthello/src/main/java/net/zhuoweizhang/swifthello/SwiftHello.java"; sourceTree = ""; }; - CE85B3191F3655DD0014857D /* JavaMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaMap.swift; path = java_swift/Sources/JavaMap.swift; sourceTree = SOURCE_ROOT; }; - CE85B31A1F3655DD0014857D /* HashMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HashMap.swift; path = java_swift/Sources/HashMap.swift; sourceTree = SOURCE_ROOT; }; - CE85B31B1F3655DD0014857D /* JavaSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JavaSet.swift; path = java_swift/Sources/JavaSet.swift; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -346,8 +337,9 @@ BBF280D81D64BC6100A7AF5D /* src */, CE4A250F1F3555CA003AF384 /* com_johnholdsworth */, BB6651351F2E3F50004EFD5F /* android_toolchain */, - BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, + BB643B311F4873F7003E849E /* swift-android-gradle */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, + BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, ); @@ -448,17 +440,6 @@ BBC13DC11D4900AA0035A039 /* SwiftTest.swift */, BBC13DB81D48FDCE0035A039 /* org_swiftjava.swift */, BBC13DC51D490B160035A039 /* test_body.swift */, - CE4A24FD1F34B37C003AF384 /* JNICore.swift */, - CE4A24FF1F34B37C003AF384 /* JNIObject.swift */, - CE4A25021F34B37C003AF384 /* JNIField.swift */, - CE4A24FB1F34B37C003AF384 /* JNIMethod.swift */, - CE4A24FC1F34B37C003AF384 /* JNIType.swift */, - CE4A24FE1F34B37C003AF384 /* JavaClass.swift */, - CE4A25011F34B37C003AF384 /* JavaObject.swift */, - CE85B31A1F3655DD0014857D /* HashMap.swift */, - CE85B31B1F3655DD0014857D /* JavaSet.swift */, - CE85B3191F3655DD0014857D /* JavaMap.swift */, - CE4A25001F34B37C003AF384 /* Runnable.swift */, BBC13DBA1D48FDCE0035A039 /* Info.plist */, ); path = org_swiftjava; @@ -769,6 +750,7 @@ BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */, BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */, BBF280D91D64BC6100A7AF5D /* src in Resources */, + BB643B321F4873F7003E849E /* swift-android-gradle in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */, CE81023A1F3693510069563B /* MainActivity.kt in Resources */, diff --git a/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint b/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint index 1940367..586f2f1 100644 --- a/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint +++ b/SwiftJava.xcodeproj/project.xcworkspace/xcshareddata/SwiftJava.xcscmblueprint @@ -19,19 +19,19 @@ "A4A5B9FFE9560298D43F77C6A13830755B45E233" : 0, "685A538D4847A574735DC1EA392743F80472F6DF" : 0 }, - "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6E889BEB-D486-40E6-9542-259D7175A4E2", + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6BFDE20B-CFCB-4CEC-B3D1-A0DEAE5DDDC0", "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { - "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : "SwiftJava\/swift-android-kotlin\/app\/src\/main\/swift\/.build\/checkouts\/java_swift.git-9082904271628832338\/", + "919E7FD20BEE11F783ACA7E8733E036FFD3CC2A7" : "SwiftJava\/java_swift\/", "975F9120751D6C438E9A5C85C38DE132AC6185DA" : "SwiftJava\/java_sql\/", "34073D21618405EACC233186A25025AB1438DB71" : "SwiftJava\/javax_swing\/", "D69ED636B0A47DAAE52D01130A54526F3F08576F" : "SwiftJava\/swift-android-samples\/", "2448595CDB5ED36D9EAF6DDDED0F943FA508C747" : "SwiftJava\/android_toolchain\/", - "F35EB971E2A3FAC98274059126C5879BB91B08C3" : "SwiftJava\/swift-android-samples\/swifthello\/src\/main\/swift\/.build\/checkouts\/java_lang.git-938659873749723846\/", + "F35EB971E2A3FAC98274059126C5879BB91B08C3" : "SwiftJava\/java_lang\/", "88C7909D14364BE1B34BD9FA7515C938F2799EDA" : "SwiftJava\/com_apple\/", "F5602BE39D3BC51A40E8B26B29F3243856A652CB" : "SwiftJava\/java_awt\/", "878C2603E03822D160043D9D16A36206CED4E0CA" : "SwiftJava\/", "89DEE779F8BFE1CE8DDEF7AB113FB6B93E7D55C6" : "SwiftJava\/examples\/", - "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : "SwiftJava\/swift-android-kotlin\/app\/src\/main\/swift\/.build\/checkouts\/CJavaVM.git--1521134582023321205\/", + "03D674EFBA86A077C658C74B9BF7405C80AD6E58" : "SwiftJava\/CJavaVM\/", "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" : "SwiftJava\/swift-android-gradle\/", "A4A5B9FFE9560298D43F77C6A13830755B45E233" : "SwiftJava\/swift-android-kotlin\/", "685A538D4847A574735DC1EA392743F80472F6DF" : "SwiftJava\/java_util\/" @@ -66,7 +66,7 @@ "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "7FD9F53F3E97DB446A68FCFF0B1331098D829EA6" }, { - "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "http:\/\/github.com\/SwiftJava\/SwiftJava.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "http:\/\/github.com\/SwiftJava\/SwiftJava", "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "878C2603E03822D160043D9D16A36206CED4E0CA" }, diff --git a/android_toolchain b/android_toolchain index 3ebea25..f9e6cad 160000 --- a/android_toolchain +++ b/android_toolchain @@ -1 +1 @@ -Subproject commit 3ebea2565f5c0cdb6b1b64b74395715010a22e69 +Subproject commit f9e6cadd8e0a112761b193339ccdec1f8833e7b9 diff --git a/com_apple b/com_apple index 8c94fad..91d2699 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 8c94fad6dab5fd9e74c2b091aa46c8aa828d0e74 +Subproject commit 91d2699cda183bab7bd70207d70d95b4e5337030 diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding.swift b/com_johnholdsworth/Sources/SwiftHelloBinding.swift index 10ee30c..efcf81d 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding.swift @@ -16,4 +16,3 @@ open class SwiftHelloBindingForward: JNIObjectForward, SwiftHelloBinding { } - diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift index 9590080..4f6b4ec 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Listener.swift @@ -7,17 +7,17 @@ import java_swift public protocol SwiftHelloBinding_Listener: JavaProtocol { - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) - func throwException() throws /* java.lang.Exception */ -> Double + func processNumber( number: Double ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - func setCacheDir( cacheDir: String? ) + func processStringMap( map: [String:String]? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - func processNumber( number: Double ) + func processStringMapList( map: [String:[String]]? ) /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) @@ -31,18 +31,18 @@ public protocol SwiftHelloBinding_Listener: JavaProtocol { func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - - func processStringMap( map: [String:String]? ) - - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - func processStringMapList( map: [String:[String]]? ) + func setCacheDir( cacheDir: String? ) /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + + func throwException() throws /* java.lang.Exception */ -> Double + } @@ -50,49 +50,49 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin private static var SwiftHelloBinding_ListenerJNIClass: jclass? - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) - private static var throwException_MethodID_10: jmethodID? + private static var processNumber_MethodID_10: jmethodID? - open func throwException() throws /* java.lang.Exception */ -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processNumber( number: Double ) { var __locals = [jobject]() - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "throwException", methodSig: "()D", methodCache: &SwiftHelloBinding_ListenerForward.throwException_MethodID_10, args: &__args, locals: &__locals ) - if let throwable = JNI.ExceptionCheck() { - throw java_swift.Exception( javaObject: throwable ) - } - return JNIType.toSwift( type: Double(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: number ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_10, args: &__args, locals: &__locals ) } + open func processNumber( _ _number: Double ) { + processNumber( number: _number ) + } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - private static var setCacheDir_MethodID_11: jmethodID? + private static var processStringMap_MethodID_11: jmethodID? - open func setCacheDir( cacheDir: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processStringMap( map: [String:String]? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: cacheDir, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_11, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processStringMap_MethodID_11, args: &__args, locals: &__locals ) } - open func setCacheDir( _ _cacheDir: String? ) { - setCacheDir( cacheDir: _cacheDir ) + open func processStringMap( _ _map: [String:String]? ) { + processStringMap( map: _map ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - private static var processNumber_MethodID_12: jmethodID? + private static var processStringMapList_MethodID_12: jmethodID? - open func processNumber( number: Double ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processStringMapList( map: [String:[String]]? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ListenerForward.processNumber_MethodID_12, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processStringMapList_MethodID_12, args: &__args, locals: &__locals ) } - open func processNumber( _ _number: Double ) { - processNumber( number: _number ) + open func processStringMapList( _ _map: [String:[String]]? ) { + processStringMapList( map: _map ) } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) @@ -100,8 +100,8 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin private static var processText_MethodID_13: jmethodID? open func processText( text: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) JNIMethod.CallVoidMethod( object: javaObject, methodName: "processText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.processText_MethodID_13, args: &__args, locals: &__locals ) } @@ -115,8 +115,8 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin private static var processedMap_MethodID_14: jmethodID? open func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMap_MethodID_14, args: &__args, locals: &__locals ) } @@ -130,8 +130,8 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin private static var processedMapList_MethodID_15: jmethodID? open func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processedMapList_MethodID_15, args: &__args, locals: &__locals ) } @@ -140,45 +140,30 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin processedMapList( map: _map ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - private static var processStringMap_MethodID_16: jmethodID? + private static var setCacheDir_MethodID_16: jmethodID? - open func processStringMap( map: [String:String]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func setCacheDir( cacheDir: String? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ListenerForward.processStringMap_MethodID_16, args: &__args, locals: &__locals ) - } - - open func processStringMap( _ _map: [String:String]? ) { - processStringMap( map: _map ) - } - - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - - private static var processStringMapList_MethodID_17: jmethodID? - - open func processStringMapList( map: [String:[String]]? ) { var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ListenerForward.processStringMapList_MethodID_17, args: &__args, locals: &__locals ) + __args[0] = JNIType.toJava( value: cacheDir, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setCacheDir", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ListenerForward.setCacheDir_MethodID_16, args: &__args, locals: &__locals ) } - open func processStringMapList( _ _map: [String:[String]]? ) { - processStringMapList( map: _map ) + open func setCacheDir( _ _cacheDir: String? ) { + setCacheDir( cacheDir: _cacheDir ) } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) - private static var testResponder_MethodID_18: jmethodID? + private static var testResponder_MethodID_17: jmethodID? open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ListenerForward.testResponder_MethodID_18, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( i: jint(loopback) ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ListenerForward.testResponder_MethodID_17, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } @@ -187,93 +172,90 @@ open class SwiftHelloBinding_ListenerForward: JNIObjectForward, SwiftHelloBindin return testResponder( loopback: _loopback ) } -} - + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception -private typealias SwiftHelloBinding_Listener_throwException_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jdouble + private static var throwException_MethodID_18: jmethodID? -private func SwiftHelloBinding_Listener_throwException_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jdouble { - do { - JNI.inNative = true; - let __return = try SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).throwException( ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).d, &locals, removeLast: true ) - } - catch let exception as Throwable { - _ = exception.withJavaObject { JNI.api.Throw( JNI.env, $0 ) } - return 0 - } - catch { - _ = Exception("Unknown exception").withJavaObject { JNI.api.Throw( JNI.env, $0 ) } - return 0 + open func throwException() throws /* java.lang.Exception */ -> Double { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "throwException", methodSig: "()D", methodCache: &SwiftHelloBinding_ListenerForward.throwException_MethodID_18, args: &__args, locals: &__locals ) + if let throwable = JNI.ExceptionCheck() { + defer { JNI.DeleteLocalRef( throwable ) } + throw java_swift.Exception( javaObject: throwable ) + } + return __return } + + } -private typealias SwiftHelloBinding_Listener_setCacheDir_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_processNumber_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> () -private func SwiftHelloBinding_Listener_setCacheDir_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ cacheDir: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setCacheDir( cacheDir: JNIType.toSwift( type: String(), from: cacheDir ) ) - JNI.inNative = false; +private func SwiftHelloBinding_Listener_processNumber_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ number: jdouble ) -> () { + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processNumber( number: number ) } -private typealias SwiftHelloBinding_Listener_processNumber_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> () +private typealias SwiftHelloBinding_Listener_processStringMap_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_processNumber_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ number: jdouble ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processNumber( number: JNIType.toSwift( type: Double(), from: number ) ) - JNI.inNative = false; +private func SwiftHelloBinding_Listener_processStringMap_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processStringMap( map: JNIType.toSwift( type: [String:String].self, from: map, consume: false ) ) +} + +private typealias SwiftHelloBinding_Listener_processStringMapList_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () + +private func SwiftHelloBinding_Listener_processStringMapList_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processStringMapList( map: JNIType.toSwift( type: [String:[String]].self, from: map, consume: false ) ) } private typealias SwiftHelloBinding_Listener_processText_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () private func SwiftHelloBinding_Listener_processText_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ text: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processText( text: JNIType.toSwift( type: String(), from: text ) ) - JNI.inNative = false; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processText( text: text != nil ? String( javaObject: text ) : nil ) } private typealias SwiftHelloBinding_Listener_processedMap_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () private func SwiftHelloBinding_Listener_processedMap_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMap( map: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: map ) ) - JNI.inNative = false; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMap( map: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward].self, from: map, consume: false ) ) } private typealias SwiftHelloBinding_Listener_processedMapList_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () private func SwiftHelloBinding_Listener_processedMapList_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMapList( map: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: map ) ) - JNI.inNative = false; + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processedMapList( map: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]].self, from: map, consume: false ) ) } -private typealias SwiftHelloBinding_Listener_processStringMap_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_setCacheDir_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloBinding_Listener_processStringMap_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processStringMap( map: JNIType.toSwift( type: [String:String](), from: map ) ) - JNI.inNative = false; +private func SwiftHelloBinding_Listener_setCacheDir_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ cacheDir: jobject? ) -> () { + SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setCacheDir( cacheDir: cacheDir != nil ? String( javaObject: cacheDir ) : nil ) } -private typealias SwiftHelloBinding_Listener_processStringMapList_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloBinding_Listener_testResponder_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jobject? -private func SwiftHelloBinding_Listener_processStringMapList_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ map: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).processStringMapList( map: JNIType.toSwift( type: [String:[String]](), from: map ) ) - JNI.inNative = false; +private func SwiftHelloBinding_Listener_testResponder_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jint ) -> jobject? { + let __return = SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testResponder( loopback: Int(loopback) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloBinding_Listener_testResponder_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jobject? +private typealias SwiftHelloBinding_Listener_throwException_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jdouble -private func SwiftHelloBinding_Listener_testResponder_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jint ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testResponder( loopback: JNIType.toSwift( type: Int(), from: loopback ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloBinding_Listener_throwException_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jdouble { + do { + let __return = try SwiftHelloBinding_ListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).throwException( ) + var __locals = [jobject]() + return JNI.check( jvalue( d: __return ).d, &__locals, removeLast: true ) + } + catch let exception as Throwable { + _ = exception.withJavaObject { JNI.api.Throw( JNI.env, $0 ) } + return 0 + } + catch { + _ = Exception("Unknown exception").withJavaObject { JNI.api.Throw( JNI.env, $0 ) } + return 0 + } } fileprivate class SwiftHelloBinding_ListenerLocal_: JNILocalProxy { @@ -281,14 +263,14 @@ fileprivate class SwiftHelloBinding_ListenerLocal_: JNILocalProxy Double /**/ { - return 0 + open func processNumber( number: Double ) /**/ { } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - open func setCacheDir( cacheDir: String? ) /**/ { + open func processStringMap( map: [String:String]? ) /**/ { } - open func setCacheDir( _ _cacheDir: String? ) /**/ { - setCacheDir( cacheDir: _cacheDir ) - } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - open func processNumber( number: Double ) /**/ { + open func processStringMapList( map: [String:[String]]? ) /**/ { } - open func processNumber( _ _number: Double ) /**/ { - processNumber( number: _number ) - } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) open func processText( text: String? ) /**/ { } - open func processText( _ _text: String? ) /**/ { - processText( text: _text ) - } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) open func processedMap( map: [String:SwiftHelloTypes_TextListener]? ) /**/ { } - open func processedMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) /**/ { - processedMap( map: _map ) - } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processedMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) open func processedMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) /**/ { } - open func processedMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) /**/ { - processedMapList( map: _map ) - } - - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - - open func processStringMap( map: [String:String]? ) /**/ { - } - open func processStringMap( _ _map: [String:String]? ) /**/ { - processStringMap( map: _map ) - } - - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - open func processStringMapList( map: [String:[String]]? ) /**/ { + open func setCacheDir( cacheDir: String? ) /**/ { } - open func processStringMapList( _ _map: [String:[String]]? ) /**/ { - processStringMapList( map: _map ) - } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) @@ -415,8 +369,12 @@ open class SwiftHelloBinding_ListenerBase: SwiftHelloBinding_Listener { return nil } - open func testResponder( _ _loopback: Int ) -> SwiftHelloTest_TestListener! /**/ { - return testResponder( loopback: _loopback ) + + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + + open func throwException() throws /* java.lang.Exception */ -> Double /**/ { + return 0 } + } diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift index 7700cbb..ba6bfed 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift @@ -11,45 +11,49 @@ public protocol SwiftHelloBinding_Responder: JavaProtocol { func debug( msg: String? ) -> [String]! - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! + func processMap( map: [String:SwiftHelloTypes_TextListener]? ) + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) + + func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedNumber(double) func processedNumber( number: Double ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - func processedText( text: String? ) + func processedStringMap( map: [String:String]? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - func processedTextListener( text: SwiftHelloTypes_TextListener? ) + func processedStringMapList( map: [String:[String]]? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) - func processMap( map: [String:SwiftHelloTypes_TextListener]? ) + func processedText( text: String? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) - func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) + func processedTextListener( text: SwiftHelloTypes_TextListener? ) /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[][]) func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) - func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) + func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) - func processedStringMap( map: [String:String]? ) + func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.throwException() throws java.lang.Exception - func processedStringMapList( map: [String:[String]]? ) + func throwException() throws /* java.lang.Exception */ -> Double } @@ -60,172 +64,187 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.debug(java.lang.String) - private static var debug_MethodID_12: jmethodID? + private static var debug_MethodID_13: jmethodID? open func debug( msg: String? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: msg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_12, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [String](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_13, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String].self, from: __return ) } open func debug( _ _msg: String? ) -> [String]! { return debug( msg: _msg ) } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - private static var testResponder_MethodID_13: jmethodID? + private static var processMap_MethodID_14: jmethodID? - open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { + open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { + var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_14, args: &__args, locals: &__locals ) + } + + open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { + processMap( map: _map ) + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) + + private static var processMapList_MethodID_15: jmethodID? + + open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_13, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_15, args: &__args, locals: &__locals ) } - open func testResponder( _ _loopback: Int ) -> SwiftHelloTest_TestListener! { - return testResponder( loopback: _loopback ) + open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { + processMapList( map: _map ) } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedNumber(double) - private static var processedNumber_MethodID_14: jmethodID? + private static var processedNumber_MethodID_16: jmethodID? open func processedNumber( number: Double ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: number, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_14, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: number ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_16, args: &__args, locals: &__locals ) } open func processedNumber( _ _number: Double ) { processedNumber( number: _number ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - private static var processedText_MethodID_15: jmethodID? + private static var processedStringMap_MethodID_17: jmethodID? - open func processedText( text: String? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processedStringMap( map: [String:String]? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_15, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMap_MethodID_17, args: &__args, locals: &__locals ) } - open func processedText( _ _text: String? ) { - processedText( text: _text ) + open func processedStringMap( _ _map: [String:String]? ) { + processedStringMap( map: _map ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - private static var processedTextListener_MethodID_16: jmethodID? + private static var processedStringMapList_MethodID_18: jmethodID? - open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processedStringMapList( map: [String:[String]]? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_16, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMapList_MethodID_18, args: &__args, locals: &__locals ) } - open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { - processedTextListener( text: _text ) + open func processedStringMapList( _ _map: [String:[String]]? ) { + processedStringMapList( map: _map ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) - private static var processMap_MethodID_17: jmethodID? + private static var processedText_MethodID_19: jmethodID? - open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processedText( text: String? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_17, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_19, args: &__args, locals: &__locals ) } - open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { - processMap( map: _map ) + open func processedText( _ _text: String? ) { + processedText( text: _text ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) - private static var processedTextListenerArray_MethodID_18: jmethodID? + private static var processedTextListener_MethodID_20: jmethodID? - open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_18, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_20, args: &__args, locals: &__locals ) } - open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { - processedTextListenerArray( text: _text ) + open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { + processedTextListener( text: _text ) } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[][]) - private static var processedTextListener2dArray_MethodID_19: jmethodID? + private static var processedTextListener2dArray_MethodID_21: jmethodID? open func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_19, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_21, args: &__args, locals: &__locals ) } open func processedTextListener2dArray( _ _text: [[SwiftHelloTypes_TextListener]]? ) { processedTextListener2dArray( text: _text ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) - private static var processMapList_MethodID_20: jmethodID? + private static var processedTextListenerArray_MethodID_22: jmethodID? - open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_20, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: text, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_22, args: &__args, locals: &__locals ) } - open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { - processMapList( map: _map ) + open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { + processedTextListenerArray( text: _text ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) - private static var processedStringMap_MethodID_21: jmethodID? + private static var testResponder_MethodID_23: jmethodID? - open func processedStringMap( map: [String:String]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMap_MethodID_21, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( i: jint(loopback) ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_23, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } - open func processedStringMap( _ _map: [String:String]? ) { - processedStringMap( map: _map ) + open func testResponder( _ _loopback: Int ) -> SwiftHelloTest_TestListener! { + return testResponder( loopback: _loopback ) } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.throwException() throws java.lang.Exception - private static var processedStringMapList_MethodID_22: jmethodID? + private static var throwException_MethodID_24: jmethodID? - open func processedStringMapList( map: [String:[String]]? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func throwException() throws /* java.lang.Exception */ -> Double { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMapList_MethodID_22, args: &__args, locals: &__locals ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "throwException", methodSig: "()D", methodCache: &SwiftHelloBinding_ResponderForward.throwException_MethodID_24, args: &__args, locals: &__locals ) + if let throwable = JNI.ExceptionCheck() { + defer { JNI.DeleteLocalRef( throwable ) } + throw java_swift.Exception( javaObject: throwable ) + } + return __return } - open func processedStringMapList( _ _map: [String:[String]]? ) { - processedStringMapList( map: _map ) - } } - diff --git a/com_johnholdsworth/Sources/SwiftHelloTest.swift b/com_johnholdsworth/Sources/SwiftHelloTest.swift index fa45aff..29164fc 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest.swift @@ -16,4 +16,3 @@ open class SwiftHelloTestForward: JNIObjectForward, SwiftHelloTest { } - diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift index e78fbf2..e724137 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_SwiftTestListener.swift @@ -18,14 +18,16 @@ open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter /// static int com.johnholdsworth.swiftbindings.SwiftHelloTest$SwiftTestListener.tcount + // Skipping field: true false false false false false + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.loopback private static var loopback_FieldID: jfieldID? override open var loopback: SwiftHelloTest_TestListener! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject, locals: &__locals ) + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_SwiftTestListener.loopback_FieldID, object: javaObject ) + defer { JNI.DeleteLocalRef( __value ) } return __value != nil ? SwiftHelloTest_TestListenerForward( javaObject: __value ) : nil } set(newValue) { @@ -40,8 +42,8 @@ open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter private static var new_MethodID_1: jmethodID? public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTest$SwiftTestListener", classCache: &SwiftHelloTest_SwiftTestListener.SwiftHelloTest_SwiftTestListenerJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_SwiftTestListener.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) @@ -52,8 +54,8 @@ open class SwiftHelloTest_SwiftTestListener: SwiftHelloTest_TestResponderAdapter private static var respond_MethodID_2: jmethodID? open func respond( responder: SwiftHelloTest_TestListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: responder, locals: &__locals ) JNIMethod.CallVoidMethod( object: javaObject, methodName: "respond", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_SwiftTestListener.respond_MethodID_2, args: &__args, locals: &__locals ) } diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift index 3d693fe..d853b49 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestListener.swift @@ -7,129 +7,129 @@ import java_swift public protocol SwiftHelloTest_TestListener: JavaProtocol { - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - func setLoopback( loopback: SwiftHelloTest_TestListener? ) + func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! - /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - func booleanMethod( arg: Bool ) -> Bool + func StringArrayMethod( arg: [String]? ) -> [String]! - /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! + func StringMethod( arg: String? ) -> String! + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + + func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + + func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + + func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! - /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - func byteMethod( arg: Int8 ) -> Int8 + func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! - /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - func byteArrayMethod( arg: [Int8]? ) -> [Int8]! + func booleanMethod( arg: Bool ) -> Bool /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! - /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - func charMethod( arg: UInt16 ) -> UInt16 + func byteArrayMethod( arg: [Int8]? ) -> [Int8]! - /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) - func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! + func byteMethod( arg: Int8 ) -> Int8 /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! - /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) - - func shortMethod( arg: Int16 ) -> Int16 - - /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - - func shortArrayMethod( arg: [Int16]? ) -> [Int16]! - - /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) - func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! + func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! - /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) - func intMethod( arg: Int ) -> Int + func charMethod( arg: UInt16 ) -> UInt16 - /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - func intArrayMethod( arg: [Int32]? ) -> [Int32]! + func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! - /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! + func doubleArrayMethod( arg: [Double]? ) -> [Double]! - /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) - func longMethod( arg: Int64 ) -> Int64 + func doubleMethod( arg: Double ) -> Double - /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - func longArrayMethod( arg: [Int64]? ) -> [Int64]! + func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! - /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! + func floatArrayMethod( arg: [Float]? ) -> [Float]! /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) func floatMethod( arg: Float ) -> Float - /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - - func floatArrayMethod( arg: [Float]? ) -> [Float]! - - /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! + func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) - func doubleMethod( arg: Double ) -> Double + func intArrayMethod( arg: [Int32]? ) -> [Int32]! - /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) - func doubleArrayMethod( arg: [Double]? ) -> [Double]! + func intMethod( arg: Int ) -> Int - /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! + func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! - /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) - func StringMethod( arg: String? ) -> String! + func longArrayMethod( arg: [Int64]? ) -> [Int64]! - /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) - func StringArrayMethod( arg: [String]? ) -> [String]! + func longMethod( arg: Int64 ) -> Int64 - /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! + func setLoopback( loopback: SwiftHelloTest_TestListener? ) - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! + func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! + func shortArrayMethod( arg: [Int16]? ) -> [Int16]! - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) - func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! + func shortMethod( arg: Int16 ) -> Int16 /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) @@ -146,500 +146,501 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var SwiftHelloTest_TestListenerJNIClass: jclass? - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - private static var setLoopback_MethodID_34: jmethodID? + private static var String2dArrayMethod_MethodID_34: jmethodID? - open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_34, args: &__args, locals: &__locals ) - } - - open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { - setLoopback( loopback: _loopback ) - } - - /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - - private static var booleanMethod_MethodID_35: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_35, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.String2dArrayMethod_MethodID_34, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]].self, from: __return ) } - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) + open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { + return String2dArrayMethod( arg: _arg ) } - /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - private static var booleanArrayMethod_MethodID_36: jmethodID? + private static var StringArrayMethod_MethodID_35: jmethodID? - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func StringArrayMethod( arg: [String]? ) -> [String]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_36, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Bool](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringArrayMethod_MethodID_35, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String].self, from: __return ) } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) + open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { + return StringArrayMethod( arg: _arg ) } - /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - private static var boolean2dArrayMethod_MethodID_37: jmethodID? + private static var StringMethod_MethodID_36: jmethodID? - open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func StringMethod( arg: String? ) -> String! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_37, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Bool]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringMethod_MethodID_36, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? String( javaObject: __return ) : nil } - open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { - return boolean2dArrayMethod( arg: _arg ) + open func StringMethod( _ _arg: String? ) -> String! { + return StringMethod( arg: _arg ) } - /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - private static var byteMethod_MethodID_38: jmethodID? + private static var TestListener2dArrayMethod_MethodID_37: jmethodID? - open func byteMethod( arg: Int8 ) -> Int8 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_38, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int8(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListener2dArrayMethod_MethodID_37, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]].self, from: __return ) } - open func byteMethod( _ _arg: Int8 ) -> Int8 { - return byteMethod( arg: _arg ) + open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { + return TestListener2dArrayMethod( arg: _arg ) } - /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - private static var byteArrayMethod_MethodID_39: jmethodID? + private static var TestListenerArrayMethod_MethodID_38: jmethodID? - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_39, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int8](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerArrayMethod_MethodID_38, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward].self, from: __return ) } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) + open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { + return TestListenerArrayMethod( arg: _arg ) } - /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - private static var byte2dArrayMethod_MethodID_40: jmethodID? + private static var TestListenerMethod_MethodID_39: jmethodID? - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestListenerForward.byte2dArrayMethod_MethodID_40, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int8]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerMethod_MethodID_39, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg: _arg ) + open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + return TestListenerMethod( arg: _arg ) } - /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - private static var charMethod_MethodID_41: jmethodID? + private static var boolean2dArrayMethod_MethodID_40: jmethodID? - open func charMethod( arg: UInt16 ) -> UInt16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestListenerForward.charMethod_MethodID_41, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: UInt16(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestListenerForward.boolean2dArrayMethod_MethodID_40, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]].self, from: __return ) } - open func charMethod( _ _arg: UInt16 ) -> UInt16 { - return charMethod( arg: _arg ) + open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { + return boolean2dArrayMethod( arg: _arg ) } - /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - private static var charArrayMethod_MethodID_42: jmethodID? + private static var booleanArrayMethod_MethodID_41: jmethodID? - open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestListenerForward.charArrayMethod_MethodID_42, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [UInt16](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanArrayMethod_MethodID_41, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool].self, from: __return ) } - open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { - return charArrayMethod( arg: _arg ) + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) } - /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - private static var char2dArrayMethod_MethodID_43: jmethodID? + private static var booleanMethod_MethodID_42: jmethodID? - open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func booleanMethod( arg: Bool ) -> Bool { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestListenerForward.char2dArrayMethod_MethodID_43, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[UInt16]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( z: jboolean(arg ? JNI_TRUE : JNI_FALSE) ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestListenerForward.booleanMethod_MethodID_42, args: &__args, locals: &__locals ) + return __return != jboolean(JNI_FALSE) } - open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { - return char2dArrayMethod( arg: _arg ) + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) } - /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) + /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) - private static var shortMethod_MethodID_44: jmethodID? + private static var byte2dArrayMethod_MethodID_43: jmethodID? - open func shortMethod( arg: Int16 ) -> Int16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestListenerForward.shortMethod_MethodID_44, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int16(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestListenerForward.byte2dArrayMethod_MethodID_43, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]].self, from: __return ) } - open func shortMethod( _ _arg: Int16 ) -> Int16 { - return shortMethod( arg: _arg ) + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg: _arg ) } - /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - private static var shortArrayMethod_MethodID_45: jmethodID? + private static var byteArrayMethod_MethodID_44: jmethodID? - open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestListenerForward.shortArrayMethod_MethodID_45, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int16](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestListenerForward.byteArrayMethod_MethodID_44, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8].self, from: __return ) } - open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { - return shortArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) } - /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) - private static var short2dArrayMethod_MethodID_46: jmethodID? + private static var byteMethod_MethodID_45: jmethodID? - open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byteMethod( arg: Int8 ) -> Int8 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestListenerForward.short2dArrayMethod_MethodID_46, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int16]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( b: arg ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestListenerForward.byteMethod_MethodID_45, args: &__args, locals: &__locals ) + return __return } - open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { - return short2dArrayMethod( arg: _arg ) + open func byteMethod( _ _arg: Int8 ) -> Int8 { + return byteMethod( arg: _arg ) } - /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) - private static var intMethod_MethodID_47: jmethodID? + private static var char2dArrayMethod_MethodID_46: jmethodID? - open func intMethod( arg: Int ) -> Int { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestListenerForward.intMethod_MethodID_47, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestListenerForward.char2dArrayMethod_MethodID_46, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]].self, from: __return ) } - open func intMethod( _ _arg: Int ) -> Int { - return intMethod( arg: _arg ) + open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { + return char2dArrayMethod( arg: _arg ) } - /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) - private static var intArrayMethod_MethodID_48: jmethodID? + private static var charArrayMethod_MethodID_47: jmethodID? - open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestListenerForward.intArrayMethod_MethodID_48, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int32](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestListenerForward.charArrayMethod_MethodID_47, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16].self, from: __return ) } - open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { - return intArrayMethod( arg: _arg ) + open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { + return charArrayMethod( arg: _arg ) } - /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) - private static var int2dArrayMethod_MethodID_49: jmethodID? + private static var charMethod_MethodID_48: jmethodID? - open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func charMethod( arg: UInt16 ) -> UInt16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestListenerForward.int2dArrayMethod_MethodID_49, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int32]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( c: arg ) + let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestListenerForward.charMethod_MethodID_48, args: &__args, locals: &__locals ) + return __return } - open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { - return int2dArrayMethod( arg: _arg ) + open func charMethod( _ _arg: UInt16 ) -> UInt16 { + return charMethod( arg: _arg ) } - /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - private static var longMethod_MethodID_50: jmethodID? + private static var double2dArrayMethod_MethodID_49: jmethodID? - open func longMethod( arg: Int64 ) -> Int64 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestListenerForward.longMethod_MethodID_50, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int64(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestListenerForward.double2dArrayMethod_MethodID_49, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]].self, from: __return ) } - open func longMethod( _ _arg: Int64 ) -> Int64 { - return longMethod( arg: _arg ) + open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { + return double2dArrayMethod( arg: _arg ) } - /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - private static var longArrayMethod_MethodID_51: jmethodID? + private static var doubleArrayMethod_MethodID_50: jmethodID? - open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestListenerForward.longArrayMethod_MethodID_51, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int64](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestListenerForward.doubleArrayMethod_MethodID_50, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double].self, from: __return ) } - open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { - return longArrayMethod( arg: _arg ) + open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { + return doubleArrayMethod( arg: _arg ) } - /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) - private static var long2dArrayMethod_MethodID_52: jmethodID? + private static var doubleMethod_MethodID_51: jmethodID? - open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func doubleMethod( arg: Double ) -> Double { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestListenerForward.long2dArrayMethod_MethodID_52, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int64]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: arg ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestListenerForward.doubleMethod_MethodID_51, args: &__args, locals: &__locals ) + return __return } - open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { - return long2dArrayMethod( arg: _arg ) + open func doubleMethod( _ _arg: Double ) -> Double { + return doubleMethod( arg: _arg ) } - /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - private static var floatMethod_MethodID_53: jmethodID? + private static var float2dArrayMethod_MethodID_52: jmethodID? - open func floatMethod( arg: Float ) -> Float { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestListenerForward.floatMethod_MethodID_53, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Float(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestListenerForward.float2dArrayMethod_MethodID_52, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]].self, from: __return ) } - open func floatMethod( _ _arg: Float ) -> Float { - return floatMethod( arg: _arg ) + open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { + return float2dArrayMethod( arg: _arg ) } /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - private static var floatArrayMethod_MethodID_54: jmethodID? + private static var floatArrayMethod_MethodID_53: jmethodID? open func floatArrayMethod( arg: [Float]? ) -> [Float]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestListenerForward.floatArrayMethod_MethodID_54, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Float](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestListenerForward.floatArrayMethod_MethodID_53, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float].self, from: __return ) } open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! { return floatArrayMethod( arg: _arg ) } - /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) - private static var float2dArrayMethod_MethodID_55: jmethodID? + private static var floatMethod_MethodID_54: jmethodID? - open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func floatMethod( arg: Float ) -> Float { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestListenerForward.float2dArrayMethod_MethodID_55, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Float]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( f: arg ) + let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestListenerForward.floatMethod_MethodID_54, args: &__args, locals: &__locals ) + return __return } - open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { - return float2dArrayMethod( arg: _arg ) + open func floatMethod( _ _arg: Float ) -> Float { + return floatMethod( arg: _arg ) } - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - private static var doubleMethod_MethodID_56: jmethodID? + private static var int2dArrayMethod_MethodID_55: jmethodID? - open func doubleMethod( arg: Double ) -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestListenerForward.doubleMethod_MethodID_56, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Double(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestListenerForward.int2dArrayMethod_MethodID_55, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]].self, from: __return ) } - open func doubleMethod( _ _arg: Double ) -> Double { - return doubleMethod( arg: _arg ) + open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { + return int2dArrayMethod( arg: _arg ) } - /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) - private static var doubleArrayMethod_MethodID_57: jmethodID? + private static var intArrayMethod_MethodID_56: jmethodID? - open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestListenerForward.doubleArrayMethod_MethodID_57, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Double](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestListenerForward.intArrayMethod_MethodID_56, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32].self, from: __return ) } - open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { - return doubleArrayMethod( arg: _arg ) + open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { + return intArrayMethod( arg: _arg ) } - /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) - private static var double2dArrayMethod_MethodID_58: jmethodID? + private static var intMethod_MethodID_57: jmethodID? - open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func intMethod( arg: Int ) -> Int { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestListenerForward.double2dArrayMethod_MethodID_58, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Double]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( i: jint(arg) ) + let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestListenerForward.intMethod_MethodID_57, args: &__args, locals: &__locals ) + return Int(__return) } - open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { - return double2dArrayMethod( arg: _arg ) + open func intMethod( _ _arg: Int ) -> Int { + return intMethod( arg: _arg ) } - /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - private static var StringMethod_MethodID_59: jmethodID? + private static var long2dArrayMethod_MethodID_58: jmethodID? - open func StringMethod( arg: String? ) -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringMethod_MethodID_59, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: String(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestListenerForward.long2dArrayMethod_MethodID_58, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]].self, from: __return ) } - open func StringMethod( _ _arg: String? ) -> String! { - return StringMethod( arg: _arg ) + open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { + return long2dArrayMethod( arg: _arg ) } - /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) - private static var StringArrayMethod_MethodID_60: jmethodID? + private static var longArrayMethod_MethodID_59: jmethodID? - open func StringArrayMethod( arg: [String]? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.StringArrayMethod_MethodID_60, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [String](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestListenerForward.longArrayMethod_MethodID_59, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64].self, from: __return ) } - open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { - return StringArrayMethod( arg: _arg ) + open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { + return longArrayMethod( arg: _arg ) } - /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) - private static var String2dArrayMethod_MethodID_61: jmethodID? + private static var longMethod_MethodID_60: jmethodID? - open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { + open func longMethod( arg: Int64 ) -> Int64 { + var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( j: arg ) + let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestListenerForward.longMethod_MethodID_60, args: &__args, locals: &__locals ) + return __return + } + + open func longMethod( _ _arg: Int64 ) -> Int64 { + return longMethod( arg: _arg ) + } + + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + + private static var setLoopback_MethodID_61: jmethodID? + + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestListenerForward.String2dArrayMethod_MethodID_61, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[String]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestListenerForward.setLoopback_MethodID_61, args: &__args, locals: &__locals ) } - open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { - return String2dArrayMethod( arg: _arg ) + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { + setLoopback( loopback: _loopback ) } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - private static var TestListenerMethod_MethodID_62: jmethodID? + private static var short2dArrayMethod_MethodID_62: jmethodID? - open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerMethod_MethodID_62, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestListenerForward.short2dArrayMethod_MethodID_62, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]].self, from: __return ) } - open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { - return TestListenerMethod( arg: _arg ) + open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { + return short2dArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - private static var TestListenerArrayMethod_MethodID_63: jmethodID? + private static var shortArrayMethod_MethodID_63: jmethodID? - open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListenerArrayMethod_MethodID_63, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestListenerForward.shortArrayMethod_MethodID_63, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16].self, from: __return ) } - open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { - return TestListenerArrayMethod( arg: _arg ) + open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { + return shortArrayMethod( arg: _arg ) } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) - private static var TestListener2dArrayMethod_MethodID_64: jmethodID? + private static var shortMethod_MethodID_64: jmethodID? - open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func shortMethod( arg: Int16 ) -> Int16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestListenerForward.TestListener2dArrayMethod_MethodID_64, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( s: arg ) + let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestListenerForward.shortMethod_MethodID_64, args: &__args, locals: &__locals ) + return __return } - open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { - return TestListener2dArrayMethod( arg: _arg ) + open func shortMethod( _ _arg: Int16 ) -> Int16 { + return shortMethod( arg: _arg ) } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) @@ -647,12 +648,11 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var testMap_MethodID_65: jmethodID? open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestListenerForward.testMap_MethodID_65, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: __return ) + return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward].self, from: __return ) } open func testMap( _ _arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { @@ -664,12 +664,11 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ private static var testMapList_MethodID_66: jmethodID? open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestListenerForward.testMapList_MethodID_66, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: __return ) + return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]].self, from: __return ) } open func testMapList( _ _arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { @@ -678,333 +677,266 @@ open class SwiftHelloTest_TestListenerForward: JNIObjectForward, SwiftHelloTest_ } +private typealias SwiftHelloTest_TestListener_String2dArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private typealias SwiftHelloTest_TestListener_setLoopback_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () - -private func SwiftHelloTest_TestListener_setLoopback_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) - JNI.inNative = false; +private func SwiftHelloTest_TestListener_String2dArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).String2dArrayMethod( arg: JNIType.toSwift( type: [[String]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_booleanMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean +private typealias SwiftHelloTest_TestListener_StringArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_StringArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringArrayMethod( arg: JNIType.toSwift( type: [String].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_booleanArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_StringMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_booleanArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_StringMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringMethod( arg: arg != nil ? String( javaObject: arg ) : nil ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_TestListener2dArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_boolean2dArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_TestListener2dArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListener2dArrayMethod( arg: JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_byteMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestListener_TestListenerArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_byteMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_TestListenerArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerArrayMethod( arg: JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_byteArrayMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_TestListenerMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_byteArrayMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_TestListenerMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerMethod( arg: arg != nil ? SwiftHelloTest_TestListenerForward( javaObject: arg ) : nil ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_boolean2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_byte2dArrayMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byte2dArrayMethod( arg: JNIType.toSwift( type: [[Int8]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_boolean2dArrayMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_charMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jchar ) -> jchar +private typealias SwiftHelloTest_TestListener_booleanArrayMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_charMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jchar ) -> jchar { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charMethod( arg: JNIType.toSwift( type: UInt16(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).c, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_booleanArrayMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_charArrayMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_booleanMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestListener_charArrayMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charArrayMethod( arg: JNIType.toSwift( type: [UInt16](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_booleanMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: arg != jboolean(JNI_FALSE) ) + var __locals = [jobject]() + return JNI.check( jvalue( z: jboolean(__return ? JNI_TRUE : JNI_FALSE) ).z, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_char2dArrayMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_byte2dArrayMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_char2dArrayMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).char2dArrayMethod( arg: JNIType.toSwift( type: [[UInt16]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_byte2dArrayMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byte2dArrayMethod( arg: JNIType.toSwift( type: [[Int8]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_shortMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jshort ) -> jshort +private typealias SwiftHelloTest_TestListener_byteArrayMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_shortMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jshort ) -> jshort { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortMethod( arg: JNIType.toSwift( type: Int16(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).s, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_byteArrayMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_shortArrayMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_byteMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestListener_shortArrayMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortArrayMethod( arg: JNIType.toSwift( type: [Int16](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_byteMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( b: __return ).b, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_short2dArrayMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_char2dArrayMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_short2dArrayMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).short2dArrayMethod( arg: JNIType.toSwift( type: [[Int16]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_char2dArrayMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).char2dArrayMethod( arg: JNIType.toSwift( type: [[UInt16]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_intMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jint +private typealias SwiftHelloTest_TestListener_charArrayMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_intMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jint ) -> jint { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intMethod( arg: JNIType.toSwift( type: Int(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).i, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_charArrayMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charArrayMethod( arg: JNIType.toSwift( type: [UInt16].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_intArrayMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_charMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jchar ) -> jchar -private func SwiftHelloTest_TestListener_intArrayMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intArrayMethod( arg: JNIType.toSwift( type: [Int32](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_charMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jchar ) -> jchar { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( c: __return ).c, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_int2dArrayMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_double2dArrayMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_int2dArrayMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).int2dArrayMethod( arg: JNIType.toSwift( type: [[Int32]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_double2dArrayMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).double2dArrayMethod( arg: JNIType.toSwift( type: [[Double]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_longMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jlong ) -> jlong +private typealias SwiftHelloTest_TestListener_doubleArrayMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_longMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jlong ) -> jlong { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longMethod( arg: JNIType.toSwift( type: Int64(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).j, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_doubleArrayMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleArrayMethod( arg: JNIType.toSwift( type: [Double].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_longArrayMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_doubleMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> jdouble -private func SwiftHelloTest_TestListener_longArrayMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longArrayMethod( arg: JNIType.toSwift( type: [Int64](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_doubleMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jdouble ) -> jdouble { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( d: __return ).d, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_long2dArrayMethod_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_float2dArrayMethod_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_long2dArrayMethod_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).long2dArrayMethod( arg: JNIType.toSwift( type: [[Int64]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_float2dArrayMethod_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).float2dArrayMethod( arg: JNIType.toSwift( type: [[Float]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_floatMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jfloat ) -> jfloat +private typealias SwiftHelloTest_TestListener_floatArrayMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_floatMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jfloat ) -> jfloat { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatMethod( arg: JNIType.toSwift( type: Float(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).f, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_floatArrayMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatArrayMethod( arg: JNIType.toSwift( type: [Float].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_floatArrayMethod_20_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_floatMethod_20_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jfloat ) -> jfloat -private func SwiftHelloTest_TestListener_floatArrayMethod_20( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatArrayMethod( arg: JNIType.toSwift( type: [Float](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_floatMethod_20( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jfloat ) -> jfloat { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( f: __return ).f, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_float2dArrayMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_int2dArrayMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_float2dArrayMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).float2dArrayMethod( arg: JNIType.toSwift( type: [[Float]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_int2dArrayMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).int2dArrayMethod( arg: JNIType.toSwift( type: [[Int32]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_doubleMethod_22_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> jdouble +private typealias SwiftHelloTest_TestListener_intArrayMethod_22_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_doubleMethod_22( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jdouble ) -> jdouble { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleMethod( arg: JNIType.toSwift( type: Double(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).d, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_intArrayMethod_22( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intArrayMethod( arg: JNIType.toSwift( type: [Int32].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_doubleArrayMethod_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_intMethod_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jint -private func SwiftHelloTest_TestListener_doubleArrayMethod_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleArrayMethod( arg: JNIType.toSwift( type: [Double](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_intMethod_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jint ) -> jint { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intMethod( arg: Int(arg) ) + var __locals = [jobject]() + return JNI.check( jvalue( i: jint(__return) ).i, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_double2dArrayMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_long2dArrayMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_double2dArrayMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).double2dArrayMethod( arg: JNIType.toSwift( type: [[Double]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_long2dArrayMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).long2dArrayMethod( arg: JNIType.toSwift( type: [[Int64]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_StringMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_longArrayMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_StringMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringMethod( arg: JNIType.toSwift( type: String(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_longArrayMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longArrayMethod( arg: JNIType.toSwift( type: [Int64].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_StringArrayMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_longMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jlong ) -> jlong -private func SwiftHelloTest_TestListener_StringArrayMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringArrayMethod( arg: JNIType.toSwift( type: [String](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_longMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jlong ) -> jlong { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( j: __return ).j, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_String2dArrayMethod_27_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_setLoopback_27_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloTest_TestListener_String2dArrayMethod_27( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).String2dArrayMethod( arg: JNIType.toSwift( type: [[String]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_setLoopback_27( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { + SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) } -private typealias SwiftHelloTest_TestListener_TestListenerMethod_28_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_short2dArrayMethod_28_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_TestListenerMethod_28( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerMethod( arg: arg != nil ? SwiftHelloTest_TestListenerForward( javaObject: arg ) : nil ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_short2dArrayMethod_28( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).short2dArrayMethod( arg: JNIType.toSwift( type: [[Int16]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_TestListenerArrayMethod_29_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_shortArrayMethod_29_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestListener_TestListenerArrayMethod_29( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerArrayMethod( arg: JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_shortArrayMethod_29( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortArrayMethod( arg: JNIType.toSwift( type: [Int16].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestListener_TestListener2dArrayMethod_30_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestListener_shortMethod_30_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jshort ) -> jshort -private func SwiftHelloTest_TestListener_TestListener2dArrayMethod_30( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListener2dArrayMethod( arg: JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestListener_shortMethod_30( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jshort ) -> jshort { + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( s: __return ).s, &__locals, removeLast: true ) } private typealias SwiftHelloTest_TestListener_testMap_31_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? private func SwiftHelloTest_TestListener_testMap_31( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ).l, &__locals, removeLast: true ) } private typealias SwiftHelloTest_TestListener_testMapList_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? private func SwiftHelloTest_TestListener_testMapList_32( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) + let __return = SwiftHelloTest_TestListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ).l, &__locals, removeLast: true ) } fileprivate class SwiftHelloTest_TestListenerLocal_: JNILocalProxy { @@ -1012,98 +944,98 @@ fileprivate class SwiftHelloTest_TestListenerLocal_: JNILocalProxy [[String]]! /**/ { + return nil } - open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) /**/ { - setLoopback( loopback: _loopback ) - } - /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - open func booleanMethod( arg: Bool ) -> Bool /**/ { - return false + open func StringArrayMethod( arg: [String]? ) -> [String]! /**/ { + return nil } - open func booleanMethod( _ _arg: Bool ) -> Bool /**/ { - return booleanMethod( arg: _arg ) - } - /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { + open func StringMethod( arg: String? ) -> String! /**/ { return nil } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! /**/ { - return booleanArrayMethod( arg: _arg ) - } - /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! /**/ { + open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! /**/ { return nil } - open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! /**/ { - return boolean2dArrayMethod( arg: _arg ) - } - /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - open func byteMethod( arg: Int8 ) -> Int8 /**/ { - return 0 + open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! /**/ { + return nil } - open func byteMethod( _ _arg: Int8 ) -> Int8 /**/ { - return byteMethod( arg: _arg ) - } - /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { + open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /**/ { return nil } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! /**/ { - return byteArrayMethod( arg: _arg ) - } - /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { + open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! /**/ { return nil } - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! /**/ { - return byte2dArrayMethod( arg: _arg ) - } - /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - open func charMethod( arg: UInt16 ) -> UInt16 /**/ { - return 0 + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! /**/ { + return nil } - open func charMethod( _ _arg: UInt16 ) -> UInt16 /**/ { - return charMethod( arg: _arg ) + + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + + open func booleanMethod( arg: Bool ) -> Bool /**/ { + return false } - /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) - open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! /**/ { + /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) + + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! /**/ { return nil } - open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! /**/ { - return charArrayMethod( arg: _arg ) - } - /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! /**/ { return nil } - open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { - return char2dArrayMethod( arg: _arg ) - } - /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) - open func shortMethod( arg: Int16 ) -> Int16 /**/ { + open func byteMethod( arg: Int8 ) -> Int8 /**/ { return 0 } - open func shortMethod( _ _arg: Int16 ) -> Int16 /**/ { - return shortMethod( arg: _arg ) - } - /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) + /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) - open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! /**/ { + open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! /**/ { return nil } - open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! /**/ { - return shortArrayMethod( arg: _arg ) - } - /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) - open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! /**/ { + open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! /**/ { return nil } - open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! /**/ { - return short2dArrayMethod( arg: _arg ) - } - /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) - open func intMethod( arg: Int ) -> Int /**/ { + open func charMethod( arg: UInt16 ) -> UInt16 /**/ { return 0 } - open func intMethod( _ _arg: Int ) -> Int /**/ { - return intMethod( arg: _arg ) - } - /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - open func intArrayMethod( arg: [Int32]? ) -> [Int32]! /**/ { + open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! /**/ { return nil } - open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! /**/ { - return intArrayMethod( arg: _arg ) - } - /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! /**/ { + open func doubleArrayMethod( arg: [Double]? ) -> [Double]! /**/ { return nil } - open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! /**/ { - return int2dArrayMethod( arg: _arg ) - } - /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) - open func longMethod( arg: Int64 ) -> Int64 /**/ { + open func doubleMethod( arg: Double ) -> Double /**/ { return 0 } - open func longMethod( _ _arg: Int64 ) -> Int64 /**/ { - return longMethod( arg: _arg ) - } - /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - open func longArrayMethod( arg: [Int64]? ) -> [Int64]! /**/ { + open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! /**/ { return nil } - open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! /**/ { - return longArrayMethod( arg: _arg ) - } - /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! /**/ { + open func floatArrayMethod( arg: [Float]? ) -> [Float]! /**/ { return nil } - open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! /**/ { - return long2dArrayMethod( arg: _arg ) - } /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) @@ -1337,119 +1220,75 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return 0 } - open func floatMethod( _ _arg: Float ) -> Float /**/ { - return floatMethod( arg: _arg ) - } - /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - open func floatArrayMethod( arg: [Float]? ) -> [Float]! /**/ { + open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! /**/ { return nil } - open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! /**/ { - return floatArrayMethod( arg: _arg ) - } - /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) - open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! /**/ { + open func intArrayMethod( arg: [Int32]? ) -> [Int32]! /**/ { return nil } - open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! /**/ { - return float2dArrayMethod( arg: _arg ) - } - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) - open func doubleMethod( arg: Double ) -> Double /**/ { + open func intMethod( arg: Int ) -> Int /**/ { return 0 } - open func doubleMethod( _ _arg: Double ) -> Double /**/ { - return doubleMethod( arg: _arg ) - } - - /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - - open func doubleArrayMethod( arg: [Double]? ) -> [Double]! /**/ { - return nil - } - - open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! /**/ { - return doubleArrayMethod( arg: _arg ) - } - /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! /**/ { + open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! /**/ { return nil } - open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! /**/ { - return double2dArrayMethod( arg: _arg ) - } - /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) - open func StringMethod( arg: String? ) -> String! /**/ { + open func longArrayMethod( arg: [Int64]? ) -> [Int64]! /**/ { return nil } - open func StringMethod( _ _arg: String? ) -> String! /**/ { - return StringMethod( arg: _arg ) - } - /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) - open func StringArrayMethod( arg: [String]? ) -> [String]! /**/ { - return nil + open func longMethod( arg: Int64 ) -> Int64 /**/ { + return 0 } - open func StringArrayMethod( _ _arg: [String]? ) -> [String]! /**/ { - return StringArrayMethod( arg: _arg ) - } - /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! /**/ { - return nil + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) /**/ { } - open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! /**/ { - return String2dArrayMethod( arg: _arg ) - } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /**/ { + open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! /**/ { return nil } - open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! /**/ { - return TestListenerMethod( arg: _arg ) - } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! /**/ { + open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! /**/ { return nil } - open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! /**/ { - return TestListenerArrayMethod( arg: _arg ) - } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) - open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! /**/ { - return nil + open func shortMethod( arg: Int16 ) -> Int16 /**/ { + return 0 } - open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! /**/ { - return TestListener2dArrayMethod( arg: _arg ) - } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) @@ -1457,9 +1296,6 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return nil } - open func testMap( _ _arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! /**/ { - return testMap( arg: _arg ) - } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) @@ -1467,8 +1303,5 @@ open class SwiftHelloTest_TestListenerBase: SwiftHelloTest_TestListener { return nil } - open func testMapList( _ _arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! /**/ { - return testMapList( arg: _arg ) - } } diff --git a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift index dfa2166..ecd9a5e 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTest_TestResponderAdapter.swift @@ -22,8 +22,8 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell open var loopback: SwiftHelloTest_TestListener! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject, locals: &__locals ) + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftHelloTest_TestResponderAdapter.loopback_FieldID, object: javaObject ) + defer { JNI.DeleteLocalRef( __value ) } return __value != nil ? SwiftHelloTest_TestListenerForward( javaObject: __value ) : nil } set(newValue) { @@ -38,507 +38,508 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell private static var new_MethodID_1: jmethodID? public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTest$TestResponderAdapter", classCache: &SwiftHelloTest_TestResponderAdapter.SwiftHelloTest_TestResponderAdapterJNIClass, methodSig: "()V", methodCache: &SwiftHelloTest_TestResponderAdapter.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) - private static var setLoopback_MethodID_2: jmethodID? + private static var String2dArrayMethod_MethodID_2: jmethodID? - open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_2, args: &__args, locals: &__locals ) - } - - open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { - setLoopback( loopback: _loopback ) - } - - /// public boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) - - private static var booleanMethod_MethodID_3: jmethodID? - - open func booleanMethod( arg: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanMethod_MethodID_3, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.String2dArrayMethod_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]].self, from: __return ) } - open func booleanMethod( _ _arg: Bool ) -> Bool { - return booleanMethod( arg: _arg ) + open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { + return String2dArrayMethod( arg: _arg ) } - /// public boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) + /// public java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) - private static var booleanArrayMethod_MethodID_4: jmethodID? + private static var StringArrayMethod_MethodID_3: jmethodID? - open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func StringArrayMethod( arg: [String]? ) -> [String]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanArrayMethod_MethodID_4, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Bool](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.StringArrayMethod_MethodID_3, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String].self, from: __return ) } - open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg: _arg ) + open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { + return StringArrayMethod( arg: _arg ) } - /// public boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) + /// public java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) - private static var boolean2dArrayMethod_MethodID_5: jmethodID? + private static var StringMethod_MethodID_4: jmethodID? - open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func StringMethod( arg: String? ) -> String! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.boolean2dArrayMethod_MethodID_5, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Bool]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.StringMethod_MethodID_4, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? String( javaObject: __return ) : nil } - open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { - return boolean2dArrayMethod( arg: _arg ) + open func StringMethod( _ _arg: String? ) -> String! { + return StringMethod( arg: _arg ) } - /// public byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - private static var byteMethod_MethodID_6: jmethodID? + private static var TestListener2dArrayMethod_MethodID_5: jmethodID? - open func byteMethod( arg: Int8 ) -> Int8 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteMethod_MethodID_6, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int8(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListener2dArrayMethod_MethodID_5, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]].self, from: __return ) } - open func byteMethod( _ _arg: Int8 ) -> Int8 { - return byteMethod( arg: _arg ) + open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { + return TestListener2dArrayMethod( arg: _arg ) } - /// public byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - private static var byteArrayMethod_MethodID_7: jmethodID? + private static var TestListenerArrayMethod_MethodID_6: jmethodID? - open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteArrayMethod_MethodID_7, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int8](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerArrayMethod_MethodID_6, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward].self, from: __return ) } - open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg: _arg ) + open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { + return TestListenerArrayMethod( arg: _arg ) } - /// public byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - private static var byte2dArrayMethod_MethodID_8: jmethodID? + private static var TestListenerMethod_MethodID_7: jmethodID? - open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byte2dArrayMethod_MethodID_8, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int8]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerMethod_MethodID_7, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } - open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg: _arg ) + open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + return TestListenerMethod( arg: _arg ) } - /// public char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) + /// public boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) - private static var charMethod_MethodID_9: jmethodID? + private static var boolean2dArrayMethod_MethodID_8: jmethodID? - open func charMethod( arg: UInt16 ) -> UInt16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func boolean2dArrayMethod( arg: [[Bool]]? ) -> [[Bool]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestResponderAdapter.charMethod_MethodID_9, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: UInt16(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.boolean2dArrayMethod_MethodID_8, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]].self, from: __return ) } - open func charMethod( _ _arg: UInt16 ) -> UInt16 { - return charMethod( arg: _arg ) + open func boolean2dArrayMethod( _ _arg: [[Bool]]? ) -> [[Bool]]! { + return boolean2dArrayMethod( arg: _arg ) } - /// public char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) + /// public boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) - private static var charArrayMethod_MethodID_10: jmethodID? + private static var booleanArrayMethod_MethodID_9: jmethodID? - open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func booleanArrayMethod( arg: [Bool]? ) -> [Bool]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestResponderAdapter.charArrayMethod_MethodID_10, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [UInt16](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanArrayMethod_MethodID_9, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool].self, from: __return ) } - open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { - return charArrayMethod( arg: _arg ) + open func booleanArrayMethod( _ _arg: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg: _arg ) } - /// public char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) + /// public boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) - private static var char2dArrayMethod_MethodID_11: jmethodID? + private static var booleanMethod_MethodID_10: jmethodID? - open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func booleanMethod( arg: Bool ) -> Bool { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestResponderAdapter.char2dArrayMethod_MethodID_11, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[UInt16]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( z: jboolean(arg ? JNI_TRUE : JNI_FALSE) ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftHelloTest_TestResponderAdapter.booleanMethod_MethodID_10, args: &__args, locals: &__locals ) + return __return != jboolean(JNI_FALSE) } - open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { - return char2dArrayMethod( arg: _arg ) + open func booleanMethod( _ _arg: Bool ) -> Bool { + return booleanMethod( arg: _arg ) } - /// public short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) + /// public byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) - private static var shortMethod_MethodID_12: jmethodID? + private static var byte2dArrayMethod_MethodID_11: jmethodID? - open func shortMethod( arg: Int16 ) -> Int16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byte2dArrayMethod( arg: [[Int8]]? ) -> [[Int8]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestResponderAdapter.shortMethod_MethodID_12, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int16(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byte2dArrayMethod_MethodID_11, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]].self, from: __return ) } - open func shortMethod( _ _arg: Int16 ) -> Int16 { - return shortMethod( arg: _arg ) + open func byte2dArrayMethod( _ _arg: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg: _arg ) } - /// public short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) + /// public byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) - private static var shortArrayMethod_MethodID_13: jmethodID? + private static var byteArrayMethod_MethodID_12: jmethodID? - open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byteArrayMethod( arg: [Int8]? ) -> [Int8]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestResponderAdapter.shortArrayMethod_MethodID_13, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int16](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteArrayMethod_MethodID_12, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8].self, from: __return ) } - open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { - return shortArrayMethod( arg: _arg ) + open func byteArrayMethod( _ _arg: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg: _arg ) } - /// public short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + /// public byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) - private static var short2dArrayMethod_MethodID_14: jmethodID? + private static var byteMethod_MethodID_13: jmethodID? - open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byteMethod( arg: Int8 ) -> Int8 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestResponderAdapter.short2dArrayMethod_MethodID_14, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int16]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( b: arg ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftHelloTest_TestResponderAdapter.byteMethod_MethodID_13, args: &__args, locals: &__locals ) + return __return } - open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { - return short2dArrayMethod( arg: _arg ) + open func byteMethod( _ _arg: Int8 ) -> Int8 { + return byteMethod( arg: _arg ) } - /// public int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) + /// public char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) - private static var intMethod_MethodID_15: jmethodID? + private static var char2dArrayMethod_MethodID_14: jmethodID? - open func intMethod( arg: Int ) -> Int { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func char2dArrayMethod( arg: [[UInt16]]? ) -> [[UInt16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestResponderAdapter.intMethod_MethodID_15, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftHelloTest_TestResponderAdapter.char2dArrayMethod_MethodID_14, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]].self, from: __return ) } - open func intMethod( _ _arg: Int ) -> Int { - return intMethod( arg: _arg ) + open func char2dArrayMethod( _ _arg: [[UInt16]]? ) -> [[UInt16]]! { + return char2dArrayMethod( arg: _arg ) } - /// public int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) + /// public char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) - private static var intArrayMethod_MethodID_16: jmethodID? + private static var charArrayMethod_MethodID_15: jmethodID? - open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func charArrayMethod( arg: [UInt16]? ) -> [UInt16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestResponderAdapter.intArrayMethod_MethodID_16, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int32](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftHelloTest_TestResponderAdapter.charArrayMethod_MethodID_15, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16].self, from: __return ) } - open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { - return intArrayMethod( arg: _arg ) + open func charArrayMethod( _ _arg: [UInt16]? ) -> [UInt16]! { + return charArrayMethod( arg: _arg ) } - /// public int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) + /// public char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) - private static var int2dArrayMethod_MethodID_17: jmethodID? + private static var charMethod_MethodID_16: jmethodID? - open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func charMethod( arg: UInt16 ) -> UInt16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestResponderAdapter.int2dArrayMethod_MethodID_17, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int32]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( c: arg ) + let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftHelloTest_TestResponderAdapter.charMethod_MethodID_16, args: &__args, locals: &__locals ) + return __return } - open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { - return int2dArrayMethod( arg: _arg ) + open func charMethod( _ _arg: UInt16 ) -> UInt16 { + return charMethod( arg: _arg ) } - /// public long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) + /// public double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) - private static var longMethod_MethodID_18: jmethodID? + private static var double2dArrayMethod_MethodID_17: jmethodID? - open func longMethod( arg: Int64 ) -> Int64 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestResponderAdapter.longMethod_MethodID_18, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int64(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestResponderAdapter.double2dArrayMethod_MethodID_17, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]].self, from: __return ) } - open func longMethod( _ _arg: Int64 ) -> Int64 { - return longMethod( arg: _arg ) + open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { + return double2dArrayMethod( arg: _arg ) } - /// public long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) + /// public double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) - private static var longArrayMethod_MethodID_19: jmethodID? + private static var doubleArrayMethod_MethodID_18: jmethodID? - open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestResponderAdapter.longArrayMethod_MethodID_19, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int64](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestResponderAdapter.doubleArrayMethod_MethodID_18, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double].self, from: __return ) } - open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { - return longArrayMethod( arg: _arg ) + open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { + return doubleArrayMethod( arg: _arg ) } - /// public long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) - private static var long2dArrayMethod_MethodID_20: jmethodID? + private static var doubleMethod_MethodID_19: jmethodID? - open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func doubleMethod( arg: Double ) -> Double { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestResponderAdapter.long2dArrayMethod_MethodID_20, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int64]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: arg ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestResponderAdapter.doubleMethod_MethodID_19, args: &__args, locals: &__locals ) + return __return } - open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { - return long2dArrayMethod( arg: _arg ) + open func doubleMethod( _ _arg: Double ) -> Double { + return doubleMethod( arg: _arg ) } - /// public float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) + /// public float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) - private static var floatMethod_MethodID_21: jmethodID? + private static var float2dArrayMethod_MethodID_20: jmethodID? - open func floatMethod( arg: Float ) -> Float { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestResponderAdapter.floatMethod_MethodID_21, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Float(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestResponderAdapter.float2dArrayMethod_MethodID_20, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]].self, from: __return ) } - open func floatMethod( _ _arg: Float ) -> Float { - return floatMethod( arg: _arg ) + open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { + return float2dArrayMethod( arg: _arg ) } /// public float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) - private static var floatArrayMethod_MethodID_22: jmethodID? + private static var floatArrayMethod_MethodID_21: jmethodID? open func floatArrayMethod( arg: [Float]? ) -> [Float]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestResponderAdapter.floatArrayMethod_MethodID_22, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Float](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftHelloTest_TestResponderAdapter.floatArrayMethod_MethodID_21, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float].self, from: __return ) } open func floatArrayMethod( _ _arg: [Float]? ) -> [Float]! { return floatArrayMethod( arg: _arg ) } - /// public float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) + /// public float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) - private static var float2dArrayMethod_MethodID_23: jmethodID? + private static var floatMethod_MethodID_22: jmethodID? - open func float2dArrayMethod( arg: [[Float]]? ) -> [[Float]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func floatMethod( arg: Float ) -> Float { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftHelloTest_TestResponderAdapter.float2dArrayMethod_MethodID_23, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Float]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( f: arg ) + let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftHelloTest_TestResponderAdapter.floatMethod_MethodID_22, args: &__args, locals: &__locals ) + return __return } - open func float2dArrayMethod( _ _arg: [[Float]]? ) -> [[Float]]! { - return float2dArrayMethod( arg: _arg ) + open func floatMethod( _ _arg: Float ) -> Float { + return floatMethod( arg: _arg ) } - /// public double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) + /// public int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) - private static var doubleMethod_MethodID_24: jmethodID? + private static var int2dArrayMethod_MethodID_23: jmethodID? - open func doubleMethod( arg: Double ) -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func int2dArrayMethod( arg: [[Int32]]? ) -> [[Int32]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftHelloTest_TestResponderAdapter.doubleMethod_MethodID_24, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Double(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftHelloTest_TestResponderAdapter.int2dArrayMethod_MethodID_23, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]].self, from: __return ) } - open func doubleMethod( _ _arg: Double ) -> Double { - return doubleMethod( arg: _arg ) + open func int2dArrayMethod( _ _arg: [[Int32]]? ) -> [[Int32]]! { + return int2dArrayMethod( arg: _arg ) } - /// public double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) + /// public int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) - private static var doubleArrayMethod_MethodID_25: jmethodID? + private static var intArrayMethod_MethodID_24: jmethodID? - open func doubleArrayMethod( arg: [Double]? ) -> [Double]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func intArrayMethod( arg: [Int32]? ) -> [Int32]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftHelloTest_TestResponderAdapter.doubleArrayMethod_MethodID_25, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Double](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftHelloTest_TestResponderAdapter.intArrayMethod_MethodID_24, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32].self, from: __return ) } - open func doubleArrayMethod( _ _arg: [Double]? ) -> [Double]! { - return doubleArrayMethod( arg: _arg ) + open func intArrayMethod( _ _arg: [Int32]? ) -> [Int32]! { + return intArrayMethod( arg: _arg ) } - /// public double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) + /// public int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) - private static var double2dArrayMethod_MethodID_26: jmethodID? + private static var intMethod_MethodID_25: jmethodID? - open func double2dArrayMethod( arg: [[Double]]? ) -> [[Double]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func intMethod( arg: Int ) -> Int { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftHelloTest_TestResponderAdapter.double2dArrayMethod_MethodID_26, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Double]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( i: jint(arg) ) + let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftHelloTest_TestResponderAdapter.intMethod_MethodID_25, args: &__args, locals: &__locals ) + return Int(__return) } - open func double2dArrayMethod( _ _arg: [[Double]]? ) -> [[Double]]! { - return double2dArrayMethod( arg: _arg ) + open func intMethod( _ _arg: Int ) -> Int { + return intMethod( arg: _arg ) } - /// public java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) + /// public long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) - private static var StringMethod_MethodID_27: jmethodID? + private static var long2dArrayMethod_MethodID_26: jmethodID? - open func StringMethod( arg: String? ) -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func long2dArrayMethod( arg: [[Int64]]? ) -> [[Int64]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.StringMethod_MethodID_27, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: String(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftHelloTest_TestResponderAdapter.long2dArrayMethod_MethodID_26, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]].self, from: __return ) } - open func StringMethod( _ _arg: String? ) -> String! { - return StringMethod( arg: _arg ) + open func long2dArrayMethod( _ _arg: [[Int64]]? ) -> [[Int64]]! { + return long2dArrayMethod( arg: _arg ) } - /// public java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) + /// public long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) - private static var StringArrayMethod_MethodID_28: jmethodID? + private static var longArrayMethod_MethodID_27: jmethodID? - open func StringArrayMethod( arg: [String]? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func longArrayMethod( arg: [Int64]? ) -> [Int64]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.StringArrayMethod_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [String](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftHelloTest_TestResponderAdapter.longArrayMethod_MethodID_27, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64].self, from: __return ) } - open func StringArrayMethod( _ _arg: [String]? ) -> [String]! { - return StringArrayMethod( arg: _arg ) + open func longArrayMethod( _ _arg: [Int64]? ) -> [Int64]! { + return longArrayMethod( arg: _arg ) } - /// public java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) + /// public long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) - private static var String2dArrayMethod_MethodID_29: jmethodID? + private static var longMethod_MethodID_28: jmethodID? - open func String2dArrayMethod( arg: [[String]]? ) -> [[String]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func longMethod( arg: Int64 ) -> Int64 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftHelloTest_TestResponderAdapter.String2dArrayMethod_MethodID_29, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[String]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( j: arg ) + let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftHelloTest_TestResponderAdapter.longMethod_MethodID_28, args: &__args, locals: &__locals ) + return __return } - open func String2dArrayMethod( _ _arg: [[String]]? ) -> [[String]]! { - return String2dArrayMethod( arg: _arg ) + open func longMethod( _ _arg: Int64 ) -> Int64 { + return longMethod( arg: _arg ) } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - private static var TestListenerMethod_MethodID_30: jmethodID? + private static var setLoopback_MethodID_29: jmethodID? - open func TestListenerMethod( arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { + open func setLoopback( loopback: SwiftHelloTest_TestListener? ) { + var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: loopback, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "setLoopback", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)V", methodCache: &SwiftHelloTest_TestResponderAdapter.setLoopback_MethodID_29, args: &__args, locals: &__locals ) + } + + open func setLoopback( _ _loopback: SwiftHelloTest_TestListener? ) { + setLoopback( loopback: _loopback ) + } + + /// public short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + + private static var short2dArrayMethod_MethodID_30: jmethodID? + + open func short2dArrayMethod( arg: [[Int16]]? ) -> [[Int16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerMethod_MethodID_30, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftHelloTest_TestResponderAdapter.short2dArrayMethod_MethodID_30, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]].self, from: __return ) } - open func TestListenerMethod( _ _arg: SwiftHelloTest_TestListener? ) -> SwiftHelloTest_TestListener! { - return TestListenerMethod( arg: _arg ) + open func short2dArrayMethod( _ _arg: [[Int16]]? ) -> [[Int16]]! { + return short2dArrayMethod( arg: _arg ) } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) - private static var TestListenerArrayMethod_MethodID_31: jmethodID? + private static var shortArrayMethod_MethodID_31: jmethodID? - open func TestListenerArrayMethod( arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func shortArrayMethod( arg: [Int16]? ) -> [Int16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListenerArrayMethod_MethodID_31, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftHelloTest_TestResponderAdapter.shortArrayMethod_MethodID_31, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16].self, from: __return ) } - open func TestListenerArrayMethod( _ _arg: [SwiftHelloTest_TestListener]? ) -> [SwiftHelloTest_TestListener]! { - return TestListenerArrayMethod( arg: _arg ) + open func shortArrayMethod( _ _arg: [Int16]? ) -> [Int16]! { + return shortArrayMethod( arg: _arg ) } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) - private static var TestListener2dArrayMethod_MethodID_32: jmethodID? + private static var shortMethod_MethodID_32: jmethodID? - open func TestListener2dArrayMethod( arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func shortMethod( arg: Int16 ) -> Int16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloTest_TestResponderAdapter.TestListener2dArrayMethod_MethodID_32, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( s: arg ) + let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftHelloTest_TestResponderAdapter.shortMethod_MethodID_32, args: &__args, locals: &__locals ) + return __return } - open func TestListener2dArrayMethod( _ _arg: [[SwiftHelloTest_TestListener]]? ) -> [[SwiftHelloTest_TestListener]]! { - return TestListener2dArrayMethod( arg: _arg ) + open func shortMethod( _ _arg: Int16 ) -> Int16 { + return shortMethod( arg: _arg ) } /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) @@ -546,12 +547,11 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell private static var testMap_MethodID_33: jmethodID? open func testMap( arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMap_MethodID_33, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: __return ) + return JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward].self, from: __return ) } open func testMap( _ _arg: [String:SwiftHelloTypes_TextListener]? ) -> [String:SwiftHelloTypes_TextListener]! { @@ -563,12 +563,11 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell private static var testMapList_MethodID_34: jmethodID? open func testMapList( arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;", methodCache: &SwiftHelloTest_TestResponderAdapter.testMapList_MethodID_34, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: __return ) + return JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]].self, from: __return ) } open func testMapList( _ _arg: [String:[SwiftHelloTypes_TextListener]]? ) -> [String:[SwiftHelloTypes_TextListener]]! { @@ -577,362 +576,290 @@ open class SwiftHelloTest_TestResponderAdapter: java_swift.JavaObject, SwiftHell } -private typealias SwiftHelloTest_TestResponderAdapter_setLoopback_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () +private typealias SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_setLoopback_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { - JNI.inNative = true; - SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) - JNI.inNative = false; +private func SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).String2dArrayMethod( arg: JNIType.toSwift( type: [[String]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_booleanMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean +private typealias SwiftHelloTest_TestResponderAdapter_StringArrayMethod_1_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_booleanMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: JNIType.toSwift( type: Bool(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_StringArrayMethod_1( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringArrayMethod( arg: JNIType.toSwift( type: [String].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_StringMethod_2_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_StringMethod_2( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringMethod( arg: arg != nil ? String( javaObject: arg ) : nil ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_3_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_3( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListener2dArrayMethod( arg: JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_byteMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte +private typealias SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_4_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_byteMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: JNIType.toSwift( type: Int8(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).b, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_4( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerArrayMethod( arg: JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_byteArrayMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_TestListenerMethod_5_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_byteArrayMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_TestListenerMethod_5( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerMethod( arg: arg != nil ? SwiftHelloTest_TestListenerForward( javaObject: arg ) : nil ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_6_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byte2dArrayMethod( arg: JNIType.toSwift( type: [[Int8]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_boolean2dArrayMethod_6( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).boolean2dArrayMethod( arg: JNIType.toSwift( type: [[Bool]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_charMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jchar ) -> jchar +private typealias SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_7_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_charMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jchar ) -> jchar { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charMethod( arg: JNIType.toSwift( type: UInt16(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).c, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_booleanArrayMethod_7( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanArrayMethod( arg: JNIType.toSwift( type: [Bool].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_charArrayMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_booleanMethod_8_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jboolean ) -> jboolean -private func SwiftHelloTest_TestResponderAdapter_charArrayMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charArrayMethod( arg: JNIType.toSwift( type: [UInt16](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_booleanMethod_8( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jboolean ) -> jboolean { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).booleanMethod( arg: arg != jboolean(JNI_FALSE) ) + var __locals = [jobject]() + return JNI.check( jvalue( z: jboolean(__return ? JNI_TRUE : JNI_FALSE) ).z, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_9_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).char2dArrayMethod( arg: JNIType.toSwift( type: [[UInt16]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_byte2dArrayMethod_9( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byte2dArrayMethod( arg: JNIType.toSwift( type: [[Int8]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_shortMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jshort ) -> jshort +private typealias SwiftHelloTest_TestResponderAdapter_byteArrayMethod_10_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_shortMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jshort ) -> jshort { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortMethod( arg: JNIType.toSwift( type: Int16(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).s, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_byteArrayMethod_10( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteArrayMethod( arg: JNIType.toSwift( type: [Int8].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_byteMethod_11_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jbyte ) -> jbyte -private func SwiftHelloTest_TestResponderAdapter_shortArrayMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortArrayMethod( arg: JNIType.toSwift( type: [Int16](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_byteMethod_11( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jbyte ) -> jbyte { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).byteMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( b: __return ).b, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_12_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).short2dArrayMethod( arg: JNIType.toSwift( type: [[Int16]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_char2dArrayMethod_12( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).char2dArrayMethod( arg: JNIType.toSwift( type: [[UInt16]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_intMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jint +private typealias SwiftHelloTest_TestResponderAdapter_charArrayMethod_13_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_intMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jint ) -> jint { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intMethod( arg: JNIType.toSwift( type: Int(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).i, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_charArrayMethod_13( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charArrayMethod( arg: JNIType.toSwift( type: [UInt16].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_intArrayMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_charMethod_14_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jchar ) -> jchar -private func SwiftHelloTest_TestResponderAdapter_intArrayMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intArrayMethod( arg: JNIType.toSwift( type: [Int32](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_charMethod_14( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jchar ) -> jchar { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).charMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( c: __return ).c, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_15_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).int2dArrayMethod( arg: JNIType.toSwift( type: [[Int32]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_15( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).double2dArrayMethod( arg: JNIType.toSwift( type: [[Double]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_longMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jlong ) -> jlong +private typealias SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_16_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_longMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jlong ) -> jlong { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longMethod( arg: JNIType.toSwift( type: Int64(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).j, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_16( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleArrayMethod( arg: JNIType.toSwift( type: [Double].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_longArrayMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_doubleMethod_17_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> jdouble -private func SwiftHelloTest_TestResponderAdapter_longArrayMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longArrayMethod( arg: JNIType.toSwift( type: [Int64](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_doubleMethod_17( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jdouble ) -> jdouble { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( d: __return ).d, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_equals_18_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jboolean -private func SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).long2dArrayMethod( arg: JNIType.toSwift( type: [[Int64]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_equals_18( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg0: jobject? ) -> jboolean { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).equals( arg0: arg0 != nil ? java_swift.JavaObject( javaObject: arg0 ) : nil ) + var __locals = [jobject]() + return JNI.check( jvalue( z: jboolean(__return ? JNI_TRUE : JNI_FALSE) ).z, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_floatMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jfloat ) -> jfloat +private typealias SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_19_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_floatMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jfloat ) -> jfloat { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatMethod( arg: JNIType.toSwift( type: Float(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).f, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_19( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).float2dArrayMethod( arg: JNIType.toSwift( type: [[Float]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } private typealias SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? private func SwiftHelloTest_TestResponderAdapter_floatArrayMethod_20( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatArrayMethod( arg: JNIType.toSwift( type: [Float](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatArrayMethod( arg: JNIType.toSwift( type: [Float].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_floatMethod_21_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jfloat ) -> jfloat -private func SwiftHelloTest_TestResponderAdapter_float2dArrayMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).float2dArrayMethod( arg: JNIType.toSwift( type: [[Float]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_floatMethod_21( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jfloat ) -> jfloat { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).floatMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( f: __return ).f, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_doubleMethod_22_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jdouble ) -> jdouble +private typealias SwiftHelloTest_TestResponderAdapter_hashCode_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jint -private func SwiftHelloTest_TestResponderAdapter_doubleMethod_22( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jdouble ) -> jdouble { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleMethod( arg: JNIType.toSwift( type: Double(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).d, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_hashCode_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jint { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).hashCode( ) + var __locals = [jobject]() + return JNI.check( jvalue( i: jint(__return) ).i, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_doubleArrayMethod_23( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).doubleArrayMethod( arg: JNIType.toSwift( type: [Double](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_int2dArrayMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).int2dArrayMethod( arg: JNIType.toSwift( type: [[Int32]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_intArrayMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_double2dArrayMethod_24( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).double2dArrayMethod( arg: JNIType.toSwift( type: [[Double]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_intArrayMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intArrayMethod( arg: JNIType.toSwift( type: [Int32].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_StringMethod_25_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_intMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jint ) -> jint -private func SwiftHelloTest_TestResponderAdapter_StringMethod_25( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringMethod( arg: JNIType.toSwift( type: String(), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_intMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jint ) -> jint { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).intMethod( arg: Int(arg) ) + var __locals = [jobject]() + return JNI.check( jvalue( i: jint(__return) ).i, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_27_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_StringArrayMethod_26( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).StringArrayMethod( arg: JNIType.toSwift( type: [String](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_long2dArrayMethod_27( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).long2dArrayMethod( arg: JNIType.toSwift( type: [[Int64]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_longArrayMethod_28_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_String2dArrayMethod_27( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).String2dArrayMethod( arg: JNIType.toSwift( type: [[String]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_longArrayMethod_28( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longArrayMethod( arg: JNIType.toSwift( type: [Int64].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_longMethod_29_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jlong ) -> jlong -private func SwiftHelloTest_TestResponderAdapter_TestListenerMethod_28( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerMethod( arg: arg != nil ? SwiftHelloTest_TestListenerForward( javaObject: arg ) : nil ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_longMethod_29( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jlong ) -> jlong { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).longMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( j: __return ).j, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_setLoopback_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> () -private func SwiftHelloTest_TestResponderAdapter_TestListenerArrayMethod_29( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListenerArrayMethod( arg: JNIType.toSwift( type: [SwiftHelloTest_TestListenerForward](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_setLoopback_32( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ loopback: jobject? ) -> () { + SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).setLoopback( loopback: loopback != nil ? SwiftHelloTest_TestListenerForward( javaObject: loopback ) : nil ) } -private typealias SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_33_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_TestListener2dArrayMethod_30( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).TestListener2dArrayMethod( arg: JNIType.toSwift( type: [[SwiftHelloTest_TestListenerForward]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_short2dArrayMethod_33( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).short2dArrayMethod( arg: JNIType.toSwift( type: [[Int16]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_testMap_31_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_shortArrayMethod_34_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_testMap_31( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_shortArrayMethod_34( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortArrayMethod( arg: JNIType.toSwift( type: [Int16].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_testMapList_32_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_shortMethod_35_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jshort ) -> jshort -private func SwiftHelloTest_TestResponderAdapter_testMapList_32( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]](), from: arg ) ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_shortMethod_35( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jshort ) -> jshort { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).shortMethod( arg: arg ) + var __locals = [jobject]() + return JNI.check( jvalue( s: __return ).s, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_equals_36_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jboolean +private typealias SwiftHelloTest_TestResponderAdapter_testMap_36_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_equals_36( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg0: jobject? ) -> jboolean { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).equals( arg0: arg0 != nil ? java_swift.JavaObject( javaObject: arg0 ) : nil ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).z, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_testMap_36( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMap( arg: JNIType.toSwift( type: [String:SwiftHelloTypes_TextListenerForward].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_toString_37_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jobject? +private typealias SwiftHelloTest_TestResponderAdapter_testMapList_37_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong, _: jobject? ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_toString_37( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jobject? { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).toString( ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_testMapList_37( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong, _ arg: jobject? ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).testMapList( arg: JNIType.toSwift( type: [String:[SwiftHelloTypes_TextListenerForward]].self, from: arg, consume: false ) ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ).l, &__locals, removeLast: true ) } -private typealias SwiftHelloTest_TestResponderAdapter_hashCode_38_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jint +private typealias SwiftHelloTest_TestResponderAdapter_toString_38_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jobject? -private func SwiftHelloTest_TestResponderAdapter_hashCode_38( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jint { - JNI.inNative = true; - let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).hashCode( ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).i, &locals, removeLast: true ) +private func SwiftHelloTest_TestResponderAdapter_toString_38( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jobject? { + let __return = SwiftHelloTest_TestResponderAdapterLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).toString( ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } fileprivate class SwiftHelloTest_TestResponderAdapterLocal_: JNIObjectProxy { @@ -940,113 +867,113 @@ fileprivate class SwiftHelloTest_TestResponderAdapterLocal_: JNIObjectProxy java_swift.JavaClass! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", classCache: &SwiftHelloTypes_ListenerMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift index 8c60149..d25267f 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_ListenerMapList.swift @@ -16,43 +16,71 @@ open class SwiftHelloTypes_ListenerMapList: java_swift.HashMap { private static var SwiftHelloTypes_ListenerMapListJNIClass: jclass? - /// private static final long java.util.HashMap.serialVersionUID - /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY - /// static final int java.util.HashMap.MAXIMUM_CAPACITY + // Skipping field: true false false false false false /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + // Skipping field: true false false false false false + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + // Skipping field: true false false false false false + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + // Skipping field: true false false false false false + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + // Skipping field: true false false false false false + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD - /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + // Skipping field: true false false false false false - /// transient java.util.HashMap$Node[] java.util.HashMap.table + /// private static final long java.util.HashMap.serialVersionUID /// transient java.util.Set java.util.HashMap.entrySet - /// transient int java.util.HashMap.size + // Skipping field: true false false false false false + + /// final float java.util.HashMap.loadFactor + + // Skipping field: true false false false false false /// transient int java.util.HashMap.modCount + // Skipping field: true false false false false false + + /// transient int java.util.HashMap.size + + // Skipping field: true false false false false false + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + // Skipping field: true false false false false false + /// int java.util.HashMap.threshold - /// final float java.util.HashMap.loadFactor + // Skipping field: true false false false false false /// transient java.util.Set java.util.AbstractMap.keySet + // Skipping field: true false false false false false + /// transient java.util.Collection java.util.AbstractMap.values + // Skipping field: true false false false false false + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList() private static var new_MethodID_1: jmethodID? public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapList.SwiftHelloTypes_ListenerMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_ListenerMapList.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) @@ -63,8 +91,8 @@ open class SwiftHelloTypes_ListenerMapList: java_swift.HashMap { private static var valueClass_MethodID_2: jmethodID? open class func valueClass() -> java_swift.JavaClass! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", classCache: &SwiftHelloTypes_ListenerMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_2, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_Planet.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_Planet.swift new file mode 100644 index 0000000..6d3bf68 --- /dev/null +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_Planet.swift @@ -0,0 +1,357 @@ + +import java_swift + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// class com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet /// + +public enum SwiftHelloTypes_Planet: Int, JNIObjectProtocol, JNIObjectInit { + + case MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE + + static let enumConstants = try! JavaClass.forName("com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet") + .getEnumConstants()!.map { SwiftHelloTypes_PlanetForward( javaObject: $0.javaObject ) } + + public func underlier() -> SwiftHelloTypes_PlanetForward { + return SwiftHelloTypes_Planet.enumConstants[self.rawValue] + } + + public func localJavaObject(_ locals: UnsafeMutablePointer<[jobject]>) -> jobject? { + return underlier().localJavaObject( locals ) + } + + public init( javaObject: jobject? ) { + self = SwiftHelloTypes_Planet( rawValue: JavaEnum( javaObject: javaObject ).ordinal() )! + } + + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.valueOf(java.lang.String) + + private static var valueOf_MethodID_1: jmethodID? + + public static func valueOf( name: String? ) -> SwiftHelloTypes_Planet! { + return SwiftHelloTypes_PlanetForward.valueOf( name: name ) + } + public static func valueOf( _ _name: String? ) -> SwiftHelloTypes_Planet! { + return valueOf( name: _name ) + } + + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet[] com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.values() + + private static var values_MethodID_2: jmethodID? + + public static func values() -> [SwiftHelloTypes_Planet]! { + return SwiftHelloTypes_PlanetForward.values( ) + } + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.mass() + + private static var mass_MethodID_3: jmethodID? + + public func mass() -> Double { + return underlier().mass( ) + } + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.radius() + + private static var radius_MethodID_4: jmethodID? + + public func radius() -> Double { + return underlier().radius( ) + } + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.surfaceGravity() + + private static var surfaceGravity_MethodID_5: jmethodID? + + public func surfaceGravity() -> Double { + return underlier().surfaceGravity( ) + } + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.surfaceWeight(double) + + private static var surfaceWeight_MethodID_6: jmethodID? + + public func surfaceWeight( otherMass: Double ) -> Double { + return underlier().surfaceWeight( otherMass: otherMass ) + } + public func surfaceWeight( _ _otherMass: Double ) -> Double { + return surfaceWeight( otherMass: _otherMass ) + } + +} + + +open class SwiftHelloTypes_PlanetForward: JNIObjectForward { + + private static var SwiftHelloTypes_PlanetJNIClass: jclass? + + /// private static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet[] com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.$VALUES + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.EARTH + + private static var EARTH_FieldID: jfieldID? + + open static var EARTH: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "EARTH", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &EARTH_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.G + + private static var G_FieldID: jfieldID? + + open static var G: Double { + get { + let __value = JNIField.GetStaticDoubleField( fieldName: "G", fieldType: "D", fieldCache: &G_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + return __value + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.JUPITER + + private static var JUPITER_FieldID: jfieldID? + + open static var JUPITER: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "JUPITER", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &JUPITER_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.MARS + + private static var MARS_FieldID: jfieldID? + + open static var MARS: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "MARS", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &MARS_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.MERCURY + + private static var MERCURY_FieldID: jfieldID? + + open static var MERCURY: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "MERCURY", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &MERCURY_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.NEPTUNE + + private static var NEPTUNE_FieldID: jfieldID? + + open static var NEPTUNE: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "NEPTUNE", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &NEPTUNE_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.SATURN + + private static var SATURN_FieldID: jfieldID? + + open static var SATURN: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "SATURN", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &SATURN_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.URANUS + + private static var URANUS_FieldID: jfieldID? + + open static var URANUS: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "URANUS", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &URANUS_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// public static final com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.VENUS + + private static var VENUS_FieldID: jfieldID? + + open static var VENUS: SwiftHelloTypes_Planet! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "VENUS", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", fieldCache: &VENUS_FieldID, className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? SwiftHelloTypes_Planet( javaObject: __value ) : nil + } + } + + /// private final double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.mass + + /// private final double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.radius + + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.valueOf(java.lang.String) + + private static var valueOf_MethodID_7: jmethodID? + + open class func valueOf( name: String? ) -> SwiftHelloTypes_Planet! { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: name, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass, methodName: "valueOf", methodSig: "(Ljava/lang/String;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", methodCache: &valueOf_MethodID_7, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? SwiftHelloTypes_Planet( javaObject: __return ) : nil + } + + open class func valueOf( _ _name: String? ) -> SwiftHelloTypes_Planet! { + return valueOf( name: _name ) + } + + /// public static java.lang.Enum java.lang.Enum.valueOf(java.lang.Class,java.lang.String) + + private static var valueOf_MethodID_8: jmethodID? + + open class func valueOf( enumType: java_swift.JavaClass?, name: String? ) -> java_swift.JavaEnum! { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 2 ) + __args[0] = JNIType.toJava( value: enumType, locals: &__locals ) + __args[1] = JNIType.toJava( value: name, locals: &__locals ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass, methodName: "valueOf", methodSig: "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;", methodCache: &valueOf_MethodID_8, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? java_swift.JavaEnum( javaObject: __return ) : nil + } + + open class func valueOf( _ _enumType: java_swift.JavaClass?, _ _name: String? ) -> java_swift.JavaEnum! { + return valueOf( enumType: _enumType, name: _name ) + } + + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet[] com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.values() + + private static var values_MethodID_9: jmethodID? + + open class func values() -> [SwiftHelloTypes_Planet]! { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet", classCache: &SwiftHelloTypes_PlanetJNIClass, methodName: "values", methodSig: "()[Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$Planet;", methodCache: &values_MethodID_9, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [SwiftHelloTypes_Planet].self, from: __return ) + } + + + /// public final int java.lang.Enum.compareTo(java.lang.Enum) + + // Skipping method: false true false false false + + /// public int java.lang.Enum.compareTo(java.lang.Object) + + // Skipping method: false true false false false + + /// public final boolean java.lang.Enum.equals(java.lang.Object) + + // Skipping method: false true false false false + + /// public final native java.lang.Class java.lang.Object.getClass() + + // Skipping method: false true false false false + + /// public final java.lang.Class java.lang.Enum.getDeclaringClass() + + // Skipping method: false true false false false + + /// public final int java.lang.Enum.hashCode() + + // Skipping method: false true false false false + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.mass() + + private static var mass_MethodID_10: jmethodID? + + open func mass() -> Double { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "mass", methodSig: "()D", methodCache: &SwiftHelloTypes_PlanetForward.mass_MethodID_10, args: &__args, locals: &__locals ) + return __return + } + + + /// public final java.lang.String java.lang.Enum.name() + + // Skipping method: false true false false false + + /// public final native void java.lang.Object.notify() + + // Skipping method: false true false false false + + /// public final native void java.lang.Object.notifyAll() + + // Skipping method: false true false false false + + /// public final int java.lang.Enum.ordinal() + + // Skipping method: false true false false false + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.radius() + + private static var radius_MethodID_11: jmethodID? + + open func radius() -> Double { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "radius", methodSig: "()D", methodCache: &SwiftHelloTypes_PlanetForward.radius_MethodID_11, args: &__args, locals: &__locals ) + return __return + } + + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.surfaceGravity() + + private static var surfaceGravity_MethodID_12: jmethodID? + + open func surfaceGravity() -> Double { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "surfaceGravity", methodSig: "()D", methodCache: &SwiftHelloTypes_PlanetForward.surfaceGravity_MethodID_12, args: &__args, locals: &__locals ) + return __return + } + + + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTypes$Planet.surfaceWeight(double) + + private static var surfaceWeight_MethodID_13: jmethodID? + + open func surfaceWeight( otherMass: Double ) -> Double { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: otherMass ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "surfaceWeight", methodSig: "(D)D", methodCache: &SwiftHelloTypes_PlanetForward.surfaceWeight_MethodID_13, args: &__args, locals: &__locals ) + return __return + } + + open func surfaceWeight( _ _otherMass: Double ) -> Double { + return surfaceWeight( otherMass: _otherMass ) + } + + /// public java.lang.String java.lang.Enum.toString() + + // Skipping method: false true false false false + + /// public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException + + // Skipping method: false true false false false + + /// public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException + + // Skipping method: false true false false false + + /// public final void java.lang.Object.wait() throws java.lang.InterruptedException + + // Skipping method: false true false false false + +} + diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift index 0fc5408..d1e6211 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMap.swift @@ -16,43 +16,71 @@ open class SwiftHelloTypes_StringMap: java_swift.HashMap { private static var SwiftHelloTypes_StringMapJNIClass: jclass? - /// private static final long java.util.HashMap.serialVersionUID - /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY - /// static final int java.util.HashMap.MAXIMUM_CAPACITY + // Skipping field: true false false false false false /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + // Skipping field: true false false false false false + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + // Skipping field: true false false false false false + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + // Skipping field: true false false false false false + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + // Skipping field: true false false false false false + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD - /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + // Skipping field: true false false false false false - /// transient java.util.HashMap$Node[] java.util.HashMap.table + /// private static final long java.util.HashMap.serialVersionUID /// transient java.util.Set java.util.HashMap.entrySet - /// transient int java.util.HashMap.size + // Skipping field: true false false false false false + + /// final float java.util.HashMap.loadFactor + + // Skipping field: true false false false false false /// transient int java.util.HashMap.modCount + // Skipping field: true false false false false false + + /// transient int java.util.HashMap.size + + // Skipping field: true false false false false false + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + // Skipping field: true false false false false false + /// int java.util.HashMap.threshold - /// final float java.util.HashMap.loadFactor + // Skipping field: true false false false false false /// transient java.util.Set java.util.AbstractMap.keySet + // Skipping field: true false false false false false + /// transient java.util.Collection java.util.AbstractMap.values + // Skipping field: true false false false false false + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap() private static var new_MethodID_1: jmethodID? public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", classCache: &SwiftHelloTypes_StringMap.SwiftHelloTypes_StringMapJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_StringMap.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) @@ -63,8 +91,8 @@ open class SwiftHelloTypes_StringMap: java_swift.HashMap { private static var new_MethodID_2: jmethodID? public convenience init( map: java_swift.JavaMap? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "java/util/Map", locals: &__locals ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", classCache: &SwiftHelloTypes_StringMap.SwiftHelloTypes_StringMapJNIClass, methodSig: "(Ljava/util/Map;)V", methodCache: &SwiftHelloTypes_StringMap.new_MethodID_2, args: &__args, locals: &__locals ) self.init( javaObject: __object ) @@ -80,8 +108,8 @@ open class SwiftHelloTypes_StringMap: java_swift.HashMap { private static var valueClass_MethodID_3: jmethodID? open class func valueClass() -> java_swift.JavaClass! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", classCache: &SwiftHelloTypes_StringMapJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_3, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift index 7f257e9..05f93a3 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_StringMapList.swift @@ -16,43 +16,71 @@ open class SwiftHelloTypes_StringMapList: java_swift.HashMap { private static var SwiftHelloTypes_StringMapListJNIClass: jclass? - /// private static final long java.util.HashMap.serialVersionUID - /// static final int java.util.HashMap.DEFAULT_INITIAL_CAPACITY - /// static final int java.util.HashMap.MAXIMUM_CAPACITY + // Skipping field: true false false false false false /// static final float java.util.HashMap.DEFAULT_LOAD_FACTOR + // Skipping field: true false false false false false + + /// static final int java.util.HashMap.MAXIMUM_CAPACITY + + // Skipping field: true false false false false false + + /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + + // Skipping field: true false false false false false + /// static final int java.util.HashMap.TREEIFY_THRESHOLD + // Skipping field: true false false false false false + /// static final int java.util.HashMap.UNTREEIFY_THRESHOLD - /// static final int java.util.HashMap.MIN_TREEIFY_CAPACITY + // Skipping field: true false false false false false - /// transient java.util.HashMap$Node[] java.util.HashMap.table + /// private static final long java.util.HashMap.serialVersionUID /// transient java.util.Set java.util.HashMap.entrySet - /// transient int java.util.HashMap.size + // Skipping field: true false false false false false + + /// final float java.util.HashMap.loadFactor + + // Skipping field: true false false false false false /// transient int java.util.HashMap.modCount + // Skipping field: true false false false false false + + /// transient int java.util.HashMap.size + + // Skipping field: true false false false false false + + /// transient java.util.HashMap$Node[] java.util.HashMap.table + + // Skipping field: true false false false false false + /// int java.util.HashMap.threshold - /// final float java.util.HashMap.loadFactor + // Skipping field: true false false false false false /// transient java.util.Set java.util.AbstractMap.keySet + // Skipping field: true false false false false false + /// transient java.util.Collection java.util.AbstractMap.values + // Skipping field: true false false false false false + /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList() private static var new_MethodID_1: jmethodID? public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", classCache: &SwiftHelloTypes_StringMapList.SwiftHelloTypes_StringMapListJNIClass, methodSig: "()V", methodCache: &SwiftHelloTypes_StringMapList.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) @@ -63,8 +91,8 @@ open class SwiftHelloTypes_StringMapList: java_swift.HashMap { private static var new_MethodID_2: jmethodID? public convenience init( map: java_swift.JavaMap? ) { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "java/util/Map", locals: &__locals ) let __object = JNIMethod.NewObject( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", classCache: &SwiftHelloTypes_StringMapList.SwiftHelloTypes_StringMapListJNIClass, methodSig: "(Ljava/util/Map;)V", methodCache: &SwiftHelloTypes_StringMapList.new_MethodID_2, args: &__args, locals: &__locals ) self.init( javaObject: __object ) @@ -80,8 +108,8 @@ open class SwiftHelloTypes_StringMapList: java_swift.HashMap { private static var valueClass_MethodID_3: jmethodID? open class func valueClass() -> java_swift.JavaClass! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __return = JNIMethod.CallStaticObjectMethod( className: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", classCache: &SwiftHelloTypes_StringMapListJNIClass, methodName: "valueClass", methodSig: "()Ljava/lang/Class;", methodCache: &valueClass_MethodID_3, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? java_swift.JavaClass( javaObject: __return ) : nil diff --git a/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift b/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift index d044328..4025704 100644 --- a/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift +++ b/com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift @@ -23,24 +23,22 @@ open class SwiftHelloTypes_TextListenerForward: JNIObjectForward, SwiftHelloType private static var getText_MethodID_2: jmethodID? open func getText() -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "getText", methodSig: "()Ljava/lang/String;", methodCache: &SwiftHelloTypes_TextListenerForward.getText_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: String(), from: __return ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? String( javaObject: __return ) : nil } } - private typealias SwiftHelloTypes_TextListener_getText_0_type = @convention(c) ( _: UnsafeMutablePointer, _: jobject?, _: jlong ) -> jobject? private func SwiftHelloTypes_TextListener_getText_0( _ __env: UnsafeMutablePointer, _ __this: jobject?, _ __swiftObject: jlong ) -> jobject? { - JNI.inNative = true; let __return = SwiftHelloTypes_TextListenerLocal_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject ).getText( ) - JNI.inNative = false; - var locals = [jobject]() - return JNI.check( JNIType.toJava( value: __return, locals: &locals ).l, &locals, removeLast: true ) + var __locals = [jobject]() + return JNI.check( JNIType.toJava( value: __return, locals: &__locals ).l, &__locals, removeLast: true ) } fileprivate class SwiftHelloTypes_TextListenerLocal_: JNILocalProxy { diff --git a/examples b/examples index 638b239..eac35bd 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit 638b2394d03b31384ca62b2dcaedf939d28b32bb +Subproject commit eac35bda3173c1581e9e51b3dcf415740e9db0e9 diff --git a/genpkg.sh b/genpkg.sh index 0a9e48e..7aa8dcf 100755 --- a/genpkg.sh +++ b/genpkg.sh @@ -11,7 +11,7 @@ XCODEBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild export JAVA_HOME=${JAVA_HOME:-/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home} for i in $*; do - "$PWD/genswift.sh" $i $JAVA_HOME/jre/lib/rt.jar && + ./genswift.sh $i $JAVA_HOME/jre/lib/rt.jar && ./overrides.pl $i && while true; do ($XCODEBUILD SYMROOT=/tmp -config Debug -target examples -project SwiftJava.xcodeproj; STATUS=$?) | tee -a $i/build.log @@ -21,3 +21,4 @@ for i in $*; do fi done done + diff --git a/genswift.sh b/genswift.sh index 115e808..5d6d3a8 100755 --- a/genswift.sh +++ b/genswift.sh @@ -12,14 +12,14 @@ export JAVA_HOME=${JAVA_HOME?-Please export JAVA_HOME} -FILTER=${1:-java/lang|java/util|java/sql|java/awt|javax/swing} +FILTER="${1:-java/lang|java/util|java/sql|java/awt|javax/swing}" -FILTER=$(echo $FILTER | sed s@[._]@/@) +FILTER="$(echo "$FILTER" | sed 's@[._]@/@g' | sed 's@\$@\\$@g')" TARGET_JAR=${2:-$JAVA_HOME/jre/lib/rt.jar} PACKAGE_ORDER=${3:-java/lang|java/util|java/sql|java/awt|javax/swing} -cd "$(dirname "$0")/src" && $JAVA_HOME/bin/javac -d ../bin genswift.java && cd "$(dirname "$0")" && +cd "$(dirname "$0")/src" && $JAVA_HOME/bin/javac -d ../bin genswift.java && cd .. && $JAVA_HOME/bin/jar tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | $JAVA_HOME/bin/java -cp "$TARGET_JAR:bin" genswift "$PACKAGE_ORDER" diff --git a/java_awt b/java_awt index 429538c..461f61d 160000 --- a/java_awt +++ b/java_awt @@ -1 +1 @@ -Subproject commit 429538cb4123e8eaafcce4366d1699800d067b42 +Subproject commit 461f61d4473ed8cce975307fe770daaa67855f20 diff --git a/java_lang b/java_lang index e603844..0851e2d 160000 --- a/java_lang +++ b/java_lang @@ -1 +1 @@ -Subproject commit e6038441d889af15d63637ddb23bfcd3489587bc +Subproject commit 0851e2d48b4462bf9aefda0d69b5ef6711e14c83 diff --git a/java_sql b/java_sql index 5034457..ffe975c 160000 --- a/java_sql +++ b/java_sql @@ -1 +1 @@ -Subproject commit 503445771aede840d692abc84f16ebad31473a43 +Subproject commit ffe975cb112f9c89da63b01b9c54c640bf969d24 diff --git a/java_swift b/java_swift index 804833a..6da1501 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 804833a743c9951dbc26ee1f92297389d10340cb +Subproject commit 6da15017c1364ae6cffe78c92c02c9a28a353d85 diff --git a/java_util b/java_util index 7ea2b57..61005cb 160000 --- a/java_util +++ b/java_util @@ -1 +1 @@ -Subproject commit 7ea2b5719e2c026527d4616bbce11d7c8232eafc +Subproject commit 61005cba6a74e0d080ac1949b2eadab46dc4602b diff --git a/javax_swing b/javax_swing index 35e4404..09496dd 160000 --- a/javax_swing +++ b/javax_swing @@ -1 +1 @@ -Subproject commit 35e4404f60153bdd897fc2a788501d5d8160b131 +Subproject commit 09496dd0c7077e4425aff254ebade9506fdd28de diff --git a/org_swiftjava/Sources/SwiftTest.swift b/org_swiftjava/Sources/SwiftTest.swift index 3a0f08f..6ca927a 100644 --- a/org_swiftjava/Sources/SwiftTest.swift +++ b/org_swiftjava/Sources/SwiftTest.swift @@ -16,86 +16,101 @@ open class SwiftTest: java_swift.JavaObject { private static var SwiftTestJNIClass: jclass? - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.loopback + /// public static java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayFieldStatic - private static var loopback_FieldID: jfieldID? + private static var String2dArrayFieldStatic_FieldID: jfieldID? - open var loopback: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + open static var String2dArrayFieldStatic: [[String]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.loopback_FieldID, object: javaObject, locals: &__locals ) - return __value != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __value ) : nil + let __value = JNIField.GetStaticObjectField( fieldName: "String2dArrayFieldStatic", fieldType: "[[Ljava/lang/String;", fieldCache: &String2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[String]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "String2dArrayFieldStatic", fieldType: "[[Ljava/lang/String;", fieldCache: &String2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static boolean org.swiftjava.SwiftTest.booleanFieldStatic + /// public static java.lang.String[] org.swiftjava.SwiftTest.StringArrayFieldStatic - private static var booleanFieldStatic_FieldID: jfieldID? + private static var StringArrayFieldStatic_FieldID: jfieldID? - open static var booleanFieldStatic: Bool { + open static var StringArrayFieldStatic: [String]! { get { - let __value = JNIField.GetStaticBooleanField( fieldName: "booleanFieldStatic", fieldType: "Z", fieldCache: &booleanFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Bool(), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "StringArrayFieldStatic", fieldType: "[Ljava/lang/String;", fieldCache: &StringArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [String].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticBooleanField( fieldName: "booleanFieldStatic", fieldType: "Z", fieldCache: &booleanFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.z, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "StringArrayFieldStatic", fieldType: "[Ljava/lang/String;", fieldCache: &StringArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public boolean org.swiftjava.SwiftTest.booleanField + /// public static java.lang.String org.swiftjava.SwiftTest.StringFieldStatic - private static var booleanField_FieldID: jfieldID? + private static var StringFieldStatic_FieldID: jfieldID? - open var booleanField: Bool { + open static var StringFieldStatic: String! { get { - var __locals = [jobject]() - let __value = JNIField.GetBooleanField( fieldName: "booleanField", fieldType: "Z", fieldCache: &SwiftTest.booleanField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "StringFieldStatic", fieldType: "Ljava/lang/String;", fieldCache: &StringFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? String( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetBooleanField( fieldName: "booleanField", fieldType: "Z", fieldCache: &SwiftTest.booleanField_FieldID, object: javaObject, value: __value.z, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "StringFieldStatic", fieldType: "Ljava/lang/String;", fieldCache: &StringFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static boolean[] org.swiftjava.SwiftTest.booleanArrayFieldStatic + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayFieldStatic - private static var booleanArrayFieldStatic_FieldID: jfieldID? + private static var TestListener2dArrayFieldStatic_FieldID: jfieldID? - open static var booleanArrayFieldStatic: [Bool]! { + open static var TestListener2dArrayFieldStatic: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "booleanArrayFieldStatic", fieldType: "[Z", fieldCache: &booleanArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Bool](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "TestListener2dArrayFieldStatic", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListener2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "booleanArrayFieldStatic", fieldType: "[Z", fieldCache: &booleanArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "TestListener2dArrayFieldStatic", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListener2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public boolean[] org.swiftjava.SwiftTest.booleanArrayField + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayFieldStatic - private static var booleanArrayField_FieldID: jfieldID? + private static var TestListenerArrayFieldStatic_FieldID: jfieldID? - open var booleanArrayField: [Bool]! { + open static var TestListenerArrayFieldStatic: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]! { get { + let __value = JNIField.GetStaticObjectField( fieldName: "TestListenerArrayFieldStatic", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward].self, from: __value ) + } + set(newValue) { var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "booleanArrayField", fieldType: "[Z", fieldCache: &SwiftTest.booleanArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Bool](), from: __value ) + let __value = JNIType.toJava( value: newValue, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "TestListenerArrayFieldStatic", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + } + } + + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerFieldStatic + + private static var TestListenerFieldStatic_FieldID: jfieldID? + + open static var TestListenerFieldStatic: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { + get { + let __value = JNIField.GetStaticObjectField( fieldName: "TestListenerFieldStatic", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "booleanArrayField", fieldType: "[Z", fieldCache: &SwiftTest.booleanArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "TestListenerFieldStatic", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } @@ -106,7 +121,7 @@ open class SwiftTest: java_swift.JavaObject { open static var boolean2dArrayFieldStatic: [[Bool]]! { get { let __value = JNIField.GetStaticObjectField( fieldName: "boolean2dArrayFieldStatic", fieldType: "[[Z", fieldCache: &boolean2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Bool]](), from: __value ) + return JNIType.toSwift( type: [[Bool]].self, from: __value ) } set(newValue) { var __locals = [jobject]() @@ -115,53 +130,51 @@ open class SwiftTest: java_swift.JavaObject { } } - /// public boolean[][] org.swiftjava.SwiftTest.boolean2dArrayField + /// public static boolean[] org.swiftjava.SwiftTest.booleanArrayFieldStatic - private static var boolean2dArrayField_FieldID: jfieldID? + private static var booleanArrayFieldStatic_FieldID: jfieldID? - open var boolean2dArrayField: [[Bool]]! { + open static var booleanArrayFieldStatic: [Bool]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "boolean2dArrayField", fieldType: "[[Z", fieldCache: &SwiftTest.boolean2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Bool]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "booleanArrayFieldStatic", fieldType: "[Z", fieldCache: &booleanArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [Bool].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "boolean2dArrayField", fieldType: "[[Z", fieldCache: &SwiftTest.boolean2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "booleanArrayFieldStatic", fieldType: "[Z", fieldCache: &booleanArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static byte org.swiftjava.SwiftTest.byteFieldStatic + /// public static boolean org.swiftjava.SwiftTest.booleanFieldStatic - private static var byteFieldStatic_FieldID: jfieldID? + private static var booleanFieldStatic_FieldID: jfieldID? - open static var byteFieldStatic: Int8 { + open static var booleanFieldStatic: Bool { get { - let __value = JNIField.GetStaticByteField( fieldName: "byteFieldStatic", fieldType: "B", fieldCache: &byteFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Int8(), from: __value ) + let __value = JNIField.GetStaticBooleanField( fieldName: "booleanFieldStatic", fieldType: "Z", fieldCache: &booleanFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return __value != jboolean(JNI_FALSE) } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticByteField( fieldName: "byteFieldStatic", fieldType: "B", fieldCache: &byteFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.b, locals: &__locals ) + let __value = jvalue( z: jboolean(newValue ? JNI_TRUE : JNI_FALSE) ) + JNIField.SetStaticBooleanField( fieldName: "booleanFieldStatic", fieldType: "Z", fieldCache: &booleanFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.z, locals: &__locals ) } } - /// public byte org.swiftjava.SwiftTest.byteField + /// public static byte[][] org.swiftjava.SwiftTest.byte2dArrayFieldStatic - private static var byteField_FieldID: jfieldID? + private static var byte2dArrayFieldStatic_FieldID: jfieldID? - open var byteField: Int8 { + open static var byte2dArrayFieldStatic: [[Int8]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetByteField( fieldName: "byteField", fieldType: "B", fieldCache: &SwiftTest.byteField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Int8(), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "byte2dArrayFieldStatic", fieldType: "[[B", fieldCache: &byte2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[Int8]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetByteField( fieldName: "byteField", fieldType: "B", fieldCache: &SwiftTest.byteField_FieldID, object: javaObject, value: __value.b, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "byte2dArrayFieldStatic", fieldType: "[[B", fieldCache: &byte2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } @@ -172,7 +185,7 @@ open class SwiftTest: java_swift.JavaObject { open static var byteArrayFieldStatic: [Int8]! { get { let __value = JNIField.GetStaticObjectField( fieldName: "byteArrayFieldStatic", fieldType: "[B", fieldCache: &byteArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Int8](), from: __value ) + return JNIType.toSwift( type: [Int8].self, from: __value ) } set(newValue) { var __locals = [jobject]() @@ -181,53 +194,51 @@ open class SwiftTest: java_swift.JavaObject { } } - /// public byte[] org.swiftjava.SwiftTest.byteArrayField + /// public static byte org.swiftjava.SwiftTest.byteFieldStatic - private static var byteArrayField_FieldID: jfieldID? + private static var byteFieldStatic_FieldID: jfieldID? - open var byteArrayField: [Int8]! { + open static var byteFieldStatic: Int8 { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "byteArrayField", fieldType: "[B", fieldCache: &SwiftTest.byteArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Int8](), from: __value ) + let __value = JNIField.GetStaticByteField( fieldName: "byteFieldStatic", fieldType: "B", fieldCache: &byteFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "byteArrayField", fieldType: "[B", fieldCache: &SwiftTest.byteArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( b: newValue ) + JNIField.SetStaticByteField( fieldName: "byteFieldStatic", fieldType: "B", fieldCache: &byteFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.b, locals: &__locals ) } } - /// public static byte[][] org.swiftjava.SwiftTest.byte2dArrayFieldStatic + /// public static char[][] org.swiftjava.SwiftTest.char2dArrayFieldStatic - private static var byte2dArrayFieldStatic_FieldID: jfieldID? + private static var char2dArrayFieldStatic_FieldID: jfieldID? - open static var byte2dArrayFieldStatic: [[Int8]]! { + open static var char2dArrayFieldStatic: [[UInt16]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "byte2dArrayFieldStatic", fieldType: "[[B", fieldCache: &byte2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Int8]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "char2dArrayFieldStatic", fieldType: "[[C", fieldCache: &char2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[UInt16]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "byte2dArrayFieldStatic", fieldType: "[[B", fieldCache: &byte2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "char2dArrayFieldStatic", fieldType: "[[C", fieldCache: &char2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public byte[][] org.swiftjava.SwiftTest.byte2dArrayField + /// public static char[] org.swiftjava.SwiftTest.charArrayFieldStatic - private static var byte2dArrayField_FieldID: jfieldID? + private static var charArrayFieldStatic_FieldID: jfieldID? - open var byte2dArrayField: [[Int8]]! { + open static var charArrayFieldStatic: [UInt16]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "byte2dArrayField", fieldType: "[[B", fieldCache: &SwiftTest.byte2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Int8]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "charArrayFieldStatic", fieldType: "[C", fieldCache: &charArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [UInt16].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "byte2dArrayField", fieldType: "[[B", fieldCache: &SwiftTest.byte2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "charArrayFieldStatic", fieldType: "[C", fieldCache: &charArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } @@ -238,788 +249,751 @@ open class SwiftTest: java_swift.JavaObject { open static var charFieldStatic: UInt16 { get { let __value = JNIField.GetStaticCharField( fieldName: "charFieldStatic", fieldType: "C", fieldCache: &charFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: UInt16(), from: __value ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) + let __value = jvalue( c: newValue ) JNIField.SetStaticCharField( fieldName: "charFieldStatic", fieldType: "C", fieldCache: &charFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.c, locals: &__locals ) } } - /// public char org.swiftjava.SwiftTest.charField + /// public static double[][] org.swiftjava.SwiftTest.double2dArrayFieldStatic - private static var charField_FieldID: jfieldID? + private static var double2dArrayFieldStatic_FieldID: jfieldID? - open var charField: UInt16 { + open static var double2dArrayFieldStatic: [[Double]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetCharField( fieldName: "charField", fieldType: "C", fieldCache: &SwiftTest.charField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: UInt16(), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "double2dArrayFieldStatic", fieldType: "[[D", fieldCache: &double2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[Double]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetCharField( fieldName: "charField", fieldType: "C", fieldCache: &SwiftTest.charField_FieldID, object: javaObject, value: __value.c, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "double2dArrayFieldStatic", fieldType: "[[D", fieldCache: &double2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static char[] org.swiftjava.SwiftTest.charArrayFieldStatic + /// public static double[] org.swiftjava.SwiftTest.doubleArrayFieldStatic - private static var charArrayFieldStatic_FieldID: jfieldID? + private static var doubleArrayFieldStatic_FieldID: jfieldID? - open static var charArrayFieldStatic: [UInt16]! { + open static var doubleArrayFieldStatic: [Double]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "charArrayFieldStatic", fieldType: "[C", fieldCache: &charArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [UInt16](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "doubleArrayFieldStatic", fieldType: "[D", fieldCache: &doubleArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [Double].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "charArrayFieldStatic", fieldType: "[C", fieldCache: &charArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "doubleArrayFieldStatic", fieldType: "[D", fieldCache: &doubleArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public char[] org.swiftjava.SwiftTest.charArrayField + /// public static double org.swiftjava.SwiftTest.doubleFieldStatic - private static var charArrayField_FieldID: jfieldID? + private static var doubleFieldStatic_FieldID: jfieldID? - open var charArrayField: [UInt16]! { + open static var doubleFieldStatic: Double { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "charArrayField", fieldType: "[C", fieldCache: &SwiftTest.charArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [UInt16](), from: __value ) + let __value = JNIField.GetStaticDoubleField( fieldName: "doubleFieldStatic", fieldType: "D", fieldCache: &doubleFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "charArrayField", fieldType: "[C", fieldCache: &SwiftTest.charArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( d: newValue ) + JNIField.SetStaticDoubleField( fieldName: "doubleFieldStatic", fieldType: "D", fieldCache: &doubleFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.d, locals: &__locals ) } } - /// public static char[][] org.swiftjava.SwiftTest.char2dArrayFieldStatic + /// public static float[][] org.swiftjava.SwiftTest.float2dArrayFieldStatic - private static var char2dArrayFieldStatic_FieldID: jfieldID? + private static var float2dArrayFieldStatic_FieldID: jfieldID? - open static var char2dArrayFieldStatic: [[UInt16]]! { + open static var float2dArrayFieldStatic: [[Float]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "char2dArrayFieldStatic", fieldType: "[[C", fieldCache: &char2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[UInt16]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "float2dArrayFieldStatic", fieldType: "[[F", fieldCache: &float2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[Float]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "char2dArrayFieldStatic", fieldType: "[[C", fieldCache: &char2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "float2dArrayFieldStatic", fieldType: "[[F", fieldCache: &float2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public char[][] org.swiftjava.SwiftTest.char2dArrayField + /// public static float[] org.swiftjava.SwiftTest.floatArrayFieldStatic - private static var char2dArrayField_FieldID: jfieldID? + private static var floatArrayFieldStatic_FieldID: jfieldID? - open var char2dArrayField: [[UInt16]]! { + open static var floatArrayFieldStatic: [Float]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "char2dArrayField", fieldType: "[[C", fieldCache: &SwiftTest.char2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[UInt16]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "floatArrayFieldStatic", fieldType: "[F", fieldCache: &floatArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [Float].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "char2dArrayField", fieldType: "[[C", fieldCache: &SwiftTest.char2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "floatArrayFieldStatic", fieldType: "[F", fieldCache: &floatArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static short org.swiftjava.SwiftTest.shortFieldStatic + /// public static float org.swiftjava.SwiftTest.floatFieldStatic - private static var shortFieldStatic_FieldID: jfieldID? + private static var floatFieldStatic_FieldID: jfieldID? - open static var shortFieldStatic: Int16 { + open static var floatFieldStatic: Float { get { - let __value = JNIField.GetStaticShortField( fieldName: "shortFieldStatic", fieldType: "S", fieldCache: &shortFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Int16(), from: __value ) + let __value = JNIField.GetStaticFloatField( fieldName: "floatFieldStatic", fieldType: "F", fieldCache: &floatFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticShortField( fieldName: "shortFieldStatic", fieldType: "S", fieldCache: &shortFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.s, locals: &__locals ) + let __value = jvalue( f: newValue ) + JNIField.SetStaticFloatField( fieldName: "floatFieldStatic", fieldType: "F", fieldCache: &floatFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.f, locals: &__locals ) } } - /// public short org.swiftjava.SwiftTest.shortField + /// public static int[][] org.swiftjava.SwiftTest.int2dArrayFieldStatic - private static var shortField_FieldID: jfieldID? + private static var int2dArrayFieldStatic_FieldID: jfieldID? - open var shortField: Int16 { + open static var int2dArrayFieldStatic: [[Int32]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetShortField( fieldName: "shortField", fieldType: "S", fieldCache: &SwiftTest.shortField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Int16(), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "int2dArrayFieldStatic", fieldType: "[[I", fieldCache: &int2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[Int32]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetShortField( fieldName: "shortField", fieldType: "S", fieldCache: &SwiftTest.shortField_FieldID, object: javaObject, value: __value.s, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "int2dArrayFieldStatic", fieldType: "[[I", fieldCache: &int2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static short[] org.swiftjava.SwiftTest.shortArrayFieldStatic + /// public static int[] org.swiftjava.SwiftTest.intArrayFieldStatic - private static var shortArrayFieldStatic_FieldID: jfieldID? + private static var intArrayFieldStatic_FieldID: jfieldID? - open static var shortArrayFieldStatic: [Int16]! { + open static var intArrayFieldStatic: [Int32]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "shortArrayFieldStatic", fieldType: "[S", fieldCache: &shortArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Int16](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "intArrayFieldStatic", fieldType: "[I", fieldCache: &intArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [Int32].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "shortArrayFieldStatic", fieldType: "[S", fieldCache: &shortArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "intArrayFieldStatic", fieldType: "[I", fieldCache: &intArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public short[] org.swiftjava.SwiftTest.shortArrayField + /// public static int org.swiftjava.SwiftTest.intFieldStatic - private static var shortArrayField_FieldID: jfieldID? + private static var intFieldStatic_FieldID: jfieldID? - open var shortArrayField: [Int16]! { + open static var intFieldStatic: Int { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "shortArrayField", fieldType: "[S", fieldCache: &SwiftTest.shortArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Int16](), from: __value ) + let __value = JNIField.GetStaticIntField( fieldName: "intFieldStatic", fieldType: "I", fieldCache: &intFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return Int(__value) } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "shortArrayField", fieldType: "[S", fieldCache: &SwiftTest.shortArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( i: jint(newValue) ) + JNIField.SetStaticIntField( fieldName: "intFieldStatic", fieldType: "I", fieldCache: &intFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.i, locals: &__locals ) } } - /// public static short[][] org.swiftjava.SwiftTest.short2dArrayFieldStatic + /// public static long[][] org.swiftjava.SwiftTest.long2dArrayFieldStatic - private static var short2dArrayFieldStatic_FieldID: jfieldID? + private static var long2dArrayFieldStatic_FieldID: jfieldID? - open static var short2dArrayFieldStatic: [[Int16]]! { + open static var long2dArrayFieldStatic: [[Int64]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "short2dArrayFieldStatic", fieldType: "[[S", fieldCache: &short2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Int16]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "long2dArrayFieldStatic", fieldType: "[[J", fieldCache: &long2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[Int64]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "short2dArrayFieldStatic", fieldType: "[[S", fieldCache: &short2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "long2dArrayFieldStatic", fieldType: "[[J", fieldCache: &long2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public short[][] org.swiftjava.SwiftTest.short2dArrayField + /// public static long[] org.swiftjava.SwiftTest.longArrayFieldStatic - private static var short2dArrayField_FieldID: jfieldID? + private static var longArrayFieldStatic_FieldID: jfieldID? - open var short2dArrayField: [[Int16]]! { + open static var longArrayFieldStatic: [Int64]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "short2dArrayField", fieldType: "[[S", fieldCache: &SwiftTest.short2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Int16]](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "longArrayFieldStatic", fieldType: "[J", fieldCache: &longArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [Int64].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "short2dArrayField", fieldType: "[[S", fieldCache: &SwiftTest.short2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "longArrayFieldStatic", fieldType: "[J", fieldCache: &longArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static int org.swiftjava.SwiftTest.intFieldStatic + /// public static long org.swiftjava.SwiftTest.longFieldStatic - private static var intFieldStatic_FieldID: jfieldID? + private static var longFieldStatic_FieldID: jfieldID? - open static var intFieldStatic: Int { + open static var longFieldStatic: Int64 { get { - let __value = JNIField.GetStaticIntField( fieldName: "intFieldStatic", fieldType: "I", fieldCache: &intFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Int(), from: __value ) + let __value = JNIField.GetStaticLongField( fieldName: "longFieldStatic", fieldType: "J", fieldCache: &longFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticIntField( fieldName: "intFieldStatic", fieldType: "I", fieldCache: &intFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.i, locals: &__locals ) + let __value = jvalue( j: newValue ) + JNIField.SetStaticLongField( fieldName: "longFieldStatic", fieldType: "J", fieldCache: &longFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.j, locals: &__locals ) } } - /// public int org.swiftjava.SwiftTest.intField + /// public static short[][] org.swiftjava.SwiftTest.short2dArrayFieldStatic - private static var intField_FieldID: jfieldID? + private static var short2dArrayFieldStatic_FieldID: jfieldID? - open var intField: Int { + open static var short2dArrayFieldStatic: [[Int16]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetIntField( fieldName: "intField", fieldType: "I", fieldCache: &SwiftTest.intField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Int(), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "short2dArrayFieldStatic", fieldType: "[[S", fieldCache: &short2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [[Int16]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetIntField( fieldName: "intField", fieldType: "I", fieldCache: &SwiftTest.intField_FieldID, object: javaObject, value: __value.i, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "short2dArrayFieldStatic", fieldType: "[[S", fieldCache: &short2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public static int[] org.swiftjava.SwiftTest.intArrayFieldStatic + /// public static short[] org.swiftjava.SwiftTest.shortArrayFieldStatic - private static var intArrayFieldStatic_FieldID: jfieldID? + private static var shortArrayFieldStatic_FieldID: jfieldID? - open static var intArrayFieldStatic: [Int32]! { + open static var shortArrayFieldStatic: [Int16]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "intArrayFieldStatic", fieldType: "[I", fieldCache: &intArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Int32](), from: __value ) + let __value = JNIField.GetStaticObjectField( fieldName: "shortArrayFieldStatic", fieldType: "[S", fieldCache: &shortArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return JNIType.toSwift( type: [Int16].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "intArrayFieldStatic", fieldType: "[I", fieldCache: &intArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetStaticObjectField( fieldName: "shortArrayFieldStatic", fieldType: "[S", fieldCache: &shortArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) } } - /// public int[] org.swiftjava.SwiftTest.intArrayField + /// public static short org.swiftjava.SwiftTest.shortFieldStatic - private static var intArrayField_FieldID: jfieldID? + private static var shortFieldStatic_FieldID: jfieldID? - open var intArrayField: [Int32]! { + open static var shortFieldStatic: Int16 { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "intArrayField", fieldType: "[I", fieldCache: &SwiftTest.intArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Int32](), from: __value ) + let __value = JNIField.GetStaticShortField( fieldName: "shortFieldStatic", fieldType: "S", fieldCache: &shortFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "intArrayField", fieldType: "[I", fieldCache: &SwiftTest.intArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( s: newValue ) + JNIField.SetStaticShortField( fieldName: "shortFieldStatic", fieldType: "S", fieldCache: &shortFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.s, locals: &__locals ) } } - /// public static int[][] org.swiftjava.SwiftTest.int2dArrayFieldStatic + /// public java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayField - private static var int2dArrayFieldStatic_FieldID: jfieldID? + private static var String2dArrayField_FieldID: jfieldID? - open static var int2dArrayFieldStatic: [[Int32]]! { + open var String2dArrayField: [[String]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "int2dArrayFieldStatic", fieldType: "[[I", fieldCache: &int2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Int32]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "String2dArrayField", fieldType: "[[Ljava/lang/String;", fieldCache: &SwiftTest.String2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[String]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "int2dArrayFieldStatic", fieldType: "[[I", fieldCache: &int2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "String2dArrayField", fieldType: "[[Ljava/lang/String;", fieldCache: &SwiftTest.String2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public int[][] org.swiftjava.SwiftTest.int2dArrayField + /// public java.lang.String[] org.swiftjava.SwiftTest.StringArrayField - private static var int2dArrayField_FieldID: jfieldID? + private static var StringArrayField_FieldID: jfieldID? - open var int2dArrayField: [[Int32]]! { + open var StringArrayField: [String]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "int2dArrayField", fieldType: "[[I", fieldCache: &SwiftTest.int2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Int32]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "StringArrayField", fieldType: "[Ljava/lang/String;", fieldCache: &SwiftTest.StringArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [String].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "int2dArrayField", fieldType: "[[I", fieldCache: &SwiftTest.int2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "StringArrayField", fieldType: "[Ljava/lang/String;", fieldCache: &SwiftTest.StringArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static long org.swiftjava.SwiftTest.longFieldStatic + /// public java.lang.String org.swiftjava.SwiftTest.StringField - private static var longFieldStatic_FieldID: jfieldID? + private static var StringField_FieldID: jfieldID? - open static var longFieldStatic: Int64 { + open var StringField: String! { get { - let __value = JNIField.GetStaticLongField( fieldName: "longFieldStatic", fieldType: "J", fieldCache: &longFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Int64(), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "StringField", fieldType: "Ljava/lang/String;", fieldCache: &SwiftTest.StringField_FieldID, object: javaObject ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? String( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticLongField( fieldName: "longFieldStatic", fieldType: "J", fieldCache: &longFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.j, locals: &__locals ) + JNIField.SetObjectField( fieldName: "StringField", fieldType: "Ljava/lang/String;", fieldCache: &SwiftTest.StringField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public long org.swiftjava.SwiftTest.longField + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayField - private static var longField_FieldID: jfieldID? + private static var TestListener2dArrayField_FieldID: jfieldID? - open var longField: Int64 { + open var TestListener2dArrayField: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetLongField( fieldName: "longField", fieldType: "J", fieldCache: &SwiftTest.longField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Int64(), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "TestListener2dArrayField", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListener2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetLongField( fieldName: "longField", fieldType: "J", fieldCache: &SwiftTest.longField_FieldID, object: javaObject, value: __value.j, locals: &__locals ) + JNIField.SetObjectField( fieldName: "TestListener2dArrayField", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListener2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static long[] org.swiftjava.SwiftTest.longArrayFieldStatic + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayField - private static var longArrayFieldStatic_FieldID: jfieldID? + private static var TestListenerArrayField_FieldID: jfieldID? - open static var longArrayFieldStatic: [Int64]! { + open var TestListenerArrayField: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "longArrayFieldStatic", fieldType: "[J", fieldCache: &longArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Int64](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "TestListenerArrayField", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "longArrayFieldStatic", fieldType: "[J", fieldCache: &longArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "TestListenerArrayField", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public long[] org.swiftjava.SwiftTest.longArrayField + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerField - private static var longArrayField_FieldID: jfieldID? + private static var TestListenerField_FieldID: jfieldID? - open var longArrayField: [Int64]! { + open var TestListenerField: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "longArrayField", fieldType: "[J", fieldCache: &SwiftTest.longArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Int64](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "TestListenerField", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerField_FieldID, object: javaObject ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "longArrayField", fieldType: "[J", fieldCache: &SwiftTest.longArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "TestListenerField", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static long[][] org.swiftjava.SwiftTest.long2dArrayFieldStatic + /// public boolean[][] org.swiftjava.SwiftTest.boolean2dArrayField - private static var long2dArrayFieldStatic_FieldID: jfieldID? + private static var boolean2dArrayField_FieldID: jfieldID? - open static var long2dArrayFieldStatic: [[Int64]]! { + open var boolean2dArrayField: [[Bool]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "long2dArrayFieldStatic", fieldType: "[[J", fieldCache: &long2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Int64]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "boolean2dArrayField", fieldType: "[[Z", fieldCache: &SwiftTest.boolean2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Bool]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "long2dArrayFieldStatic", fieldType: "[[J", fieldCache: &long2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "boolean2dArrayField", fieldType: "[[Z", fieldCache: &SwiftTest.boolean2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public long[][] org.swiftjava.SwiftTest.long2dArrayField + /// public boolean[] org.swiftjava.SwiftTest.booleanArrayField - private static var long2dArrayField_FieldID: jfieldID? + private static var booleanArrayField_FieldID: jfieldID? - open var long2dArrayField: [[Int64]]! { + open var booleanArrayField: [Bool]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "long2dArrayField", fieldType: "[[J", fieldCache: &SwiftTest.long2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Int64]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "booleanArrayField", fieldType: "[Z", fieldCache: &SwiftTest.booleanArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Bool].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "long2dArrayField", fieldType: "[[J", fieldCache: &SwiftTest.long2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "booleanArrayField", fieldType: "[Z", fieldCache: &SwiftTest.booleanArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static float org.swiftjava.SwiftTest.floatFieldStatic + /// public boolean org.swiftjava.SwiftTest.booleanField - private static var floatFieldStatic_FieldID: jfieldID? + private static var booleanField_FieldID: jfieldID? - open static var floatFieldStatic: Float { + open var booleanField: Bool { get { - let __value = JNIField.GetStaticFloatField( fieldName: "floatFieldStatic", fieldType: "F", fieldCache: &floatFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Float(), from: __value ) + let __value = JNIField.GetBooleanField( fieldName: "booleanField", fieldType: "Z", fieldCache: &SwiftTest.booleanField_FieldID, object: javaObject ) + return __value != jboolean(JNI_FALSE) } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticFloatField( fieldName: "floatFieldStatic", fieldType: "F", fieldCache: &floatFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.f, locals: &__locals ) + let __value = jvalue( z: jboolean(newValue ? JNI_TRUE : JNI_FALSE) ) + JNIField.SetBooleanField( fieldName: "booleanField", fieldType: "Z", fieldCache: &SwiftTest.booleanField_FieldID, object: javaObject, value: __value.z, locals: &__locals ) } } - /// public float org.swiftjava.SwiftTest.floatField + /// public byte[][] org.swiftjava.SwiftTest.byte2dArrayField - private static var floatField_FieldID: jfieldID? + private static var byte2dArrayField_FieldID: jfieldID? - open var floatField: Float { + open var byte2dArrayField: [[Int8]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetFloatField( fieldName: "floatField", fieldType: "F", fieldCache: &SwiftTest.floatField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Float(), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "byte2dArrayField", fieldType: "[[B", fieldCache: &SwiftTest.byte2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Int8]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetFloatField( fieldName: "floatField", fieldType: "F", fieldCache: &SwiftTest.floatField_FieldID, object: javaObject, value: __value.f, locals: &__locals ) + JNIField.SetObjectField( fieldName: "byte2dArrayField", fieldType: "[[B", fieldCache: &SwiftTest.byte2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static float[] org.swiftjava.SwiftTest.floatArrayFieldStatic + /// public byte[] org.swiftjava.SwiftTest.byteArrayField - private static var floatArrayFieldStatic_FieldID: jfieldID? + private static var byteArrayField_FieldID: jfieldID? - open static var floatArrayFieldStatic: [Float]! { + open var byteArrayField: [Int8]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "floatArrayFieldStatic", fieldType: "[F", fieldCache: &floatArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Float](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "byteArrayField", fieldType: "[B", fieldCache: &SwiftTest.byteArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Int8].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "floatArrayFieldStatic", fieldType: "[F", fieldCache: &floatArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "byteArrayField", fieldType: "[B", fieldCache: &SwiftTest.byteArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public float[] org.swiftjava.SwiftTest.floatArrayField + /// public byte org.swiftjava.SwiftTest.byteField - private static var floatArrayField_FieldID: jfieldID? + private static var byteField_FieldID: jfieldID? - open var floatArrayField: [Float]! { + open var byteField: Int8 { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "floatArrayField", fieldType: "[F", fieldCache: &SwiftTest.floatArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Float](), from: __value ) + let __value = JNIField.GetByteField( fieldName: "byteField", fieldType: "B", fieldCache: &SwiftTest.byteField_FieldID, object: javaObject ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "floatArrayField", fieldType: "[F", fieldCache: &SwiftTest.floatArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( b: newValue ) + JNIField.SetByteField( fieldName: "byteField", fieldType: "B", fieldCache: &SwiftTest.byteField_FieldID, object: javaObject, value: __value.b, locals: &__locals ) } } - /// public static float[][] org.swiftjava.SwiftTest.float2dArrayFieldStatic + /// public char[][] org.swiftjava.SwiftTest.char2dArrayField - private static var float2dArrayFieldStatic_FieldID: jfieldID? + private static var char2dArrayField_FieldID: jfieldID? - open static var float2dArrayFieldStatic: [[Float]]! { + open var char2dArrayField: [[UInt16]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "float2dArrayFieldStatic", fieldType: "[[F", fieldCache: &float2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Float]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "char2dArrayField", fieldType: "[[C", fieldCache: &SwiftTest.char2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[UInt16]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "float2dArrayFieldStatic", fieldType: "[[F", fieldCache: &float2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "char2dArrayField", fieldType: "[[C", fieldCache: &SwiftTest.char2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public float[][] org.swiftjava.SwiftTest.float2dArrayField + /// public char[] org.swiftjava.SwiftTest.charArrayField - private static var float2dArrayField_FieldID: jfieldID? + private static var charArrayField_FieldID: jfieldID? - open var float2dArrayField: [[Float]]! { + open var charArrayField: [UInt16]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "float2dArrayField", fieldType: "[[F", fieldCache: &SwiftTest.float2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Float]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "charArrayField", fieldType: "[C", fieldCache: &SwiftTest.charArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [UInt16].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "float2dArrayField", fieldType: "[[F", fieldCache: &SwiftTest.float2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "charArrayField", fieldType: "[C", fieldCache: &SwiftTest.charArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static double org.swiftjava.SwiftTest.doubleFieldStatic + /// public char org.swiftjava.SwiftTest.charField - private static var doubleFieldStatic_FieldID: jfieldID? + private static var charField_FieldID: jfieldID? - open static var doubleFieldStatic: Double { + open var charField: UInt16 { get { - let __value = JNIField.GetStaticDoubleField( fieldName: "doubleFieldStatic", fieldType: "D", fieldCache: &doubleFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: Double(), from: __value ) + let __value = JNIField.GetCharField( fieldName: "charField", fieldType: "C", fieldCache: &SwiftTest.charField_FieldID, object: javaObject ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticDoubleField( fieldName: "doubleFieldStatic", fieldType: "D", fieldCache: &doubleFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.d, locals: &__locals ) + let __value = jvalue( c: newValue ) + JNIField.SetCharField( fieldName: "charField", fieldType: "C", fieldCache: &SwiftTest.charField_FieldID, object: javaObject, value: __value.c, locals: &__locals ) } } - /// public double org.swiftjava.SwiftTest.doubleField + /// public double[][] org.swiftjava.SwiftTest.double2dArrayField - private static var doubleField_FieldID: jfieldID? + private static var double2dArrayField_FieldID: jfieldID? - open var doubleField: Double { + open var double2dArrayField: [[Double]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetDoubleField( fieldName: "doubleField", fieldType: "D", fieldCache: &SwiftTest.doubleField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: Double(), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "double2dArrayField", fieldType: "[[D", fieldCache: &SwiftTest.double2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Double]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetDoubleField( fieldName: "doubleField", fieldType: "D", fieldCache: &SwiftTest.doubleField_FieldID, object: javaObject, value: __value.d, locals: &__locals ) + JNIField.SetObjectField( fieldName: "double2dArrayField", fieldType: "[[D", fieldCache: &SwiftTest.double2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static double[] org.swiftjava.SwiftTest.doubleArrayFieldStatic + /// public double[] org.swiftjava.SwiftTest.doubleArrayField - private static var doubleArrayFieldStatic_FieldID: jfieldID? + private static var doubleArrayField_FieldID: jfieldID? - open static var doubleArrayFieldStatic: [Double]! { + open var doubleArrayField: [Double]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "doubleArrayFieldStatic", fieldType: "[D", fieldCache: &doubleArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [Double](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "doubleArrayField", fieldType: "[D", fieldCache: &SwiftTest.doubleArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Double].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "doubleArrayFieldStatic", fieldType: "[D", fieldCache: &doubleArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "doubleArrayField", fieldType: "[D", fieldCache: &SwiftTest.doubleArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public double[] org.swiftjava.SwiftTest.doubleArrayField + /// public double org.swiftjava.SwiftTest.doubleField - private static var doubleArrayField_FieldID: jfieldID? + private static var doubleField_FieldID: jfieldID? - open var doubleArrayField: [Double]! { + open var doubleField: Double { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "doubleArrayField", fieldType: "[D", fieldCache: &SwiftTest.doubleArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [Double](), from: __value ) + let __value = JNIField.GetDoubleField( fieldName: "doubleField", fieldType: "D", fieldCache: &SwiftTest.doubleField_FieldID, object: javaObject ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "doubleArrayField", fieldType: "[D", fieldCache: &SwiftTest.doubleArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( d: newValue ) + JNIField.SetDoubleField( fieldName: "doubleField", fieldType: "D", fieldCache: &SwiftTest.doubleField_FieldID, object: javaObject, value: __value.d, locals: &__locals ) } } - /// public static double[][] org.swiftjava.SwiftTest.double2dArrayFieldStatic + /// public float[][] org.swiftjava.SwiftTest.float2dArrayField - private static var double2dArrayFieldStatic_FieldID: jfieldID? + private static var float2dArrayField_FieldID: jfieldID? - open static var double2dArrayFieldStatic: [[Double]]! { + open var float2dArrayField: [[Float]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "double2dArrayFieldStatic", fieldType: "[[D", fieldCache: &double2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[Double]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "float2dArrayField", fieldType: "[[F", fieldCache: &SwiftTest.float2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Float]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "double2dArrayFieldStatic", fieldType: "[[D", fieldCache: &double2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "float2dArrayField", fieldType: "[[F", fieldCache: &SwiftTest.float2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public double[][] org.swiftjava.SwiftTest.double2dArrayField + /// public float[] org.swiftjava.SwiftTest.floatArrayField - private static var double2dArrayField_FieldID: jfieldID? + private static var floatArrayField_FieldID: jfieldID? - open var double2dArrayField: [[Double]]! { + open var floatArrayField: [Float]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "double2dArrayField", fieldType: "[[D", fieldCache: &SwiftTest.double2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[Double]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "floatArrayField", fieldType: "[F", fieldCache: &SwiftTest.floatArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Float].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "double2dArrayField", fieldType: "[[D", fieldCache: &SwiftTest.double2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "floatArrayField", fieldType: "[F", fieldCache: &SwiftTest.floatArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static java.lang.String org.swiftjava.SwiftTest.StringFieldStatic + /// public float org.swiftjava.SwiftTest.floatField - private static var StringFieldStatic_FieldID: jfieldID? + private static var floatField_FieldID: jfieldID? - open static var StringFieldStatic: String! { + open var floatField: Float { get { - let __value = JNIField.GetStaticObjectField( fieldName: "StringFieldStatic", fieldType: "Ljava/lang/String;", fieldCache: &StringFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: String(), from: __value ) + let __value = JNIField.GetFloatField( fieldName: "floatField", fieldType: "F", fieldCache: &SwiftTest.floatField_FieldID, object: javaObject ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "StringFieldStatic", fieldType: "Ljava/lang/String;", fieldCache: &StringFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + let __value = jvalue( f: newValue ) + JNIField.SetFloatField( fieldName: "floatField", fieldType: "F", fieldCache: &SwiftTest.floatField_FieldID, object: javaObject, value: __value.f, locals: &__locals ) } } - /// public java.lang.String org.swiftjava.SwiftTest.StringField + /// public int[][] org.swiftjava.SwiftTest.int2dArrayField - private static var StringField_FieldID: jfieldID? + private static var int2dArrayField_FieldID: jfieldID? - open var StringField: String! { + open var int2dArrayField: [[Int32]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "StringField", fieldType: "Ljava/lang/String;", fieldCache: &SwiftTest.StringField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: String(), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "int2dArrayField", fieldType: "[[I", fieldCache: &SwiftTest.int2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Int32]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "StringField", fieldType: "Ljava/lang/String;", fieldCache: &SwiftTest.StringField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "int2dArrayField", fieldType: "[[I", fieldCache: &SwiftTest.int2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static java.lang.String[] org.swiftjava.SwiftTest.StringArrayFieldStatic + /// public int[] org.swiftjava.SwiftTest.intArrayField - private static var StringArrayFieldStatic_FieldID: jfieldID? + private static var intArrayField_FieldID: jfieldID? - open static var StringArrayFieldStatic: [String]! { + open var intArrayField: [Int32]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "StringArrayFieldStatic", fieldType: "[Ljava/lang/String;", fieldCache: &StringArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [String](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "intArrayField", fieldType: "[I", fieldCache: &SwiftTest.intArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Int32].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "StringArrayFieldStatic", fieldType: "[Ljava/lang/String;", fieldCache: &StringArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "intArrayField", fieldType: "[I", fieldCache: &SwiftTest.intArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public java.lang.String[] org.swiftjava.SwiftTest.StringArrayField + /// public int org.swiftjava.SwiftTest.intField - private static var StringArrayField_FieldID: jfieldID? + private static var intField_FieldID: jfieldID? - open var StringArrayField: [String]! { + open var intField: Int { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "StringArrayField", fieldType: "[Ljava/lang/String;", fieldCache: &SwiftTest.StringArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [String](), from: __value ) + let __value = JNIField.GetIntField( fieldName: "intField", fieldType: "I", fieldCache: &SwiftTest.intField_FieldID, object: javaObject ) + return Int(__value) } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "StringArrayField", fieldType: "[Ljava/lang/String;", fieldCache: &SwiftTest.StringArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( i: jint(newValue) ) + JNIField.SetIntField( fieldName: "intField", fieldType: "I", fieldCache: &SwiftTest.intField_FieldID, object: javaObject, value: __value.i, locals: &__locals ) } } - /// public static java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayFieldStatic + /// public long[][] org.swiftjava.SwiftTest.long2dArrayField - private static var String2dArrayFieldStatic_FieldID: jfieldID? + private static var long2dArrayField_FieldID: jfieldID? - open static var String2dArrayFieldStatic: [[String]]! { + open var long2dArrayField: [[Int64]]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "String2dArrayFieldStatic", fieldType: "[[Ljava/lang/String;", fieldCache: &String2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[String]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "long2dArrayField", fieldType: "[[J", fieldCache: &SwiftTest.long2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Int64]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "String2dArrayFieldStatic", fieldType: "[[Ljava/lang/String;", fieldCache: &String2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "long2dArrayField", fieldType: "[[J", fieldCache: &SwiftTest.long2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayField + /// public long[] org.swiftjava.SwiftTest.longArrayField - private static var String2dArrayField_FieldID: jfieldID? + private static var longArrayField_FieldID: jfieldID? - open var String2dArrayField: [[String]]! { + open var longArrayField: [Int64]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "String2dArrayField", fieldType: "[[Ljava/lang/String;", fieldCache: &SwiftTest.String2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[String]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "longArrayField", fieldType: "[J", fieldCache: &SwiftTest.longArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Int64].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "String2dArrayField", fieldType: "[[Ljava/lang/String;", fieldCache: &SwiftTest.String2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) - } - } - - /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerFieldStatic - - private static var TestListenerFieldStatic_FieldID: jfieldID? - - open static var TestListenerFieldStatic: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { - get { - let __value = JNIField.GetStaticObjectField( fieldName: "TestListenerFieldStatic", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return __value != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __value ) : nil - } - set(newValue) { - var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "TestListenerFieldStatic", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "longArrayField", fieldType: "[J", fieldCache: &SwiftTest.longArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerField + /// public long org.swiftjava.SwiftTest.longField - private static var TestListenerField_FieldID: jfieldID? + private static var longField_FieldID: jfieldID? - open var TestListenerField: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { + open var longField: Int64 { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "TestListenerField", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerField_FieldID, object: javaObject, locals: &__locals ) - return __value != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __value ) : nil + let __value = JNIField.GetLongField( fieldName: "longField", fieldType: "J", fieldCache: &SwiftTest.longField_FieldID, object: javaObject ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "TestListenerField", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( j: newValue ) + JNIField.SetLongField( fieldName: "longField", fieldType: "J", fieldCache: &SwiftTest.longField_FieldID, object: javaObject, value: __value.j, locals: &__locals ) } } - /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayFieldStatic + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.loopback - private static var TestListenerArrayFieldStatic_FieldID: jfieldID? + private static var loopback_FieldID: jfieldID? - open static var TestListenerArrayFieldStatic: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open var loopback: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "TestListenerArrayFieldStatic", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.loopback_FieldID, object: javaObject ) + defer { JNI.DeleteLocalRef( __value ) } + return __value != nil ? /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward( javaObject: __value ) : nil } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "TestListenerArrayFieldStatic", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListenerArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "loopback", fieldType: "Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.loopback_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayField + /// public short[][] org.swiftjava.SwiftTest.short2dArrayField - private static var TestListenerArrayField_FieldID: jfieldID? + private static var short2dArrayField_FieldID: jfieldID? - open var TestListenerArrayField: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open var short2dArrayField: [[Int16]]! { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "TestListenerArrayField", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "short2dArrayField", fieldType: "[[S", fieldCache: &SwiftTest.short2dArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [[Int16]].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "TestListenerArrayField", fieldType: "[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListenerArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "short2dArrayField", fieldType: "[[S", fieldCache: &SwiftTest.short2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayFieldStatic + /// public short[] org.swiftjava.SwiftTest.shortArrayField - private static var TestListener2dArrayFieldStatic_FieldID: jfieldID? + private static var shortArrayField_FieldID: jfieldID? - open static var TestListener2dArrayFieldStatic: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + open var shortArrayField: [Int16]! { get { - let __value = JNIField.GetStaticObjectField( fieldName: "TestListener2dArrayFieldStatic", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListener2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass ) - return JNIType.toSwift( type: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __value ) + let __value = JNIField.GetObjectField( fieldName: "shortArrayField", fieldType: "[S", fieldCache: &SwiftTest.shortArrayField_FieldID, object: javaObject ) + return JNIType.toSwift( type: [Int16].self, from: __value ) } set(newValue) { var __locals = [jobject]() let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetStaticObjectField( fieldName: "TestListener2dArrayFieldStatic", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &TestListener2dArrayFieldStatic_FieldID, className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, value: __value.l, locals: &__locals ) + JNIField.SetObjectField( fieldName: "shortArrayField", fieldType: "[S", fieldCache: &SwiftTest.shortArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) } } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayField + /// public short org.swiftjava.SwiftTest.shortField - private static var TestListener2dArrayField_FieldID: jfieldID? + private static var shortField_FieldID: jfieldID? - open var TestListener2dArrayField: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { + open var shortField: Int16 { get { - var __locals = [jobject]() - let __value = JNIField.GetObjectField( fieldName: "TestListener2dArrayField", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListener2dArrayField_FieldID, object: javaObject, locals: &__locals ) - return JNIType.toSwift( type: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __value ) + let __value = JNIField.GetShortField( fieldName: "shortField", fieldType: "S", fieldCache: &SwiftTest.shortField_FieldID, object: javaObject ) + return __value } set(newValue) { var __locals = [jobject]() - let __value = JNIType.toJava( value: newValue, locals: &__locals ) - JNIField.SetObjectField( fieldName: "TestListener2dArrayField", fieldType: "[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", fieldCache: &SwiftTest.TestListener2dArrayField_FieldID, object: javaObject, value: __value.l, locals: &__locals ) + let __value = jvalue( s: newValue ) + JNIField.SetShortField( fieldName: "shortField", fieldType: "S", fieldCache: &SwiftTest.shortField_FieldID, object: javaObject, value: __value.s, locals: &__locals ) } } @@ -1028,973 +1002,975 @@ open class SwiftTest: java_swift.JavaObject { private static var new_MethodID_1: jmethodID? public convenience init() { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) let __object = JNIMethod.NewObject( className: "org/swiftjava/SwiftTest", classCache: &SwiftTest.SwiftTestJNIClass, methodSig: "()V", methodCache: &SwiftTest.new_MethodID_1, args: &__args, locals: &__locals ) self.init( javaObject: __object ) JNI.DeleteLocalRef( __object ) } - /// public static boolean org.swiftjava.SwiftTest.booleanMethodStatic(boolean) + /// public static java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayMethodStatic(java.lang.String[][]) - private static var booleanMethodStatic_MethodID_2: jmethodID? + private static var String2dArrayMethodStatic_MethodID_2: jmethodID? - open class func booleanMethodStatic( arg0: Bool ) -> Bool { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func String2dArrayMethodStatic( arg0: [[String]]? ) -> [[String]]! { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticBooleanMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanMethodStatic", methodSig: "(Z)Z", methodCache: &booleanMethodStatic_MethodID_2, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __return ) - } - - open class func booleanMethodStatic( _ _arg0: Bool ) -> Bool { - return booleanMethodStatic( arg0: _arg0 ) - } - - /// public boolean org.swiftjava.SwiftTest.booleanMethod(boolean) - - private static var booleanMethod_MethodID_3: jmethodID? - - open func booleanMethod( arg0: Bool ) -> Bool { var __args = [jvalue]( repeating: jvalue(), count: 1 ) - var __locals = [jobject]() __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftTest.booleanMethod_MethodID_3, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Bool(), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "String2dArrayMethodStatic", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &String2dArrayMethodStatic_MethodID_2, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]].self, from: __return ) } - open func booleanMethod( _ _arg0: Bool ) -> Bool { - return booleanMethod( arg0: _arg0 ) + open class func String2dArrayMethodStatic( _ _arg0: [[String]]? ) -> [[String]]! { + return String2dArrayMethodStatic( arg0: _arg0 ) } - /// public static boolean[] org.swiftjava.SwiftTest.booleanArrayMethodStatic(boolean[]) + /// public static java.lang.String[] org.swiftjava.SwiftTest.StringArrayMethodStatic(java.lang.String[]) - private static var booleanArrayMethodStatic_MethodID_4: jmethodID? + private static var StringArrayMethodStatic_MethodID_3: jmethodID? - open class func booleanArrayMethodStatic( arg0: [Bool]? ) -> [Bool]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func StringArrayMethodStatic( arg0: [String]? ) -> [String]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanArrayMethodStatic", methodSig: "([Z)[Z", methodCache: &booleanArrayMethodStatic_MethodID_4, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Bool](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringArrayMethodStatic", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &StringArrayMethodStatic_MethodID_3, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String].self, from: __return ) } - open class func booleanArrayMethodStatic( _ _arg0: [Bool]? ) -> [Bool]! { - return booleanArrayMethodStatic( arg0: _arg0 ) + open class func StringArrayMethodStatic( _ _arg0: [String]? ) -> [String]! { + return StringArrayMethodStatic( arg0: _arg0 ) } - /// public boolean[] org.swiftjava.SwiftTest.booleanArrayMethod(boolean[]) + /// public static java.lang.String org.swiftjava.SwiftTest.StringMethodStatic(java.lang.String) - private static var booleanArrayMethod_MethodID_5: jmethodID? + private static var StringMethodStatic_MethodID_4: jmethodID? - open func booleanArrayMethod( arg0: [Bool]? ) -> [Bool]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func StringMethodStatic( arg0: String? ) -> String! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftTest.booleanArrayMethod_MethodID_5, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Bool](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringMethodStatic", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &StringMethodStatic_MethodID_4, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? String( javaObject: __return ) : nil } - open func booleanArrayMethod( _ _arg0: [Bool]? ) -> [Bool]! { - return booleanArrayMethod( arg0: _arg0 ) + open class func StringMethodStatic( _ _arg0: String? ) -> String! { + return StringMethodStatic( arg0: _arg0 ) } - /// public static boolean[][] org.swiftjava.SwiftTest.boolean2dArrayMethodStatic(boolean[][]) + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - private static var boolean2dArrayMethodStatic_MethodID_6: jmethodID? + private static var TestListener2dArrayMethodStatic_MethodID_5: jmethodID? - open class func boolean2dArrayMethodStatic( arg0: [[Bool]]? ) -> [[Bool]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func TestListener2dArrayMethodStatic( arg0: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]? ) -> [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "boolean2dArrayMethodStatic", methodSig: "([[Z)[[Z", methodCache: &boolean2dArrayMethodStatic_MethodID_6, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Bool]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListener2dArrayMethodStatic", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListener2dArrayMethodStatic_MethodID_5, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward]].self, from: __return ) } - open class func boolean2dArrayMethodStatic( _ _arg0: [[Bool]]? ) -> [[Bool]]! { - return boolean2dArrayMethodStatic( arg0: _arg0 ) + open class func TestListener2dArrayMethodStatic( _ _arg0: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]? ) -> [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]! { + return TestListener2dArrayMethodStatic( arg0: _arg0 ) } - /// public boolean[][] org.swiftjava.SwiftTest.boolean2dArrayMethod(boolean[][]) + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - private static var boolean2dArrayMethod_MethodID_7: jmethodID? + private static var TestListenerArrayMethodStatic_MethodID_6: jmethodID? - open func boolean2dArrayMethod( arg0: [[Bool]]? ) -> [[Bool]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func TestListenerArrayMethodStatic( arg0: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]? ) -> [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftTest.boolean2dArrayMethod_MethodID_7, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Bool]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerArrayMethodStatic", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerArrayMethodStatic_MethodID_6, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward].self, from: __return ) } - open func boolean2dArrayMethod( _ _arg0: [[Bool]]? ) -> [[Bool]]! { - return boolean2dArrayMethod( arg0: _arg0 ) + open class func TestListenerArrayMethodStatic( _ _arg0: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]? ) -> [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]! { + return TestListenerArrayMethodStatic( arg0: _arg0 ) } - /// public static byte org.swiftjava.SwiftTest.byteMethodStatic(byte) + /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - private static var byteMethodStatic_MethodID_8: jmethodID? + private static var TestListenerMethodStatic_MethodID_7: jmethodID? - open class func byteMethodStatic( arg0: Int8 ) -> Int8 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func TestListenerMethodStatic( arg0: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol? ) -> /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticByteMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteMethodStatic", methodSig: "(B)B", methodCache: &byteMethodStatic_MethodID_8, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int8(), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerMethodStatic", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerMethodStatic_MethodID_7, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward( javaObject: __return ) : nil } - open class func byteMethodStatic( _ _arg0: Int8 ) -> Int8 { - return byteMethodStatic( arg0: _arg0 ) + open class func TestListenerMethodStatic( _ _arg0: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol? ) -> /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { + return TestListenerMethodStatic( arg0: _arg0 ) } - /// public byte org.swiftjava.SwiftTest.byteMethod(byte) + /// public static boolean[][] org.swiftjava.SwiftTest.boolean2dArrayMethodStatic(boolean[][]) - private static var byteMethod_MethodID_9: jmethodID? + private static var boolean2dArrayMethodStatic_MethodID_8: jmethodID? - open func byteMethod( arg0: Int8 ) -> Int8 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func boolean2dArrayMethodStatic( arg0: [[Bool]]? ) -> [[Bool]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftTest.byteMethod_MethodID_9, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int8(), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "boolean2dArrayMethodStatic", methodSig: "([[Z)[[Z", methodCache: &boolean2dArrayMethodStatic_MethodID_8, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]].self, from: __return ) } - open func byteMethod( _ _arg0: Int8 ) -> Int8 { - return byteMethod( arg0: _arg0 ) + open class func boolean2dArrayMethodStatic( _ _arg0: [[Bool]]? ) -> [[Bool]]! { + return boolean2dArrayMethodStatic( arg0: _arg0 ) } - /// public static byte[] org.swiftjava.SwiftTest.byteArrayMethodStatic(byte[]) + /// public static boolean[] org.swiftjava.SwiftTest.booleanArrayMethodStatic(boolean[]) - private static var byteArrayMethodStatic_MethodID_10: jmethodID? + private static var booleanArrayMethodStatic_MethodID_9: jmethodID? - open class func byteArrayMethodStatic( arg0: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func booleanArrayMethodStatic( arg0: [Bool]? ) -> [Bool]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteArrayMethodStatic", methodSig: "([B)[B", methodCache: &byteArrayMethodStatic_MethodID_10, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int8](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanArrayMethodStatic", methodSig: "([Z)[Z", methodCache: &booleanArrayMethodStatic_MethodID_9, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool].self, from: __return ) } - open class func byteArrayMethodStatic( _ _arg0: [Int8]? ) -> [Int8]! { - return byteArrayMethodStatic( arg0: _arg0 ) + open class func booleanArrayMethodStatic( _ _arg0: [Bool]? ) -> [Bool]! { + return booleanArrayMethodStatic( arg0: _arg0 ) } - /// public byte[] org.swiftjava.SwiftTest.byteArrayMethod(byte[]) + /// public static boolean org.swiftjava.SwiftTest.booleanMethodStatic(boolean) - private static var byteArrayMethod_MethodID_11: jmethodID? + private static var booleanMethodStatic_MethodID_10: jmethodID? - open func byteArrayMethod( arg0: [Int8]? ) -> [Int8]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func booleanMethodStatic( arg0: Bool ) -> Bool { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftTest.byteArrayMethod_MethodID_11, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int8](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( z: jboolean(arg0 ? JNI_TRUE : JNI_FALSE) ) + let __return = JNIMethod.CallStaticBooleanMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "booleanMethodStatic", methodSig: "(Z)Z", methodCache: &booleanMethodStatic_MethodID_10, args: &__args, locals: &__locals ) + return __return != jboolean(JNI_FALSE) } - open func byteArrayMethod( _ _arg0: [Int8]? ) -> [Int8]! { - return byteArrayMethod( arg0: _arg0 ) + open class func booleanMethodStatic( _ _arg0: Bool ) -> Bool { + return booleanMethodStatic( arg0: _arg0 ) } /// public static byte[][] org.swiftjava.SwiftTest.byte2dArrayMethodStatic(byte[][]) - private static var byte2dArrayMethodStatic_MethodID_12: jmethodID? + private static var byte2dArrayMethodStatic_MethodID_11: jmethodID? open class func byte2dArrayMethodStatic( arg0: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byte2dArrayMethodStatic", methodSig: "([[B)[[B", methodCache: &byte2dArrayMethodStatic_MethodID_12, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int8]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byte2dArrayMethodStatic", methodSig: "([[B)[[B", methodCache: &byte2dArrayMethodStatic_MethodID_11, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]].self, from: __return ) } open class func byte2dArrayMethodStatic( _ _arg0: [[Int8]]? ) -> [[Int8]]! { return byte2dArrayMethodStatic( arg0: _arg0 ) } - /// public byte[][] org.swiftjava.SwiftTest.byte2dArrayMethod(byte[][]) + /// public static byte[] org.swiftjava.SwiftTest.byteArrayMethodStatic(byte[]) - private static var byte2dArrayMethod_MethodID_13: jmethodID? + private static var byteArrayMethodStatic_MethodID_12: jmethodID? - open func byte2dArrayMethod( arg0: [[Int8]]? ) -> [[Int8]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func byteArrayMethodStatic( arg0: [Int8]? ) -> [Int8]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftTest.byte2dArrayMethod_MethodID_13, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int8]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteArrayMethodStatic", methodSig: "([B)[B", methodCache: &byteArrayMethodStatic_MethodID_12, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8].self, from: __return ) } - open func byte2dArrayMethod( _ _arg0: [[Int8]]? ) -> [[Int8]]! { - return byte2dArrayMethod( arg0: _arg0 ) + open class func byteArrayMethodStatic( _ _arg0: [Int8]? ) -> [Int8]! { + return byteArrayMethodStatic( arg0: _arg0 ) } - /// public static char org.swiftjava.SwiftTest.charMethodStatic(char) + /// public static byte org.swiftjava.SwiftTest.byteMethodStatic(byte) - private static var charMethodStatic_MethodID_14: jmethodID? + private static var byteMethodStatic_MethodID_13: jmethodID? - open class func charMethodStatic( arg0: UInt16 ) -> UInt16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func byteMethodStatic( arg0: Int8 ) -> Int8 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticCharMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charMethodStatic", methodSig: "(C)C", methodCache: &charMethodStatic_MethodID_14, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: UInt16(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( b: arg0 ) + let __return = JNIMethod.CallStaticByteMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "byteMethodStatic", methodSig: "(B)B", methodCache: &byteMethodStatic_MethodID_13, args: &__args, locals: &__locals ) + return __return } - open class func charMethodStatic( _ _arg0: UInt16 ) -> UInt16 { - return charMethodStatic( arg0: _arg0 ) + open class func byteMethodStatic( _ _arg0: Int8 ) -> Int8 { + return byteMethodStatic( arg0: _arg0 ) } - /// public char org.swiftjava.SwiftTest.charMethod(char) + /// public static char[][] org.swiftjava.SwiftTest.char2dArrayMethodStatic(char[][]) - private static var charMethod_MethodID_15: jmethodID? + private static var char2dArrayMethodStatic_MethodID_14: jmethodID? - open func charMethod( arg0: UInt16 ) -> UInt16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func char2dArrayMethodStatic( arg0: [[UInt16]]? ) -> [[UInt16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftTest.charMethod_MethodID_15, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: UInt16(), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "char2dArrayMethodStatic", methodSig: "([[C)[[C", methodCache: &char2dArrayMethodStatic_MethodID_14, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]].self, from: __return ) } - open func charMethod( _ _arg0: UInt16 ) -> UInt16 { - return charMethod( arg0: _arg0 ) + open class func char2dArrayMethodStatic( _ _arg0: [[UInt16]]? ) -> [[UInt16]]! { + return char2dArrayMethodStatic( arg0: _arg0 ) } /// public static char[] org.swiftjava.SwiftTest.charArrayMethodStatic(char[]) - private static var charArrayMethodStatic_MethodID_16: jmethodID? + private static var charArrayMethodStatic_MethodID_15: jmethodID? open class func charArrayMethodStatic( arg0: [UInt16]? ) -> [UInt16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charArrayMethodStatic", methodSig: "([C)[C", methodCache: &charArrayMethodStatic_MethodID_16, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [UInt16](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charArrayMethodStatic", methodSig: "([C)[C", methodCache: &charArrayMethodStatic_MethodID_15, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16].self, from: __return ) } open class func charArrayMethodStatic( _ _arg0: [UInt16]? ) -> [UInt16]! { return charArrayMethodStatic( arg0: _arg0 ) } - /// public char[] org.swiftjava.SwiftTest.charArrayMethod(char[]) + /// public static char org.swiftjava.SwiftTest.charMethodStatic(char) - private static var charArrayMethod_MethodID_17: jmethodID? + private static var charMethodStatic_MethodID_16: jmethodID? - open func charArrayMethod( arg0: [UInt16]? ) -> [UInt16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func charMethodStatic( arg0: UInt16 ) -> UInt16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftTest.charArrayMethod_MethodID_17, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [UInt16](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( c: arg0 ) + let __return = JNIMethod.CallStaticCharMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "charMethodStatic", methodSig: "(C)C", methodCache: &charMethodStatic_MethodID_16, args: &__args, locals: &__locals ) + return __return } - open func charArrayMethod( _ _arg0: [UInt16]? ) -> [UInt16]! { - return charArrayMethod( arg0: _arg0 ) + open class func charMethodStatic( _ _arg0: UInt16 ) -> UInt16 { + return charMethodStatic( arg0: _arg0 ) } - /// public static char[][] org.swiftjava.SwiftTest.char2dArrayMethodStatic(char[][]) + /// public static double[][] org.swiftjava.SwiftTest.double2dArrayMethodStatic(double[][]) - private static var char2dArrayMethodStatic_MethodID_18: jmethodID? + private static var double2dArrayMethodStatic_MethodID_17: jmethodID? - open class func char2dArrayMethodStatic( arg0: [[UInt16]]? ) -> [[UInt16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func double2dArrayMethodStatic( arg0: [[Double]]? ) -> [[Double]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "char2dArrayMethodStatic", methodSig: "([[C)[[C", methodCache: &char2dArrayMethodStatic_MethodID_18, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[UInt16]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "double2dArrayMethodStatic", methodSig: "([[D)[[D", methodCache: &double2dArrayMethodStatic_MethodID_17, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]].self, from: __return ) } - open class func char2dArrayMethodStatic( _ _arg0: [[UInt16]]? ) -> [[UInt16]]! { - return char2dArrayMethodStatic( arg0: _arg0 ) + open class func double2dArrayMethodStatic( _ _arg0: [[Double]]? ) -> [[Double]]! { + return double2dArrayMethodStatic( arg0: _arg0 ) } - /// public char[][] org.swiftjava.SwiftTest.char2dArrayMethod(char[][]) + /// public static double[] org.swiftjava.SwiftTest.doubleArrayMethodStatic(double[]) - private static var char2dArrayMethod_MethodID_19: jmethodID? + private static var doubleArrayMethodStatic_MethodID_18: jmethodID? - open func char2dArrayMethod( arg0: [[UInt16]]? ) -> [[UInt16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func doubleArrayMethodStatic( arg0: [Double]? ) -> [Double]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftTest.char2dArrayMethod_MethodID_19, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[UInt16]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleArrayMethodStatic", methodSig: "([D)[D", methodCache: &doubleArrayMethodStatic_MethodID_18, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double].self, from: __return ) } - open func char2dArrayMethod( _ _arg0: [[UInt16]]? ) -> [[UInt16]]! { - return char2dArrayMethod( arg0: _arg0 ) + open class func doubleArrayMethodStatic( _ _arg0: [Double]? ) -> [Double]! { + return doubleArrayMethodStatic( arg0: _arg0 ) } - /// public static short org.swiftjava.SwiftTest.shortMethodStatic(short) + /// public static double org.swiftjava.SwiftTest.doubleMethodStatic(double) - private static var shortMethodStatic_MethodID_20: jmethodID? + private static var doubleMethodStatic_MethodID_19: jmethodID? - open class func shortMethodStatic( arg0: Int16 ) -> Int16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func doubleMethodStatic( arg0: Double ) -> Double { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticShortMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortMethodStatic", methodSig: "(S)S", methodCache: &shortMethodStatic_MethodID_20, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int16(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: arg0 ) + let __return = JNIMethod.CallStaticDoubleMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleMethodStatic", methodSig: "(D)D", methodCache: &doubleMethodStatic_MethodID_19, args: &__args, locals: &__locals ) + return __return } - open class func shortMethodStatic( _ _arg0: Int16 ) -> Int16 { - return shortMethodStatic( arg0: _arg0 ) + open class func doubleMethodStatic( _ _arg0: Double ) -> Double { + return doubleMethodStatic( arg0: _arg0 ) } - /// public short org.swiftjava.SwiftTest.shortMethod(short) + /// public static float[][] org.swiftjava.SwiftTest.float2dArrayMethodStatic(float[][]) - private static var shortMethod_MethodID_21: jmethodID? + private static var float2dArrayMethodStatic_MethodID_20: jmethodID? - open func shortMethod( arg0: Int16 ) -> Int16 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func float2dArrayMethodStatic( arg0: [[Float]]? ) -> [[Float]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftTest.shortMethod_MethodID_21, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int16(), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "float2dArrayMethodStatic", methodSig: "([[F)[[F", methodCache: &float2dArrayMethodStatic_MethodID_20, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]].self, from: __return ) } - open func shortMethod( _ _arg0: Int16 ) -> Int16 { - return shortMethod( arg0: _arg0 ) + open class func float2dArrayMethodStatic( _ _arg0: [[Float]]? ) -> [[Float]]! { + return float2dArrayMethodStatic( arg0: _arg0 ) } - /// public static short[] org.swiftjava.SwiftTest.shortArrayMethodStatic(short[]) + /// public static float[] org.swiftjava.SwiftTest.floatArrayMethodStatic(float[]) - private static var shortArrayMethodStatic_MethodID_22: jmethodID? + private static var floatArrayMethodStatic_MethodID_21: jmethodID? - open class func shortArrayMethodStatic( arg0: [Int16]? ) -> [Int16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func floatArrayMethodStatic( arg0: [Float]? ) -> [Float]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortArrayMethodStatic", methodSig: "([S)[S", methodCache: &shortArrayMethodStatic_MethodID_22, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int16](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatArrayMethodStatic", methodSig: "([F)[F", methodCache: &floatArrayMethodStatic_MethodID_21, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float].self, from: __return ) } - open class func shortArrayMethodStatic( _ _arg0: [Int16]? ) -> [Int16]! { - return shortArrayMethodStatic( arg0: _arg0 ) + open class func floatArrayMethodStatic( _ _arg0: [Float]? ) -> [Float]! { + return floatArrayMethodStatic( arg0: _arg0 ) } - /// public short[] org.swiftjava.SwiftTest.shortArrayMethod(short[]) + /// public static float org.swiftjava.SwiftTest.floatMethodStatic(float) - private static var shortArrayMethod_MethodID_23: jmethodID? + private static var floatMethodStatic_MethodID_22: jmethodID? - open func shortArrayMethod( arg0: [Int16]? ) -> [Int16]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func floatMethodStatic( arg0: Float ) -> Float { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftTest.shortArrayMethod_MethodID_23, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int16](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( f: arg0 ) + let __return = JNIMethod.CallStaticFloatMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatMethodStatic", methodSig: "(F)F", methodCache: &floatMethodStatic_MethodID_22, args: &__args, locals: &__locals ) + return __return } - open func shortArrayMethod( _ _arg0: [Int16]? ) -> [Int16]! { - return shortArrayMethod( arg0: _arg0 ) + open class func floatMethodStatic( _ _arg0: Float ) -> Float { + return floatMethodStatic( arg0: _arg0 ) } - /// public static short[][] org.swiftjava.SwiftTest.short2dArrayMethodStatic(short[][]) + /// public static int[][] org.swiftjava.SwiftTest.int2dArrayMethodStatic(int[][]) - private static var short2dArrayMethodStatic_MethodID_24: jmethodID? + private static var int2dArrayMethodStatic_MethodID_23: jmethodID? - open class func short2dArrayMethodStatic( arg0: [[Int16]]? ) -> [[Int16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func int2dArrayMethodStatic( arg0: [[Int32]]? ) -> [[Int32]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "short2dArrayMethodStatic", methodSig: "([[S)[[S", methodCache: &short2dArrayMethodStatic_MethodID_24, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int16]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "int2dArrayMethodStatic", methodSig: "([[I)[[I", methodCache: &int2dArrayMethodStatic_MethodID_23, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]].self, from: __return ) } - open class func short2dArrayMethodStatic( _ _arg0: [[Int16]]? ) -> [[Int16]]! { - return short2dArrayMethodStatic( arg0: _arg0 ) + open class func int2dArrayMethodStatic( _ _arg0: [[Int32]]? ) -> [[Int32]]! { + return int2dArrayMethodStatic( arg0: _arg0 ) } - /// public short[][] org.swiftjava.SwiftTest.short2dArrayMethod(short[][]) + /// public static int[] org.swiftjava.SwiftTest.intArrayMethodStatic(int[]) - private static var short2dArrayMethod_MethodID_25: jmethodID? + private static var intArrayMethodStatic_MethodID_24: jmethodID? - open func short2dArrayMethod( arg0: [[Int16]]? ) -> [[Int16]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func intArrayMethodStatic( arg0: [Int32]? ) -> [Int32]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftTest.short2dArrayMethod_MethodID_25, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int16]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intArrayMethodStatic", methodSig: "([I)[I", methodCache: &intArrayMethodStatic_MethodID_24, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32].self, from: __return ) } - open func short2dArrayMethod( _ _arg0: [[Int16]]? ) -> [[Int16]]! { - return short2dArrayMethod( arg0: _arg0 ) + open class func intArrayMethodStatic( _ _arg0: [Int32]? ) -> [Int32]! { + return intArrayMethodStatic( arg0: _arg0 ) } /// public static int org.swiftjava.SwiftTest.intMethodStatic(int) - private static var intMethodStatic_MethodID_26: jmethodID? + private static var intMethodStatic_MethodID_25: jmethodID? open class func intMethodStatic( arg0: Int ) -> Int { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticIntMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intMethodStatic", methodSig: "(I)I", methodCache: &intMethodStatic_MethodID_26, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( i: jint(arg0) ) + let __return = JNIMethod.CallStaticIntMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intMethodStatic", methodSig: "(I)I", methodCache: &intMethodStatic_MethodID_25, args: &__args, locals: &__locals ) + return Int(__return) } open class func intMethodStatic( _ _arg0: Int ) -> Int { return intMethodStatic( arg0: _arg0 ) } - /// public int org.swiftjava.SwiftTest.intMethod(int) + /// public static long[][] org.swiftjava.SwiftTest.long2dArrayMethodStatic(long[][]) - private static var intMethod_MethodID_27: jmethodID? + private static var long2dArrayMethodStatic_MethodID_26: jmethodID? - open func intMethod( arg0: Int ) -> Int { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func long2dArrayMethodStatic( arg0: [[Int64]]? ) -> [[Int64]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftTest.intMethod_MethodID_27, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int(), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "long2dArrayMethodStatic", methodSig: "([[J)[[J", methodCache: &long2dArrayMethodStatic_MethodID_26, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]].self, from: __return ) } - open func intMethod( _ _arg0: Int ) -> Int { - return intMethod( arg0: _arg0 ) + open class func long2dArrayMethodStatic( _ _arg0: [[Int64]]? ) -> [[Int64]]! { + return long2dArrayMethodStatic( arg0: _arg0 ) } - /// public static int[] org.swiftjava.SwiftTest.intArrayMethodStatic(int[]) + /// public static long[] org.swiftjava.SwiftTest.longArrayMethodStatic(long[]) - private static var intArrayMethodStatic_MethodID_28: jmethodID? + private static var longArrayMethodStatic_MethodID_27: jmethodID? - open class func intArrayMethodStatic( arg0: [Int32]? ) -> [Int32]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func longArrayMethodStatic( arg0: [Int64]? ) -> [Int64]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "intArrayMethodStatic", methodSig: "([I)[I", methodCache: &intArrayMethodStatic_MethodID_28, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int32](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longArrayMethodStatic", methodSig: "([J)[J", methodCache: &longArrayMethodStatic_MethodID_27, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64].self, from: __return ) } - open class func intArrayMethodStatic( _ _arg0: [Int32]? ) -> [Int32]! { - return intArrayMethodStatic( arg0: _arg0 ) + open class func longArrayMethodStatic( _ _arg0: [Int64]? ) -> [Int64]! { + return longArrayMethodStatic( arg0: _arg0 ) } - /// public int[] org.swiftjava.SwiftTest.intArrayMethod(int[]) + /// public static long org.swiftjava.SwiftTest.longMethodStatic(long) - private static var intArrayMethod_MethodID_29: jmethodID? + private static var longMethodStatic_MethodID_28: jmethodID? - open func intArrayMethod( arg0: [Int32]? ) -> [Int32]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func longMethodStatic( arg0: Int64 ) -> Int64 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftTest.intArrayMethod_MethodID_29, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int32](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( j: arg0 ) + let __return = JNIMethod.CallStaticLongMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longMethodStatic", methodSig: "(J)J", methodCache: &longMethodStatic_MethodID_28, args: &__args, locals: &__locals ) + return __return } - open func intArrayMethod( _ _arg0: [Int32]? ) -> [Int32]! { - return intArrayMethod( arg0: _arg0 ) + open class func longMethodStatic( _ _arg0: Int64 ) -> Int64 { + return longMethodStatic( arg0: _arg0 ) } - /// public static int[][] org.swiftjava.SwiftTest.int2dArrayMethodStatic(int[][]) + /// public static short[][] org.swiftjava.SwiftTest.short2dArrayMethodStatic(short[][]) - private static var int2dArrayMethodStatic_MethodID_30: jmethodID? + private static var short2dArrayMethodStatic_MethodID_29: jmethodID? - open class func int2dArrayMethodStatic( arg0: [[Int32]]? ) -> [[Int32]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func short2dArrayMethodStatic( arg0: [[Int16]]? ) -> [[Int16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "int2dArrayMethodStatic", methodSig: "([[I)[[I", methodCache: &int2dArrayMethodStatic_MethodID_30, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int32]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "short2dArrayMethodStatic", methodSig: "([[S)[[S", methodCache: &short2dArrayMethodStatic_MethodID_29, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]].self, from: __return ) } - open class func int2dArrayMethodStatic( _ _arg0: [[Int32]]? ) -> [[Int32]]! { - return int2dArrayMethodStatic( arg0: _arg0 ) + open class func short2dArrayMethodStatic( _ _arg0: [[Int16]]? ) -> [[Int16]]! { + return short2dArrayMethodStatic( arg0: _arg0 ) } - /// public int[][] org.swiftjava.SwiftTest.int2dArrayMethod(int[][]) + /// public static short[] org.swiftjava.SwiftTest.shortArrayMethodStatic(short[]) - private static var int2dArrayMethod_MethodID_31: jmethodID? + private static var shortArrayMethodStatic_MethodID_30: jmethodID? - open func int2dArrayMethod( arg0: [[Int32]]? ) -> [[Int32]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func shortArrayMethodStatic( arg0: [Int16]? ) -> [Int16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftTest.int2dArrayMethod_MethodID_31, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int32]](), from: __return ) + let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortArrayMethodStatic", methodSig: "([S)[S", methodCache: &shortArrayMethodStatic_MethodID_30, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16].self, from: __return ) } - open func int2dArrayMethod( _ _arg0: [[Int32]]? ) -> [[Int32]]! { - return int2dArrayMethod( arg0: _arg0 ) + open class func shortArrayMethodStatic( _ _arg0: [Int16]? ) -> [Int16]! { + return shortArrayMethodStatic( arg0: _arg0 ) } - /// public static long org.swiftjava.SwiftTest.longMethodStatic(long) + /// public static short org.swiftjava.SwiftTest.shortMethodStatic(short) - private static var longMethodStatic_MethodID_32: jmethodID? + private static var shortMethodStatic_MethodID_31: jmethodID? - open class func longMethodStatic( arg0: Int64 ) -> Int64 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open class func shortMethodStatic( arg0: Int16 ) -> Int16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticLongMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longMethodStatic", methodSig: "(J)J", methodCache: &longMethodStatic_MethodID_32, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int64(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( s: arg0 ) + let __return = JNIMethod.CallStaticShortMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "shortMethodStatic", methodSig: "(S)S", methodCache: &shortMethodStatic_MethodID_31, args: &__args, locals: &__locals ) + return __return } - open class func longMethodStatic( _ _arg0: Int64 ) -> Int64 { - return longMethodStatic( arg0: _arg0 ) + open class func shortMethodStatic( _ _arg0: Int16 ) -> Int16 { + return shortMethodStatic( arg0: _arg0 ) } - /// public long org.swiftjava.SwiftTest.longMethod(long) + /// public java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayMethod(java.lang.String[][]) - private static var longMethod_MethodID_33: jmethodID? + private static var String2dArrayMethod_MethodID_32: jmethodID? - open func longMethod( arg0: Int64 ) -> Int64 { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func String2dArrayMethod( arg0: [[String]]? ) -> [[String]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftTest.longMethod_MethodID_33, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Int64(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftTest.String2dArrayMethod_MethodID_32, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[String]].self, from: __return ) } - open func longMethod( _ _arg0: Int64 ) -> Int64 { - return longMethod( arg0: _arg0 ) + open func String2dArrayMethod( _ _arg0: [[String]]? ) -> [[String]]! { + return String2dArrayMethod( arg0: _arg0 ) } - /// public static long[] org.swiftjava.SwiftTest.longArrayMethodStatic(long[]) + /// public java.lang.String[] org.swiftjava.SwiftTest.StringArrayMethod(java.lang.String[]) - private static var longArrayMethodStatic_MethodID_34: jmethodID? + private static var StringArrayMethod_MethodID_33: jmethodID? - open class func longArrayMethodStatic( arg0: [Int64]? ) -> [Int64]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func StringArrayMethod( arg0: [String]? ) -> [String]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "longArrayMethodStatic", methodSig: "([J)[J", methodCache: &longArrayMethodStatic_MethodID_34, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int64](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftTest.StringArrayMethod_MethodID_33, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [String].self, from: __return ) } - open class func longArrayMethodStatic( _ _arg0: [Int64]? ) -> [Int64]! { - return longArrayMethodStatic( arg0: _arg0 ) + open func StringArrayMethod( _ _arg0: [String]? ) -> [String]! { + return StringArrayMethod( arg0: _arg0 ) } - /// public long[] org.swiftjava.SwiftTest.longArrayMethod(long[]) + /// public java.lang.String org.swiftjava.SwiftTest.StringMethod(java.lang.String) - private static var longArrayMethod_MethodID_35: jmethodID? + private static var StringMethod_MethodID_34: jmethodID? - open func longArrayMethod( arg0: [Int64]? ) -> [Int64]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func StringMethod( arg0: String? ) -> String! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftTest.longArrayMethod_MethodID_35, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Int64](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftTest.StringMethod_MethodID_34, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? String( javaObject: __return ) : nil } - open func longArrayMethod( _ _arg0: [Int64]? ) -> [Int64]! { - return longArrayMethod( arg0: _arg0 ) + open func StringMethod( _ _arg0: String? ) -> String! { + return StringMethod( arg0: _arg0 ) } - /// public static long[][] org.swiftjava.SwiftTest.long2dArrayMethodStatic(long[][]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) - private static var long2dArrayMethodStatic_MethodID_36: jmethodID? + private static var TestListener2dArrayMethod_MethodID_35: jmethodID? - open class func long2dArrayMethodStatic( arg0: [[Int64]]? ) -> [[Int64]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListener2dArrayMethod( arg0: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]? ) -> [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "long2dArrayMethodStatic", methodSig: "([[J)[[J", methodCache: &long2dArrayMethodStatic_MethodID_36, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int64]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListener2dArrayMethod_MethodID_35, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward]].self, from: __return ) } - open class func long2dArrayMethodStatic( _ _arg0: [[Int64]]? ) -> [[Int64]]! { - return long2dArrayMethodStatic( arg0: _arg0 ) + open func TestListener2dArrayMethod( _ _arg0: [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]? ) -> [[/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]]! { + return TestListener2dArrayMethod( arg0: _arg0 ) } - /// public long[][] org.swiftjava.SwiftTest.long2dArrayMethod(long[][]) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) - private static var long2dArrayMethod_MethodID_37: jmethodID? + private static var TestListenerArrayMethod_MethodID_36: jmethodID? - open func long2dArrayMethod( arg0: [[Int64]]? ) -> [[Int64]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListenerArrayMethod( arg0: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]? ) -> [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftTest.long2dArrayMethod_MethodID_37, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Int64]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerArrayMethod_MethodID_36, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward].self, from: __return ) } - open func long2dArrayMethod( _ _arg0: [[Int64]]? ) -> [[Int64]]! { - return long2dArrayMethod( arg0: _arg0 ) + open func TestListenerArrayMethod( _ _arg0: [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]? ) -> [/* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol]! { + return TestListenerArrayMethod( arg0: _arg0 ) } - /// public static float org.swiftjava.SwiftTest.floatMethodStatic(float) + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - private static var floatMethodStatic_MethodID_38: jmethodID? + private static var TestListenerMethod_MethodID_37: jmethodID? - open class func floatMethodStatic( arg0: Float ) -> Float { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func TestListenerMethod( arg0: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol? ) -> /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticFloatMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatMethodStatic", methodSig: "(F)F", methodCache: &floatMethodStatic_MethodID_38, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Float(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerMethod_MethodID_37, args: &__args, locals: &__locals ) + defer { JNI.DeleteLocalRef( __return ) } + return __return != nil ? /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocolForward( javaObject: __return ) : nil } - open class func floatMethodStatic( _ _arg0: Float ) -> Float { - return floatMethodStatic( arg0: _arg0 ) + open func TestListenerMethod( _ _arg0: /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol? ) -> /* interface com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnavailableProtocol! { + return TestListenerMethod( arg0: _arg0 ) } - /// public float org.swiftjava.SwiftTest.floatMethod(float) + /// public boolean[][] org.swiftjava.SwiftTest.boolean2dArrayMethod(boolean[][]) - private static var floatMethod_MethodID_39: jmethodID? + private static var boolean2dArrayMethod_MethodID_38: jmethodID? - open func floatMethod( arg0: Float ) -> Float { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func boolean2dArrayMethod( arg0: [[Bool]]? ) -> [[Bool]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftTest.floatMethod_MethodID_39, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Float(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "boolean2dArrayMethod", methodSig: "([[Z)[[Z", methodCache: &SwiftTest.boolean2dArrayMethod_MethodID_38, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Bool]].self, from: __return ) } - open func floatMethod( _ _arg0: Float ) -> Float { - return floatMethod( arg0: _arg0 ) + open func boolean2dArrayMethod( _ _arg0: [[Bool]]? ) -> [[Bool]]! { + return boolean2dArrayMethod( arg0: _arg0 ) } - /// public static float[] org.swiftjava.SwiftTest.floatArrayMethodStatic(float[]) + /// public boolean[] org.swiftjava.SwiftTest.booleanArrayMethod(boolean[]) - private static var floatArrayMethodStatic_MethodID_40: jmethodID? + private static var booleanArrayMethod_MethodID_39: jmethodID? - open class func floatArrayMethodStatic( arg0: [Float]? ) -> [Float]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func booleanArrayMethod( arg0: [Bool]? ) -> [Bool]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "floatArrayMethodStatic", methodSig: "([F)[F", methodCache: &floatArrayMethodStatic_MethodID_40, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Float](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "booleanArrayMethod", methodSig: "([Z)[Z", methodCache: &SwiftTest.booleanArrayMethod_MethodID_39, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Bool].self, from: __return ) } - open class func floatArrayMethodStatic( _ _arg0: [Float]? ) -> [Float]! { - return floatArrayMethodStatic( arg0: _arg0 ) + open func booleanArrayMethod( _ _arg0: [Bool]? ) -> [Bool]! { + return booleanArrayMethod( arg0: _arg0 ) } - /// public float[] org.swiftjava.SwiftTest.floatArrayMethod(float[]) + /// public boolean org.swiftjava.SwiftTest.booleanMethod(boolean) - private static var floatArrayMethod_MethodID_41: jmethodID? + private static var booleanMethod_MethodID_40: jmethodID? - open func floatArrayMethod( arg0: [Float]? ) -> [Float]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func booleanMethod( arg0: Bool ) -> Bool { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftTest.floatArrayMethod_MethodID_41, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Float](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( z: jboolean(arg0 ? JNI_TRUE : JNI_FALSE) ) + let __return = JNIMethod.CallBooleanMethod( object: javaObject, methodName: "booleanMethod", methodSig: "(Z)Z", methodCache: &SwiftTest.booleanMethod_MethodID_40, args: &__args, locals: &__locals ) + return __return != jboolean(JNI_FALSE) } - open func floatArrayMethod( _ _arg0: [Float]? ) -> [Float]! { - return floatArrayMethod( arg0: _arg0 ) + open func booleanMethod( _ _arg0: Bool ) -> Bool { + return booleanMethod( arg0: _arg0 ) } - /// public static float[][] org.swiftjava.SwiftTest.float2dArrayMethodStatic(float[][]) + /// public byte[][] org.swiftjava.SwiftTest.byte2dArrayMethod(byte[][]) - private static var float2dArrayMethodStatic_MethodID_42: jmethodID? + private static var byte2dArrayMethod_MethodID_41: jmethodID? - open class func float2dArrayMethodStatic( arg0: [[Float]]? ) -> [[Float]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byte2dArrayMethod( arg0: [[Int8]]? ) -> [[Int8]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "float2dArrayMethodStatic", methodSig: "([[F)[[F", methodCache: &float2dArrayMethodStatic_MethodID_42, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Float]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byte2dArrayMethod", methodSig: "([[B)[[B", methodCache: &SwiftTest.byte2dArrayMethod_MethodID_41, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int8]].self, from: __return ) } - open class func float2dArrayMethodStatic( _ _arg0: [[Float]]? ) -> [[Float]]! { - return float2dArrayMethodStatic( arg0: _arg0 ) + open func byte2dArrayMethod( _ _arg0: [[Int8]]? ) -> [[Int8]]! { + return byte2dArrayMethod( arg0: _arg0 ) } - /// public float[][] org.swiftjava.SwiftTest.float2dArrayMethod(float[][]) + /// public byte[] org.swiftjava.SwiftTest.byteArrayMethod(byte[]) - private static var float2dArrayMethod_MethodID_43: jmethodID? + private static var byteArrayMethod_MethodID_42: jmethodID? - open func float2dArrayMethod( arg0: [[Float]]? ) -> [[Float]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byteArrayMethod( arg0: [Int8]? ) -> [Int8]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftTest.float2dArrayMethod_MethodID_43, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Float]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "byteArrayMethod", methodSig: "([B)[B", methodCache: &SwiftTest.byteArrayMethod_MethodID_42, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int8].self, from: __return ) } - open func float2dArrayMethod( _ _arg0: [[Float]]? ) -> [[Float]]! { - return float2dArrayMethod( arg0: _arg0 ) + open func byteArrayMethod( _ _arg0: [Int8]? ) -> [Int8]! { + return byteArrayMethod( arg0: _arg0 ) } - /// public static double org.swiftjava.SwiftTest.doubleMethodStatic(double) + /// public byte org.swiftjava.SwiftTest.byteMethod(byte) - private static var doubleMethodStatic_MethodID_44: jmethodID? + private static var byteMethod_MethodID_43: jmethodID? - open class func doubleMethodStatic( arg0: Double ) -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func byteMethod( arg0: Int8 ) -> Int8 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticDoubleMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleMethodStatic", methodSig: "(D)D", methodCache: &doubleMethodStatic_MethodID_44, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Double(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( b: arg0 ) + let __return = JNIMethod.CallByteMethod( object: javaObject, methodName: "byteMethod", methodSig: "(B)B", methodCache: &SwiftTest.byteMethod_MethodID_43, args: &__args, locals: &__locals ) + return __return } - open class func doubleMethodStatic( _ _arg0: Double ) -> Double { - return doubleMethodStatic( arg0: _arg0 ) + open func byteMethod( _ _arg0: Int8 ) -> Int8 { + return byteMethod( arg0: _arg0 ) } - /// public double org.swiftjava.SwiftTest.doubleMethod(double) + /// public char[][] org.swiftjava.SwiftTest.char2dArrayMethod(char[][]) - private static var doubleMethod_MethodID_45: jmethodID? + private static var char2dArrayMethod_MethodID_44: jmethodID? - open func doubleMethod( arg0: Double ) -> Double { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func char2dArrayMethod( arg0: [[UInt16]]? ) -> [[UInt16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftTest.doubleMethod_MethodID_45, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: Double(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "char2dArrayMethod", methodSig: "([[C)[[C", methodCache: &SwiftTest.char2dArrayMethod_MethodID_44, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[UInt16]].self, from: __return ) } - open func doubleMethod( _ _arg0: Double ) -> Double { - return doubleMethod( arg0: _arg0 ) + open func char2dArrayMethod( _ _arg0: [[UInt16]]? ) -> [[UInt16]]! { + return char2dArrayMethod( arg0: _arg0 ) } - /// public static double[] org.swiftjava.SwiftTest.doubleArrayMethodStatic(double[]) + /// public char[] org.swiftjava.SwiftTest.charArrayMethod(char[]) - private static var doubleArrayMethodStatic_MethodID_46: jmethodID? + private static var charArrayMethod_MethodID_45: jmethodID? - open class func doubleArrayMethodStatic( arg0: [Double]? ) -> [Double]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func charArrayMethod( arg0: [UInt16]? ) -> [UInt16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "doubleArrayMethodStatic", methodSig: "([D)[D", methodCache: &doubleArrayMethodStatic_MethodID_46, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Double](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "charArrayMethod", methodSig: "([C)[C", methodCache: &SwiftTest.charArrayMethod_MethodID_45, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [UInt16].self, from: __return ) } - open class func doubleArrayMethodStatic( _ _arg0: [Double]? ) -> [Double]! { - return doubleArrayMethodStatic( arg0: _arg0 ) + open func charArrayMethod( _ _arg0: [UInt16]? ) -> [UInt16]! { + return charArrayMethod( arg0: _arg0 ) } - /// public double[] org.swiftjava.SwiftTest.doubleArrayMethod(double[]) + /// public char org.swiftjava.SwiftTest.charMethod(char) - private static var doubleArrayMethod_MethodID_47: jmethodID? + private static var charMethod_MethodID_46: jmethodID? - open func doubleArrayMethod( arg0: [Double]? ) -> [Double]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func charMethod( arg0: UInt16 ) -> UInt16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftTest.doubleArrayMethod_MethodID_47, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [Double](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( c: arg0 ) + let __return = JNIMethod.CallCharMethod( object: javaObject, methodName: "charMethod", methodSig: "(C)C", methodCache: &SwiftTest.charMethod_MethodID_46, args: &__args, locals: &__locals ) + return __return } - open func doubleArrayMethod( _ _arg0: [Double]? ) -> [Double]! { - return doubleArrayMethod( arg0: _arg0 ) + open func charMethod( _ _arg0: UInt16 ) -> UInt16 { + return charMethod( arg0: _arg0 ) } - /// public static double[][] org.swiftjava.SwiftTest.double2dArrayMethodStatic(double[][]) + /// public double[][] org.swiftjava.SwiftTest.double2dArrayMethod(double[][]) - private static var double2dArrayMethodStatic_MethodID_48: jmethodID? + private static var double2dArrayMethod_MethodID_47: jmethodID? - open class func double2dArrayMethodStatic( arg0: [[Double]]? ) -> [[Double]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func double2dArrayMethod( arg0: [[Double]]? ) -> [[Double]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "double2dArrayMethodStatic", methodSig: "([[D)[[D", methodCache: &double2dArrayMethodStatic_MethodID_48, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Double]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftTest.double2dArrayMethod_MethodID_47, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Double]].self, from: __return ) } - open class func double2dArrayMethodStatic( _ _arg0: [[Double]]? ) -> [[Double]]! { - return double2dArrayMethodStatic( arg0: _arg0 ) + open func double2dArrayMethod( _ _arg0: [[Double]]? ) -> [[Double]]! { + return double2dArrayMethod( arg0: _arg0 ) } - /// public double[][] org.swiftjava.SwiftTest.double2dArrayMethod(double[][]) + /// public double[] org.swiftjava.SwiftTest.doubleArrayMethod(double[]) - private static var double2dArrayMethod_MethodID_49: jmethodID? + private static var doubleArrayMethod_MethodID_48: jmethodID? - open func double2dArrayMethod( arg0: [[Double]]? ) -> [[Double]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func doubleArrayMethod( arg0: [Double]? ) -> [Double]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "double2dArrayMethod", methodSig: "([[D)[[D", methodCache: &SwiftTest.double2dArrayMethod_MethodID_49, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[Double]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "doubleArrayMethod", methodSig: "([D)[D", methodCache: &SwiftTest.doubleArrayMethod_MethodID_48, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Double].self, from: __return ) } - open func double2dArrayMethod( _ _arg0: [[Double]]? ) -> [[Double]]! { - return double2dArrayMethod( arg0: _arg0 ) + open func doubleArrayMethod( _ _arg0: [Double]? ) -> [Double]! { + return doubleArrayMethod( arg0: _arg0 ) } - /// public static java.lang.String org.swiftjava.SwiftTest.StringMethodStatic(java.lang.String) + /// public double org.swiftjava.SwiftTest.doubleMethod(double) - private static var StringMethodStatic_MethodID_50: jmethodID? + private static var doubleMethod_MethodID_49: jmethodID? - open class func StringMethodStatic( arg0: String? ) -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func doubleMethod( arg0: Double ) -> Double { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringMethodStatic", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &StringMethodStatic_MethodID_50, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: String(), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( d: arg0 ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "doubleMethod", methodSig: "(D)D", methodCache: &SwiftTest.doubleMethod_MethodID_49, args: &__args, locals: &__locals ) + return __return } - open class func StringMethodStatic( _ _arg0: String? ) -> String! { - return StringMethodStatic( arg0: _arg0 ) + open func doubleMethod( _ _arg0: Double ) -> Double { + return doubleMethod( arg0: _arg0 ) } - /// public java.lang.String org.swiftjava.SwiftTest.StringMethod(java.lang.String) + /// public float[][] org.swiftjava.SwiftTest.float2dArrayMethod(float[][]) - private static var StringMethod_MethodID_51: jmethodID? + private static var float2dArrayMethod_MethodID_50: jmethodID? - open func StringMethod( arg0: String? ) -> String! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func float2dArrayMethod( arg0: [[Float]]? ) -> [[Float]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringMethod", methodSig: "(Ljava/lang/String;)Ljava/lang/String;", methodCache: &SwiftTest.StringMethod_MethodID_51, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: String(), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "float2dArrayMethod", methodSig: "([[F)[[F", methodCache: &SwiftTest.float2dArrayMethod_MethodID_50, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Float]].self, from: __return ) } - open func StringMethod( _ _arg0: String? ) -> String! { - return StringMethod( arg0: _arg0 ) + open func float2dArrayMethod( _ _arg0: [[Float]]? ) -> [[Float]]! { + return float2dArrayMethod( arg0: _arg0 ) } - /// public static java.lang.String[] org.swiftjava.SwiftTest.StringArrayMethodStatic(java.lang.String[]) + /// public float[] org.swiftjava.SwiftTest.floatArrayMethod(float[]) - private static var StringArrayMethodStatic_MethodID_52: jmethodID? + private static var floatArrayMethod_MethodID_51: jmethodID? - open class func StringArrayMethodStatic( arg0: [String]? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func floatArrayMethod( arg0: [Float]? ) -> [Float]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "StringArrayMethodStatic", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &StringArrayMethodStatic_MethodID_52, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [String](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "floatArrayMethod", methodSig: "([F)[F", methodCache: &SwiftTest.floatArrayMethod_MethodID_51, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Float].self, from: __return ) } - open class func StringArrayMethodStatic( _ _arg0: [String]? ) -> [String]! { - return StringArrayMethodStatic( arg0: _arg0 ) + open func floatArrayMethod( _ _arg0: [Float]? ) -> [Float]! { + return floatArrayMethod( arg0: _arg0 ) } - /// public java.lang.String[] org.swiftjava.SwiftTest.StringArrayMethod(java.lang.String[]) + /// public float org.swiftjava.SwiftTest.floatMethod(float) - private static var StringArrayMethod_MethodID_53: jmethodID? + private static var floatMethod_MethodID_52: jmethodID? - open func StringArrayMethod( arg0: [String]? ) -> [String]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func floatMethod( arg0: Float ) -> Float { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "StringArrayMethod", methodSig: "([Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftTest.StringArrayMethod_MethodID_53, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [String](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( f: arg0 ) + let __return = JNIMethod.CallFloatMethod( object: javaObject, methodName: "floatMethod", methodSig: "(F)F", methodCache: &SwiftTest.floatMethod_MethodID_52, args: &__args, locals: &__locals ) + return __return } - open func StringArrayMethod( _ _arg0: [String]? ) -> [String]! { - return StringArrayMethod( arg0: _arg0 ) + open func floatMethod( _ _arg0: Float ) -> Float { + return floatMethod( arg0: _arg0 ) } - /// public static java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayMethodStatic(java.lang.String[][]) + /// public int[][] org.swiftjava.SwiftTest.int2dArrayMethod(int[][]) - private static var String2dArrayMethodStatic_MethodID_54: jmethodID? + private static var int2dArrayMethod_MethodID_53: jmethodID? - open class func String2dArrayMethodStatic( arg0: [[String]]? ) -> [[String]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func int2dArrayMethod( arg0: [[Int32]]? ) -> [[Int32]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "String2dArrayMethodStatic", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &String2dArrayMethodStatic_MethodID_54, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[String]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "int2dArrayMethod", methodSig: "([[I)[[I", methodCache: &SwiftTest.int2dArrayMethod_MethodID_53, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int32]].self, from: __return ) } - open class func String2dArrayMethodStatic( _ _arg0: [[String]]? ) -> [[String]]! { - return String2dArrayMethodStatic( arg0: _arg0 ) + open func int2dArrayMethod( _ _arg0: [[Int32]]? ) -> [[Int32]]! { + return int2dArrayMethod( arg0: _arg0 ) } - /// public java.lang.String[][] org.swiftjava.SwiftTest.String2dArrayMethod(java.lang.String[][]) + /// public int[] org.swiftjava.SwiftTest.intArrayMethod(int[]) - private static var String2dArrayMethod_MethodID_55: jmethodID? + private static var intArrayMethod_MethodID_54: jmethodID? - open func String2dArrayMethod( arg0: [[String]]? ) -> [[String]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func intArrayMethod( arg0: [Int32]? ) -> [Int32]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "String2dArrayMethod", methodSig: "([[Ljava/lang/String;)[[Ljava/lang/String;", methodCache: &SwiftTest.String2dArrayMethod_MethodID_55, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[String]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "intArrayMethod", methodSig: "([I)[I", methodCache: &SwiftTest.intArrayMethod_MethodID_54, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int32].self, from: __return ) } - open func String2dArrayMethod( _ _arg0: [[String]]? ) -> [[String]]! { - return String2dArrayMethod( arg0: _arg0 ) + open func intArrayMethod( _ _arg0: [Int32]? ) -> [Int32]! { + return intArrayMethod( arg0: _arg0 ) } - /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public int org.swiftjava.SwiftTest.intMethod(int) - private static var TestListenerMethodStatic_MethodID_56: jmethodID? + private static var intMethod_MethodID_55: jmethodID? - open class func TestListenerMethodStatic( arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func intMethod( arg0: Int ) -> Int { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerMethodStatic", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerMethodStatic_MethodID_56, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( i: jint(arg0) ) + let __return = JNIMethod.CallIntMethod( object: javaObject, methodName: "intMethod", methodSig: "(I)I", methodCache: &SwiftTest.intMethod_MethodID_55, args: &__args, locals: &__locals ) + return Int(__return) } - open class func TestListenerMethodStatic( _ _arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { - return TestListenerMethodStatic( arg0: _arg0 ) + open func intMethod( _ _arg0: Int ) -> Int { + return intMethod( arg0: _arg0 ) } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener org.swiftjava.SwiftTest.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public long[][] org.swiftjava.SwiftTest.long2dArrayMethod(long[][]) - private static var TestListenerMethod_MethodID_57: jmethodID? + private static var long2dArrayMethod_MethodID_56: jmethodID? - open func TestListenerMethod( arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func long2dArrayMethod( arg0: [[Int64]]? ) -> [[Int64]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerMethod", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerMethod_MethodID_57, args: &__args, locals: &__locals ) - defer { JNI.DeleteLocalRef( __return ) } - return __return != nil ? /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward( javaObject: __return ) : nil + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "long2dArrayMethod", methodSig: "([[J)[[J", methodCache: &SwiftTest.long2dArrayMethod_MethodID_56, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int64]].self, from: __return ) } - open func TestListenerMethod( _ _arg0: /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol? ) -> /* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol! { - return TestListenerMethod( arg0: _arg0 ) + open func long2dArrayMethod( _ _arg0: [[Int64]]? ) -> [[Int64]]! { + return long2dArrayMethod( arg0: _arg0 ) } - /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public long[] org.swiftjava.SwiftTest.longArrayMethod(long[]) - private static var TestListenerArrayMethodStatic_MethodID_58: jmethodID? + private static var longArrayMethod_MethodID_57: jmethodID? - open class func TestListenerArrayMethodStatic( arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func longArrayMethod( arg0: [Int64]? ) -> [Int64]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListenerArrayMethodStatic", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListenerArrayMethodStatic_MethodID_58, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "longArrayMethod", methodSig: "([J)[J", methodCache: &SwiftTest.longArrayMethod_MethodID_57, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int64].self, from: __return ) } - open class func TestListenerArrayMethodStatic( _ _arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { - return TestListenerArrayMethodStatic( arg0: _arg0 ) + open func longArrayMethod( _ _arg0: [Int64]? ) -> [Int64]! { + return longArrayMethod( arg0: _arg0 ) } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] org.swiftjava.SwiftTest.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public long org.swiftjava.SwiftTest.longMethod(long) - private static var TestListenerArrayMethod_MethodID_59: jmethodID? + private static var longMethod_MethodID_58: jmethodID? - open func TestListenerArrayMethod( arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { + open func longMethod( arg0: Int64 ) -> Int64 { + var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( j: arg0 ) + let __return = JNIMethod.CallLongMethod( object: javaObject, methodName: "longMethod", methodSig: "(J)J", methodCache: &SwiftTest.longMethod_MethodID_58, args: &__args, locals: &__locals ) + return __return + } + + open func longMethod( _ _arg0: Int64 ) -> Int64 { + return longMethod( arg0: _arg0 ) + } + + /// public short[][] org.swiftjava.SwiftTest.short2dArrayMethod(short[][]) + + private static var short2dArrayMethod_MethodID_59: jmethodID? + + open func short2dArrayMethod( arg0: [[Int16]]? ) -> [[Int16]]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListenerArrayMethod", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListenerArrayMethod_MethodID_59, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "short2dArrayMethod", methodSig: "([[S)[[S", methodCache: &SwiftTest.short2dArrayMethod_MethodID_59, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [[Int16]].self, from: __return ) } - open func TestListenerArrayMethod( _ _arg0: [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]? ) -> [/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]! { - return TestListenerArrayMethod( arg0: _arg0 ) + open func short2dArrayMethod( _ _arg0: [[Int16]]? ) -> [[Int16]]! { + return short2dArrayMethod( arg0: _arg0 ) } - /// public static com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethodStatic(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public short[] org.swiftjava.SwiftTest.shortArrayMethod(short[]) - private static var TestListener2dArrayMethodStatic_MethodID_60: jmethodID? + private static var shortArrayMethod_MethodID_60: jmethodID? - open class func TestListener2dArrayMethodStatic( arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func shortArrayMethod( arg0: [Int16]? ) -> [Int16]! { var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallStaticObjectMethod( className: "org/swiftjava/SwiftTest", classCache: &SwiftTestJNIClass, methodName: "TestListener2dArrayMethodStatic", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &TestListener2dArrayMethodStatic_MethodID_60, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "shortArrayMethod", methodSig: "([S)[S", methodCache: &SwiftTest.shortArrayMethod_MethodID_60, args: &__args, locals: &__locals ) + return JNIType.toSwift( type: [Int16].self, from: __return ) } - open class func TestListener2dArrayMethodStatic( _ _arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { - return TestListener2dArrayMethodStatic( arg0: _arg0 ) + open func shortArrayMethod( _ _arg0: [Int16]? ) -> [Int16]! { + return shortArrayMethod( arg0: _arg0 ) } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] org.swiftjava.SwiftTest.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public short org.swiftjava.SwiftTest.shortMethod(short) - private static var TestListener2dArrayMethod_MethodID_61: jmethodID? + private static var shortMethod_MethodID_61: jmethodID? - open func TestListener2dArrayMethod( arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { - var __args = [jvalue]( repeating: jvalue(), count: 1 ) + open func shortMethod( arg0: Int16 ) -> Int16 { var __locals = [jobject]() - __args[0] = JNIType.toJava( value: arg0, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "TestListener2dArrayMethod", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;)[[Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftTest.TestListener2dArrayMethod_MethodID_61, args: &__args, locals: &__locals ) - return JNIType.toSwift( type: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocolForward]](), from: __return ) + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = jvalue( s: arg0 ) + let __return = JNIMethod.CallShortMethod( object: javaObject, methodName: "shortMethod", methodSig: "(S)S", methodCache: &SwiftTest.shortMethod_MethodID_61, args: &__args, locals: &__locals ) + return __return } - open func TestListener2dArrayMethod( _ _arg0: [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]? ) -> [[/* com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener */ UnclassedProtocol]]! { - return TestListener2dArrayMethod( arg0: _arg0 ) + open func shortMethod( _ _arg0: Int16 ) -> Int16 { + return shortMethod( arg0: _arg0 ) } } diff --git a/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java b/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java index 4865578..8a5d425 100644 --- a/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java +++ b/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java @@ -53,6 +53,8 @@ public interface Responder { public void processedStringMapList( StringMapList map ); + public double throwException() throws Exception; + public String[] debug( String msg ); public SwiftHelloTest.TestListener testResponder( int loopback ); diff --git a/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java b/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java index c4a20cd..d5ec454 100644 --- a/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java +++ b/src/com/johnholdsworth/swiftbindings/SwiftHelloTypes.java @@ -1,5 +1,5 @@ -// Shared types/interfaces between Java and Swift +// Shared types/interfaces between Java and Swift in example applications package com.johnholdsworth.swiftbindings; @@ -35,6 +35,7 @@ public static Class valueClass() { public StringMap() { super(); } + @SuppressWarnings("unchecked") public StringMap(Map map) { super(map); } @@ -47,11 +48,41 @@ public static Class valueClass() { public StringMapList() { super(); } + @SuppressWarnings("unchecked") public StringMapList(Map map) { super(map); } } + public static enum Planet { + MERCURY (3.303e+23, 2.4397e6), + VENUS (4.869e+24, 6.0518e6), + EARTH (5.976e+24, 6.37814e6), + MARS (6.421e+23, 3.3972e6), + JUPITER (1.9e+27, 7.1492e7), + SATURN (5.688e+26, 6.0268e7), + URANUS (8.686e+25, 2.5559e7), + NEPTUNE (1.024e+26, 2.4746e7); + + private final double mass; // in kilograms + private final double radius; // in meters + Planet(double mass, double radius) { + this.mass = mass; + this.radius = radius; + } + public double mass() { return mass; } + public double radius() { return radius; } + + // universal gravitational constant (m3 kg-1 s-2) + public static final double G = 6.67300E-11; + + public double surfaceGravity() { + return G * mass / (radius * radius); + } + public double surfaceWeight(double otherMass) { + return otherMass * surfaceGravity(); + } + } } diff --git a/src/genswift.java b/src/genswift.java index 67f685f..365b419 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -1,7 +1,7 @@ // // genswift.java // https://github.com/SwiftJava/SwiftJava -// $Id: //depot/SwiftJava/src/genswift.java#90 $ +// $Id: //depot/SwiftJava/src/genswift.java#94 $ // // Created by John Holdsworth on 14/07/2016. // Copyright (c) 2016 John Holdsworth. All rights reserved. @@ -10,6 +10,8 @@ // See ../genswift.sh for details on invocation. // Code generator for Swift written in the style of a Perl script. // +// Requires https://github.com/SwiftJava/java_swift release 2.1.0+ +// // List of classes to be generated received on stdin which is the // output of a grep on the target jar for the classes of interest. // @@ -46,11 +48,32 @@ // available to the application. On UNIX this is through the jar file // ~/.swiftjava.jar built from these generated sources using ../genjar.sh. // +// +// MIT License +// +// Copyright (c) 2016-7, John Holdsworth +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this +// software and associated documentation files (the "Software"), to deal in the Software +// without restriction, including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// import java.io.*; import java.util.HashMap; import java.util.ArrayList; +import java.util.Comparator; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -66,14 +89,15 @@ static void progress( Object o ) { static int apiVersion = 2; - static String Unclassed = "Unclassed"; + static String Unavailable = "Unavailable"; static String pathToWriteSource = "./"; static String organisation = "org.swiftjava."; static String proxySourcePath = organisation.replace('.', '/'); static String repoBase = "https://github.com/SwiftJava/"; + static boolean sortMembers = true, convertEnums = true, returnImplicitlyUnwrapped = true; - boolean isUnclassed( Class type ) { - return notVoid(type) && swiftTypeFor(type, false, true).indexOf(Unclassed) != -1; + boolean isUnavailable( Class type ) { + return notVoid(type) && swiftTypeFor(type, false, true).indexOf(Unavailable) != -1; } static HashMap swiftKeywords = new HashMap() { @@ -100,6 +124,7 @@ boolean isUnclassed( Class type ) { put( Double.class.getName(), true ); put( Class.class.getName(), true ); put( Object.class.getName(), true ); + put( Enum.class.getName(), true ); put( String.class.getName(), true ); put( Comparable.class.getName(), true ); put( Error.class.getName(), true ); @@ -118,6 +143,7 @@ boolean isUnclassed( Class type ) { { put( Object.class.getName(), true ); put( Class.class.getName(), true ); + put( Enum.class.getName(), true ); put( Runnable.class.getName(), true ); put( Throwable.class.getName(), true ); put( Exception.class.getName(), true ); @@ -235,7 +261,7 @@ boolean isAdapter() { static int filesWritten = 0; static int frameworkLevel = 0; - static int unclassedReferences = 0; + static int UnavailableReferences = 0; static String invocation = "genswift.java", packageOrder, swiftSourceRoot, javaSourceRoot; @@ -334,8 +360,8 @@ public static void main( String args[] ) { catch ( IOException e ) {} } - int beforeReorder = unclassedReferences; - unclassedReferences = 0; + int beforeReorder = UnavailableReferences; + UnavailableReferences = 0; for ( int i=0; i "+unclassedReferences ); + print( "Reorder "+beforeReorder+" -> "+UnavailableReferences ); } } catch ( IOException e ) { @@ -361,7 +387,7 @@ public static void main( String args[] ) { StringBuilder code = new StringBuilder(); String pathToClass, className, classSuffix, currentFramework, visibility, classCacheVar; - boolean isInterface, isLost; + boolean isInterface, isEnum, isLost; Class clazz, superclazz; genswift( String pathToClass ) { @@ -392,19 +418,20 @@ boolean generate() throws Exception { visibility = "open "; superclazz = clazz.getSuperclass(); isInterface = clazz.isInterface(); + isEnum = isEnum( clazz ); code.append("\n/// generated by: "+invocation+" ///\n"); // code.append("\n/// JAVA_HOME: "+System.getenv("JAVA_HOME")+" ///\n"); // code.append("/// "+new java.util.Date()+" ///\n"); code.append("\n/// "+clazz+" ///\n"); - + isLost = false; String derivedFrom = ""; if (superclazz != null) { String sname = classTypeFor(superclazz, false, true); - isLost = sname.indexOf(Unclassed+"Object") != -1; + isLost = sname.indexOf(Unavailable+"Object") != -1; derivedFrom += ": " + sname; } else if (!isInterface) derivedFrom += ": JNIObject"; @@ -416,7 +443,7 @@ boolean generate() throws Exception { supr = supr.getSuperclass(); } - boolean hasUnclassed = false; + boolean hasUnavailable = false; for (Class intrface : clazz.getInterfaces()) { if ( interfacesChangingReturnTypeInSubclass( intrface ) ) continue; @@ -427,12 +454,12 @@ boolean generate() throws Exception { interfacesSoFar.add( intrface ); String name = classTypeFor(intrface, false, true); - boolean isUnclassed = name.indexOf(Unclassed+"Protocol") != -1; - if ( isUnclassed ) - if ( hasUnclassed ) + boolean isUnavailable = name.indexOf(Unavailable+"Protocol") != -1; + if ( isUnavailable ) + if ( hasUnavailable ) continue; else - hasUnclassed = true; + hasUnavailable = true; if (derivedFrom == "") derivedFrom += ": "; @@ -445,10 +472,28 @@ boolean generate() throws Exception { if (isInterface && derivedFrom == "") derivedFrom += ": JavaProtocol"; - code.append("\n"+(isInterface ? "public protocol" : "open class") + " " + - classSuffix+(isInterface?"" : "") + derivedFrom + " {\n\n"); - - if ( !isInterface ) { + code.append("\n"+(isEnum ? "public enum" : isInterface ? "public protocol" : "open class") + " " + + classSuffix+(isInterface?"" : "") + (isEnum ? ": Int, JNIObjectProtocol, JNIObjectInit" : derivedFrom) + " {\n\n"); + + if ( isEnum ) { + String cases = ""; + for ( Object constant : clazz.getEnumConstants() ) + cases += (cases == "" ? "" : ", ") + ((Enum)constant).name(); + code.append(" case "+cases+"\n\n"); + + code.append(" static let enumConstants = try! JavaClass.forName(\""+clazz.getName()+"\")\n" + + " .getEnumConstants()!.map { "+classSuffix+"Forward( javaObject: $0.javaObject ) }\n\n"); + + code.append(" public func underlier() -> "+classSuffix+"Forward"+" {\n"); + code.append(" return "+classSuffix+".enumConstants[self.rawValue]\n }\n\n"); + + code.append(" public func localJavaObject(_ locals: UnsafeMutablePointer<[jobject]>) -> jobject? {\n"); + code.append(" return underlier().localJavaObject( locals )\n }\n\n"); + + code.append(" public init( javaObject: jobject? ) {\n"); + code.append(" self = "+classSuffix+"( rawValue: JavaEnum( javaObject: javaObject ).ordinal() )!\n }\n\n"); + } + else if ( !isInterface ) { code.append(" public convenience init?( casting object: "+swiftTypeFor( java.lang.Object.class, false, true )+", _ file: StaticString = #file, _ line: Int = #line ) {\n"); code.append(" self.init( javaObject: nil )\n" ); if ( frameworkImports.indexOf("import java_lang") != -1 ) { @@ -463,20 +508,21 @@ boolean generate() throws Exception { } classCacheVar = classSuffix+"JNIClass"; - if ( !isInterface ) + if ( !isInterface && !isEnum ) code.append( " private static var "+classCacheVar+": jclass?\n\n" ); HashMap fieldsSeen = new HashMap(); findInterfaceMethods( clazz ); - generateFields( fieldsSeen, isInterface, clazz ); - - if ( !isInterface ) - for ( Class intrface : interfacesSoFar.toArray( new Class[ interfacesSoFar.size() ] ) ) - generateInterfaceFields( fieldsSeen, intrface ); + if ( !isEnum ) { + generateFields( fieldsSeen, isInterface, clazz ); + if ( !isInterface ) + for ( Class intrface : interfacesSoFar.toArray( new Class[ interfacesSoFar.size() ] ) ) + generateInterfaceFields( fieldsSeen, intrface ); - generateConstructors( pathToClass, classSuffix, false ); + generateConstructors( pathToClass, classSuffix, false ); + } generateMethods( clazz.getDeclaredMethods(), isInterface, fieldsSeen, classSuffix, false ); @@ -486,30 +532,31 @@ boolean generate() throws Exception { responsibles.add( method ); } - if ( !isInterface ) + if ( !isInterface && !isEnum ) addAnyMethodsDeclaredInProtocolsButNotDefined( isInterface, fieldsSeen, classSuffix ); code.append("}\n\n"); - if ( isInterface ) { + if ( isInterface || isEnum ) { String superProtocol = "JNIObjectForward"; if ( clazz.getInterfaces().length != 0 ) superProtocol = classTypeFor( clazz.getInterfaces()[0], false, true )+"Forward"; - code.append( "\nopen class "+classSuffix+"Forward: "+superProtocol+", "+classSuffix+" {\n\n" ); + code.append( "\nopen class "+classSuffix+"Forward: "+superProtocol+(isEnum ? "" : ", "+classSuffix)+" {\n\n" ); code.append( " private static var "+classCacheVar+": jclass?\n\n" ); - findInterfaceMethods( clazz ); + findInterfaceMethods( clazz ); - fieldsSeen = new HashMap(); - generateFields( fieldsSeen, false, clazz ); + fieldsSeen = new HashMap(); + generateFields( fieldsSeen, false, clazz ); boolean subinterface = clazz.getInterfaces().length == 1 && clazz.getDeclaredMethods().length == 0; - if ( !subinterface ) { + if ( !subinterface || isEnum ) { + isEnum = false; generateMethods( clazz.getMethods(), false, fieldsSeen, classSuffix+"Forward", false ); addAnyMethodsDeclaredInProtocolsButNotDefined( false, fieldsSeen, classSuffix+"Forward" ); } - code.append( "}\n\n\n" ); + code.append( "}\n\n" ); } if ( isInterface && supportsProxyCallback( clazz ) || isAdapter() || !responsibles.isEmpty() ) @@ -549,26 +596,40 @@ void save() throws IOException { int idcount = 0; void generateFields( HashMap fieldsSeen, boolean isInterface, Class clazz ) { - for (Field field : clazz.getDeclaredFields()) { - int mods = field.getModifiers(); + Field fields[] = clazz.getDeclaredFields(); + + if ( sortMembers ) + java.util.Arrays.sort( fields, new Comparator() { + @Override + public int compare(Field o1, Field o2) { + int statics = compareStatic( o1.getModifiers(), o2.getModifiers() ); + return statics != 0 ? statics : o1.getName().compareTo(o2.getName()); + } + } ); + + for (Field field : fields) { progress(field); code.append( " /// "+field+"\n\n" ); + int mods = field.getModifiers(); String fieldName = safe(field.getName()); boolean isFinal = Modifier.isFinal(mods); boolean isStatic = Modifier.isStatic(mods); - - boolean skipField = (fieldOverride( field, superclazz)) && isStatic || - !Modifier.isPublic(mods) && !Modifier.isProtected(mods) || fieldsSeen.containsKey(fieldName) || - fieldName.equals(classSuffix) || interfaceMethods.containsKey(fieldName+"()") || - isStatic && (Modifier.isProtected(mods) || isInterface || //// - superclazz == javax.swing.undo.AbstractUndoableEdit.class || - superclazz != null && superclazz.getSuperclass() == javax.swing.undo.AbstractUndoableEdit.class || - superclazz == javax.swing.plaf.basic.BasicComboBoxRenderer.class || - superclazz == javax.swing.border.TitledBorder.class); - if ( skipField ) - continue; + + if ( skipBecause( "field", field, new boolean [] { + !Modifier.isPublic(mods) && !Modifier.isProtected(mods), + fieldOverride( field, superclazz) && isStatic, + fieldsSeen.containsKey(fieldName), + fieldName.equals(classSuffix), + interfaceMethods.containsKey(fieldName+"()"), + isStatic && (Modifier.isProtected(mods) || isInterface /*|| //// + superclazz == javax.swing.undo.AbstractUndoableEdit.class || + superclazz != null && superclazz.getSuperclass() == javax.swing.undo.AbstractUndoableEdit.class || + superclazz == javax.swing.plaf.basic.BasicComboBoxRenderer.class || + superclazz == javax.swing.border.TitledBorder.class*/) + } ) ) + continue; fieldsSeen.put(fieldName, true); Class fieldType = field.getType(); @@ -604,15 +665,15 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl code.append( " {\n" ); code.append( " get {\n" ); - if ( !isStatic ) - code.append(" var __locals = [jobject]()\n"); - code.append( " let __value = JNIField.Get"+funcType( fieldType, mods )+"Field( "+fieldArgs+(isStatic?"":", locals: &__locals")+" )\n" ); - code.append( " return "+decoder( "__value", fieldType )+"\n" ); + code.append( " let __value = JNIField.Get"+funcType( fieldType, mods )+"Field( "+fieldArgs+" )\n" ); + if ( isObjectType( fieldType ) ) + code.append( " defer { JNI.DeleteLocalRef( __value ) }\n" ); + code.append( " return "+decoder( "__value", fieldType, "" )+"\n" ); code.append( " }\n" ); if (!isFinal) { code.append(" set(newValue) {\n"); code.append(" var __locals = [jobject]()\n"); - code.append(" let __value = " + encoder("newValue", fieldType, "&__locals") + "\n"); + code.append(" let __value = " + encoder("newValue", fieldType) + "\n"); code.append(" JNIField.Set" + funcType(fieldType, mods) + "Field( " + fieldArgs + ", value: __value" + encodeSuffix(fieldType) + ", locals: &__locals )\n"); code.append(" }\n"); @@ -628,19 +689,33 @@ void generateFields( HashMap fieldsSeen, boolean isInterface, Cl void generateConstructors( String pathToClass, String classSuffix, boolean isListenerBase ) { HashMap constructorSeen = new HashMap(); - - for (java.lang.reflect.Constructor _constructor : clazz.getDeclaredConstructors()) { + + java.lang.reflect.Constructor constructors[] = clazz.getDeclaredConstructors(); + + if ( sortMembers ) + java.util.Arrays.sort( constructors, new Comparator>() { + @Override + public int compare(java.lang.reflect.Constructor o1, java.lang.reflect.Constructor o2) { + return argsFor( newConstructor(o1), true, true, null ) + .compareTo(argsFor( newConstructor(o2), true, true, null )); + } + } ); + + for (java.lang.reflect.Constructor _constructor : constructors) { Constructor constructor = newConstructor( _constructor ); int mods = constructor.getModifiers(); progress(constructor); - code.append( " /// "+constructor.toString()+"\n\n" ); + code.append( " /// "+constructor+"\n\n" ); String namedSignature = argsFor( constructor, true, true, null ); - if ( !Modifier.isPublic(mods) && !Modifier.isProtected(mods) - || constructorSeen.containsKey(namedSignature) - || ambiguousInitialiser( constructor.toString() ) ) + if ( skipBecause( "init", constructor.constructor, new boolean [] { + !Modifier.isPublic(mods) && !Modifier.isProtected(mods), + constructorSeen.containsKey(namedSignature), + ambiguousInitialiser( constructor.toString() ) + } ) ) continue; + constructorSeen.put( namedSignature, true ); String methodIDVar = "new_MethodID_"+(++idcount); @@ -693,7 +768,7 @@ void generateConstructors( String pathToClass, String classSuffix, boolean isLis code.append( "\n public "+/*(unnamedOverride && !isLost && clazz != String.class || isListenerBase ? "override " : "")+*/ "convenience init("+argsFor( constructor, false, false, null )+")"+(canThrow?" throws":"")+" {\n" ); - code.append( " "+(canThrow?"try ":"")+"self.init("+passthroughArguments(constructor,null)+" )\n }\n" ); + code.append( " "+(canThrow?"try ":"")+"self.init("+passthroughArguments(constructor,null, "_")+" )\n }\n" ); constructorSeen.put( unnamedSigature, true ); } @@ -708,17 +783,26 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, HashMap methodsSeen = new HashMap(); boolean hasSubclassResponsibility = false; + + if ( sortMembers ) + java.util.Arrays.sort( methods, new Comparator() { + @Override + public int compare(java.lang.reflect.Method o1, java.lang.reflect.Method o2) { + int statics = compareStatic( o1.getModifiers(), o2.getModifiers() ); + return statics != 0 ? statics : swiftSignatureFor( newMethod(o1), isProtocol, true, true, null) + .compareTo(swiftSignatureFor( newMethod(o2), isProtocol, true, true, null)); + } + } ); for (java.lang.reflect.Method _method : methods ) { Method method = newMethod( _method ); int mods = method.getModifiers(); boolean isStatic = Modifier.isStatic(mods); - String methodIdent = method.toString(); progress(method); code.append( " /// "+method+"\n\n" ); - if ( subclassResponsibilities.containsKey(methodIdent) ) + if ( subclassResponsibilities.containsKey(method.toString()) ) hasSubclassResponsibility = true; java.lang.reflect.Method overridden = funcOverride(method.method, superclazz); @@ -732,29 +816,23 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, unnamedOverride = overridden != null; String methodName = method.getName(); - boolean fieldExists = fieldsSeen.containsKey(safe(methodName)) && method.getParameterCount() == 0; - boolean skipMethod = overridden != null && !isStatic && !isListenerBase - && !(isInterface && clazz.getInterfaces().length != 0 && isUnclassed(clazz.getInterfaces()[0])) - || !Modifier.isPublic(mods) && !Modifier.isProtected(mods) - || isInterface && (dontEnforceProtocol(clazz) - || awkwardMethodInProtocol(method) - || isUnclassed(method.getReturnType()) && clazz != java.lang.Runnable.class) - || methodName.startsWith("lambda$") || fieldExists; - - // argument names differ? String methodString = method.toString(); - if ( skipMethod && !methodString.equals("public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException") - && !methodString.equals("public java.util.Set java.util.HashMap.keySet()") ) { - print(methodName - + " skipped " + (overridden != null && !isStatic && !isListenerBase) - + " " + (!Modifier.isPublic(mods) && !Modifier.isProtected(mods)) - + " " + (isInterface && (dontEnforceProtocol(clazz) - || awkwardMethodInProtocol(method) || isUnclassed(method.getReturnType()))) - + " " + methodName.startsWith("lambda$") - + " " + fieldExists); - continue; - } + boolean fieldExists = fieldsSeen.containsKey(safe(methodName)) && method.getParameterCount() == 0; + if ( skipBecause( "method", method.method, new boolean [] { + !Modifier.isPublic(mods) && !Modifier.isProtected(mods), + overridden != null && !isStatic && !isListenerBase && !isUnavailable(superclazz) + && !(isInterface && clazz.getInterfaces().length != 0 + && isUnavailable(clazz.getInterfaces()[0])), + isInterface && (dontEnforceProtocol(clazz) + || awkwardMethodInProtocol(method) + || isUnavailable(method.getReturnType())), + methodName.startsWith("lambda$"), + fieldExists + } ) && !methodString.equals("public void javax.swing.text.PlainDocument.insertString(int,java.lang.String,javax.swing.text.AttributeSet) throws javax.swing.text.BadLocationException") + && !methodString.equals("public java.util.Set java.util.HashMap.keySet()") ) + continue; + String namedSignature = swiftSignatureFor( method, isProtocol, true, true, null); if ( methodsSeen.containsKey(namedSignature) ) continue; @@ -797,6 +875,10 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, if (isProtocol) code.append("\n"); + else if (isEnum) { + code.append(" {\n return "+(canThrow?"try ":"")+(isStatic ? classSuffix+"Forward." : "underlier().")); + code.append(safe(method.getName()) + "("+passthroughArguments(method, interfaceMethod, "")+" )\n }\n"); + } else { code.append(" {\n"); @@ -815,14 +897,14 @@ boolean generateMethods( java.lang.reflect.Method methods[], boolean isProtocol, code.append( "JNIMethod.Call"+funcType( returnType, mods )+"Method( "+methodArgs + ", args: &__args, locals: &__locals )\n" ); - if ( isObjectType( returnType ) ) // || returnType.isArray() && !returnType.getComponentType().isPrimitive() ) + if ( isObjectType( returnType ) ) code.append( " defer { JNI.DeleteLocalRef( __return ) }\n" ); if ( canThrow ) addThrowCode( method ); if ( notVoid ) - code.append(" return "+decoder( "__return", returnType)+"\n"); + code.append(" return "+decoder( "__return", returnType, "")+"\n"); } else if ( notVoid(returnType) ) { String passthrough = ""; @@ -852,7 +934,7 @@ else if ( notVoid(returnType) ) { else { code.append(" {\n"); code.append(" "+(notVoid?"return ":"") + (canThrow?"try ":"") + - safe(method.getName()) + "("+passthroughArguments(method, interfaceMethod)+" )\n"); + safe(method.getName()) + "("+passthroughArguments(method, interfaceMethod, "_")+" )\n"); code.append(" }\n" ); } } @@ -871,6 +953,16 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect java.lang.reflect.Method methods[] = responsibles.length != 0 ? responsibles : clazz.getMethods(); ArrayList methodsCallingBack = new ArrayList(); + if ( sortMembers ) + java.util.Arrays.sort( methods, new Comparator() { + @Override + public int compare(java.lang.reflect.Method o1, java.lang.reflect.Method o2) { + int statics = compareStatic( o1.getModifiers(), o2.getModifiers() ); + return statics != 0 ? statics : swiftSignatureFor( newMethod(o1), true, true, true, null) + .compareTo(swiftSignatureFor( newMethod(o2), true, true, true, null)); + } + } ); + for (int i = 0; i < methods.length; i++) { Method method = newMethod( methods[i] ); if ( skipCallbackMethod( method ) ) @@ -887,23 +979,26 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect String passthrough = ""; for (Parameter param : method.getParameters()) passthrough += (passthrough == ""?" ":", ") + safe(param.getName())+": " +///// - decoder( safe(param.getName()), param.getType() );//+(!p.getType().isPrimitive()?"!":""); + decoder( safe(param.getName()), param.getType(), ", consume: false" );//+(!p.getType().isPrimitive()?"!":""); String call = classSuffix + "Local_.swiftObject( jniEnv: __env, javaObject: __this, swiftObject: __swiftObject )." + method.getName() + "(" + passthrough + " )"; boolean rethrow = method.getExceptionTypes().length != 0; + String indent = ""; if ( rethrow ) { call = "try " + call; - code.append(" do {\n"); + code.append(" do {\n"); + indent = " "; } Class returnType = method.getReturnType(); - if ( notVoid(returnType) ) + boolean notVoid = notVoid(returnType); + if ( notVoid ) call = "let __return = "+call; - code.append(" JNI.inNative = true;\n " + call + "\n JNI.inNative = false;\n"); - if ( notVoid(returnType) ) { - code.append(" var locals = [jobject]()\n"); - code.append(" return JNI.check( "+( - encoder("__return", returnType, "&locals") + encodeSuffix(returnType))+", &locals, removeLast: true )\n"); + code.append(indent+" "+call+"\n"); + if ( notVoid ) { + code.append(indent+" var __locals = [jobject]()\n"); + code.append(indent+" return JNI.check( "+( + encoder("__return", returnType) + encodeSuffix(returnType))+", &__locals, removeLast: true )\n"); } if ( rethrow ) { @@ -911,11 +1006,11 @@ void generateCallbackBase( HashMap fieldsSeen, java.lang.reflect code.append(" }\n"); code.append(" catch let exception as Throwable {\n"); code.append(" _ = exception.withJavaObject { JNI.api.Throw( JNI.env, $0 ) }\n"); - if ( notVoid(returnType) ) + if ( notVoid ) code.append(" return "+dflt+"\n"); code.append(" }\n catch {\n"); code.append(" _ = Exception(\"Unknown exception\").withJavaObject { JNI.api.Throw( JNI.env, $0 ) }\n"); - if ( notVoid(returnType) ) + if ( notVoid ) code.append(" return "+dflt+"\n"); code.append(" }\n"); } @@ -1075,7 +1170,7 @@ void generateJavaProxyStub( java.lang.reflect.Method methods[] ) throws IOExcept args += (args == ""?" ":", ")+safe(param.getName()); argsSwift = " __swiftObject"+(args==""?" ":",")+args; - if ( !isInterface ) { + if ( !isInterface && !Modifier.isAbstract(method.getModifiers()) ) { java.append(" if ( !"+enteredName+" ) {\n"); java.append(" "+enteredName+" = true;\n"); java.append(" "+assign+"__"+methodName+"("+argsSwift+");\n"); @@ -1127,6 +1222,11 @@ String longJavaArgs( Executable executable ) { } return args == "" ? "" : args + " "; } + + int compareStatic( int m1, int m2 ) { + return Modifier.isStatic( m1 ) && !Modifier.isStatic( m2 ) ? -1 : + Modifier.isStatic( m1 ) == Modifier.isStatic( m2 ) ? 0 : 1; + } boolean interfacesChangingReturnTypeInSubclass( Class intrface ) { return intrface == java.util.SortedSet.class @@ -1159,9 +1259,9 @@ boolean ambiguousInitialiser( String signature ) { } boolean redundantConformance(Class prospectiveInterface, Class interfaces[]) { - boolean prospectiveUnclassed = isUnclassed(prospectiveInterface); + boolean prospectiveUnavailable = isUnavailable(prospectiveInterface); for (Class intrface : interfaces) - if ( prospectiveInterface == intrface || prospectiveUnclassed && isUnclassed(intrface) || + if ( prospectiveInterface == intrface || prospectiveUnavailable && isUnavailable(intrface) || redundantConformance(prospectiveInterface, intrface.getInterfaces()) ) return true; return false; @@ -1170,7 +1270,7 @@ boolean redundantConformance(Class prospectiveInterface, Class interfaces[ boolean skipCallbackMethod( Method method ) { return awkwardMethodInProtocol( method ) || Modifier.isFinal(method.getModifiers()) || !isInterface && !subclassResponsibilities.containsKey(method.toString()) && !isAdapter() - || isUnclassed(method.getReturnType()) || Modifier.isStatic(method.getModifiers()); + || isUnavailable(method.getReturnType()) || Modifier.isStatic(method.getModifiers()); } HashMap interfaceMethods = new HashMap(); @@ -1201,17 +1301,18 @@ void addAnyMethodsDeclaredInProtocolsButNotDefined( boolean isProtocol, HashMap< String functionHeader( Parameter parameters[], Method interfaceMethod, int extra ) { StringBuilder setup = new StringBuilder(); - setup.append( " var __args = [jvalue]( repeating: jvalue(), count: "+Math.max(1,parameters.length+extra)+" )\n" ); setup.append( " var __locals = [jobject]()\n" ); + setup.append( " var __args = [jvalue]( repeating: jvalue(), count: "+Math.max(1,parameters.length+extra)+" )\n" ); for ( int i=0 ; i type ) { return "."+jvalueField; } - String encoder( String var, Class type, String locals ) { + String encoder( String var, Class type ) { if ( type == java.lang.Float.class ) - return "JNIType.toJavaFloat( value: "+var+", locals: "+locals+" )"; - boolean isMap = java.util.Map.class.isAssignableFrom(type); - return "JNIType.toJava( value: " + var + - (isMap ? ", mapClass: \""+type.getName().replace(".", "/")+"\"" : "") + ", locals: "+locals+" )"; + return "JNIType.toJavaFloat( value: "+var+", locals: &__locals )"; + String typeName = type.getName(); + if ( type.isPrimitive() ) { + if ( typeName.equals("boolean") ) + var = "jboolean("+var+" ? JNI_TRUE : JNI_FALSE)"; + if ( typeName.equals("int") ) + var = "jint("+var+")"; + return "jvalue( "+jvalueFields.get( typeName )+": "+var+" )"; + } + return "JNIType.toJava( value: " + var + (java.util.Map.class.isAssignableFrom(type) ? + ", mapClass: \""+typeName.replace(".", "/")+"\"" : "") + ", locals: &__locals )"; } - String decoder( String var, Class type ) { + String decoder( String var, Class type, String consume ) { if ( type == java.lang.Float.class ) - return "JNIType.toSwiftFloat( from: "+var+" )"; + return "JNIType.toSwiftFloat( from: "+var+consume+" )"; + if ( type.isPrimitive() ) { + if ( type.getName().equals("boolean") ) + return var+" != jboolean(JNI_FALSE)"; + if ( type.getName().equals("int") ) + return "Int("+var+")"; + return var; + } String swiftType = swiftTypeFor(type, false, false, true, false, true); - return isObjectType( type ) && !java.util.Map.class.isAssignableFrom(type) ? - var + " != nil ? " + swiftType+"( javaObject: " + var + " ) : nil" : - "JNIType.toSwift( type: "+swiftType+"(), from: " + var + " )"; + return isObjectType( type ) ? + var + " != nil ? " + swiftType + "( javaObject: "+var+" ) : nil" : + "JNIType.toSwift( type: "+swiftType+".self, from: "+var+consume+" )"; } boolean isObjectType( Class type ) { - return !type.isPrimitive() && type != String.class && !type.isArray(); + return !type.isPrimitive() && !type.isArray() && !java.util.Map.class.isAssignableFrom(type); + } + + boolean isEnum( Class type ) { + return convertEnums && type.isEnum() && !isUnavailable( type ); } String argsFor( Executable e, boolean anon, boolean named, Method interfaceMethod ) { @@ -1353,7 +1486,7 @@ String swiftSignatureFor( Method method, boolean isProtocol, boolean anon, boole if ( notVoid( returnType ) && !anon ) ret += " -> " + swiftTypeFor( returnType, true, false ); boolean isStatic = Modifier.isStatic(method.getModifiers()); - return (isProtocol ? "" : visibility)+(isStatic ? "class ": "")+ + return (isProtocol ? "" : isEnum ? "public " : visibility)+(isStatic ? isEnum ? "static " : "class ": "")+ "func "+safe(method.getName())+"("+argsFor( method, anon, named, interfaceMethod )+")" + ret; } @@ -1404,7 +1537,8 @@ else if ( java.util.Map.class.isAssignableFrom(type) ) { } } - return decl + (isReturn && !type.isPrimitive() ? isArg && type != java.lang.Float.class ? "?" : "!" : ""); + return decl + (isReturn && !type.isPrimitive() ? + isArg && type != java.lang.Float.class || !returnImplicitlyUnwrapped ? "?" : "!" : ""); } String classTypeFor( Class type, boolean anon, boolean prefix ) { @@ -1415,8 +1549,8 @@ String classTypeFor( Class type, boolean anon, boolean prefix ) { crossReference( currentFramework, frameworkPrefix ); if ( lostType( type ) || excludeFromCodeGeneration( type ) ) { - unclassedReferences++; - return (anon?"":"/* "+typeName+" */ ") + Unclassed + (type.isInterface() ? "Protocol" : "Object"); + UnavailableReferences++; + return (anon?"":"/* "+type+" */ ") + Unavailable + (type.isEnum() ? "Enum" : type.isInterface() ? "Protocol" : "Object"); } if ( !frameworkPrefix.equals(currentFramework) && !type.isPrimitive() ) { diff --git a/src/org/swiftjava/com_apple/AboutHandlerProxy.java b/src/org/swiftjava/com_apple/AboutHandlerProxy.java index 6d41f7f..959c11c 100644 --- a/src/org/swiftjava/com_apple/AboutHandlerProxy.java +++ b/src/org/swiftjava/com_apple/AboutHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.AboutHandler /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AboutHandlerProxy implements com.apple.eawt.AboutHandler { + // address of proxy object long __swiftObject; AboutHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/AppEventListenerProxy.java b/src/org/swiftjava/com_apple/AppEventListenerProxy.java index ed50914..149d890 100644 --- a/src/org/swiftjava/com_apple/AppEventListenerProxy.java +++ b/src/org/swiftjava/com_apple/AppEventListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.AppEventListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AppEventListenerProxy implements com.apple.eawt.AppEventListener { + // address of proxy object long __swiftObject; AppEventListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java b/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java index 580f6bf..eac1aa4 100644 --- a/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java +++ b/src/org/swiftjava/com_apple/AppForegroundListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.AppForegroundListener /// package org.swiftjava.com_apple; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class AppForegroundListenerProxy implements com.apple.eawt.AppForegroundListener { + // address of proxy object long __swiftObject; AppForegroundListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.apple.eawt.AppForegroundListener.appRaisedToForeground(com.apple.eawt.AppEvent$AppForegroundEvent) - - public native void __appRaisedToForeground( long __swiftObject, com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); - - public void appRaisedToForeground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ) { - __appRaisedToForeground( __swiftObject, arg0 ); - } - /// public abstract void com.apple.eawt.AppForegroundListener.appMovedToBackground(com.apple.eawt.AppEvent$AppForegroundEvent) public native void __appMovedToBackground( long __swiftObject, com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); @@ -28,6 +23,14 @@ public void appMovedToBackground( com.apple.eawt.AppEvent.AppForegroundEvent arg __appMovedToBackground( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.AppForegroundListener.appRaisedToForeground(com.apple.eawt.AppEvent$AppForegroundEvent) + + public native void __appRaisedToForeground( long __swiftObject, com.apple.eawt.AppEvent.AppForegroundEvent arg0 ); + + public void appRaisedToForeground( com.apple.eawt.AppEvent.AppForegroundEvent arg0 ) { + __appRaisedToForeground( __swiftObject, arg0 ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java b/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java index c6b5cc4..431dfee 100644 --- a/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java +++ b/src/org/swiftjava/com_apple/AppHiddenListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.AppHiddenListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AppHiddenListenerProxy implements com.apple.eawt.AppHiddenListener { + // address of proxy object long __swiftObject; AppHiddenListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java b/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java index a6353b1..6f36ee4 100644 --- a/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java +++ b/src/org/swiftjava/com_apple/AppReOpenedListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.AppReOpenedListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AppReOpenedListenerProxy implements com.apple.eawt.AppReOpenedListener { + // address of proxy object long __swiftObject; AppReOpenedListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java b/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java index 82113d8..8de94a0 100644 --- a/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java +++ b/src/org/swiftjava/com_apple/ApplicationAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class com.apple.eawt.ApplicationAdapter /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ApplicationAdapterProxy extends com.apple.eawt.ApplicationAdapter { + // address of proxy object long __swiftObject; /// public com.apple.eawt.ApplicationAdapter() @@ -15,17 +18,50 @@ public class ApplicationAdapterProxy extends com.apple.eawt.ApplicationAdapter { this.__swiftObject = __swiftObject; } + /// public boolean java.lang.Object.equals(java.lang.Object) + + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + + boolean entered_equals_0; + + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; + } + else + return super.equals( arg0 ); + } + + /// public void com.apple.eawt.ApplicationAdapter.handleAbout(com.apple.eawt.ApplicationEvent) + + public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + boolean entered_handleAbout_1; + + public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { + if ( !entered_handleAbout_1 ) { + entered_handleAbout_1 = true; + __handleAbout( __swiftObject, arg0); + entered_handleAbout_1 = false; + } + else + super.handleAbout( arg0 ); + } + /// public void com.apple.eawt.ApplicationAdapter.handleOpenApplication(com.apple.eawt.ApplicationEvent) public native void __handleOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleOpenApplication_0; + boolean entered_handleOpenApplication_2; public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleOpenApplication_0 ) { - entered_handleOpenApplication_0 = true; + if ( !entered_handleOpenApplication_2 ) { + entered_handleOpenApplication_2 = true; __handleOpenApplication( __swiftObject, arg0); - entered_handleOpenApplication_0 = false; + entered_handleOpenApplication_2 = false; } else super.handleOpenApplication( arg0 ); @@ -35,29 +71,45 @@ public void handleOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handleOpenFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleOpenFile_1; + boolean entered_handleOpenFile_3; public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleOpenFile_1 ) { - entered_handleOpenFile_1 = true; + if ( !entered_handleOpenFile_3 ) { + entered_handleOpenFile_3 = true; __handleOpenFile( __swiftObject, arg0); - entered_handleOpenFile_1 = false; + entered_handleOpenFile_3 = false; } else super.handleOpenFile( arg0 ); } + /// public void com.apple.eawt.ApplicationAdapter.handlePreferences(com.apple.eawt.ApplicationEvent) + + public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + boolean entered_handlePreferences_4; + + public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { + if ( !entered_handlePreferences_4 ) { + entered_handlePreferences_4 = true; + __handlePreferences( __swiftObject, arg0); + entered_handlePreferences_4 = false; + } + else + super.handlePreferences( arg0 ); + } + /// public void com.apple.eawt.ApplicationAdapter.handlePrintFile(com.apple.eawt.ApplicationEvent) public native void __handlePrintFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handlePrintFile_2; + boolean entered_handlePrintFile_5; public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handlePrintFile_2 ) { - entered_handlePrintFile_2 = true; + if ( !entered_handlePrintFile_5 ) { + entered_handlePrintFile_5 = true; __handlePrintFile( __swiftObject, arg0); - entered_handlePrintFile_2 = false; + entered_handlePrintFile_5 = false; } else super.handlePrintFile( arg0 ); @@ -67,13 +119,13 @@ public void handlePrintFile( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handleQuit( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleQuit_3; + boolean entered_handleQuit_6; public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleQuit_3 ) { - entered_handleQuit_3 = true; + if ( !entered_handleQuit_6 ) { + entered_handleQuit_6 = true; __handleQuit( __swiftObject, arg0); - entered_handleQuit_3 = false; + entered_handleQuit_6 = false; } else super.handleQuit( arg0 ); @@ -83,101 +135,52 @@ public void handleQuit( com.apple.eawt.ApplicationEvent arg0 ) { public native void __handleReOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - boolean entered_handleReOpenApplication_4; + boolean entered_handleReOpenApplication_7; public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleReOpenApplication_4 ) { - entered_handleReOpenApplication_4 = true; + if ( !entered_handleReOpenApplication_7 ) { + entered_handleReOpenApplication_7 = true; __handleReOpenApplication( __swiftObject, arg0); - entered_handleReOpenApplication_4 = false; + entered_handleReOpenApplication_7 = false; } else super.handleReOpenApplication( arg0 ); } - /// public void com.apple.eawt.ApplicationAdapter.handleAbout(com.apple.eawt.ApplicationEvent) - - public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - boolean entered_handleAbout_5; - - public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handleAbout_5 ) { - entered_handleAbout_5 = true; - __handleAbout( __swiftObject, arg0); - entered_handleAbout_5 = false; - } - else - super.handleAbout( arg0 ); - } - - /// public void com.apple.eawt.ApplicationAdapter.handlePreferences(com.apple.eawt.ApplicationEvent) - - public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - boolean entered_handlePreferences_6; - - public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { - if ( !entered_handlePreferences_6 ) { - entered_handlePreferences_6 = true; - __handlePreferences( __swiftObject, arg0); - entered_handlePreferences_6 = false; - } - else - super.handlePreferences( arg0 ); - } - - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public native int java.lang.Object.hashCode() - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native int __hashCode( long __swiftObject ); - boolean entered_equals_7; + boolean entered_hashCode_8; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_7 ) { - entered_equals_7 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_7 = false; + public int hashCode() { + if ( !entered_hashCode_8 ) { + entered_hashCode_8 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_8 = false; return __return; } else - return super.equals( arg0 ); + return super.hashCode( ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_8; + boolean entered_toString_9; public java.lang.String toString() { - if ( !entered_toString_8 ) { - entered_toString_8 = true; + if ( !entered_toString_9 ) { + entered_toString_9 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_8 = false; + entered_toString_9 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_9; - - public int hashCode() { - if ( !entered_hashCode_9 ) { - entered_hashCode_9 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_9 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/ApplicationListenerProxy.java b/src/org/swiftjava/com_apple/ApplicationListenerProxy.java index c2313bd..ae64196 100644 --- a/src/org/swiftjava/com_apple/ApplicationListenerProxy.java +++ b/src/org/swiftjava/com_apple/ApplicationListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.ApplicationListener /// package org.swiftjava.com_apple; @@ -6,12 +8,21 @@ @SuppressWarnings("JniMissingFunction") public class ApplicationListenerProxy implements com.apple.eawt.ApplicationListener { + // address of proxy object long __swiftObject; ApplicationListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } + /// public abstract void com.apple.eawt.ApplicationListener.handleAbout(com.apple.eawt.ApplicationEvent) + + public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { + __handleAbout( __swiftObject, arg0 ); + } + /// public abstract void com.apple.eawt.ApplicationListener.handleOpenApplication(com.apple.eawt.ApplicationEvent) public native void __handleOpenApplication( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); @@ -28,6 +39,14 @@ public void handleOpenFile( com.apple.eawt.ApplicationEvent arg0 ) { __handleOpenFile( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.ApplicationListener.handlePreferences(com.apple.eawt.ApplicationEvent) + + public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); + + public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { + __handlePreferences( __swiftObject, arg0 ); + } + /// public abstract void com.apple.eawt.ApplicationListener.handlePrintFile(com.apple.eawt.ApplicationEvent) public native void __handlePrintFile( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); @@ -52,22 +71,6 @@ public void handleReOpenApplication( com.apple.eawt.ApplicationEvent arg0 ) { __handleReOpenApplication( __swiftObject, arg0 ); } - /// public abstract void com.apple.eawt.ApplicationListener.handleAbout(com.apple.eawt.ApplicationEvent) - - public native void __handleAbout( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - public void handleAbout( com.apple.eawt.ApplicationEvent arg0 ) { - __handleAbout( __swiftObject, arg0 ); - } - - /// public abstract void com.apple.eawt.ApplicationListener.handlePreferences(com.apple.eawt.ApplicationEvent) - - public native void __handlePreferences( long __swiftObject, com.apple.eawt.ApplicationEvent arg0 ); - - public void handlePreferences( com.apple.eawt.ApplicationEvent arg0 ) { - __handlePreferences( __swiftObject, arg0 ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/FullScreenAdapterProxy.java b/src/org/swiftjava/com_apple/FullScreenAdapterProxy.java index c70a1d6..4feed5b 100644 --- a/src/org/swiftjava/com_apple/FullScreenAdapterProxy.java +++ b/src/org/swiftjava/com_apple/FullScreenAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class com.apple.eawt.FullScreenAdapter /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class FullScreenAdapterProxy extends com.apple.eawt.FullScreenAdapter { + // address of proxy object long __swiftObject; /// public com.apple.eawt.FullScreenAdapter() @@ -15,119 +18,119 @@ public class FullScreenAdapterProxy extends com.apple.eawt.FullScreenAdapter { this.__swiftObject = __swiftObject; } - /// public void com.apple.eawt.FullScreenAdapter.windowEnteringFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __windowEnteringFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_windowEnteringFullScreen_0; + boolean entered_equals_0; - public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - if ( !entered_windowEnteringFullScreen_0 ) { - entered_windowEnteringFullScreen_0 = true; - __windowEnteringFullScreen( __swiftObject, arg0); - entered_windowEnteringFullScreen_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.windowEnteringFullScreen( arg0 ); + return super.equals( arg0 ); } - /// public void com.apple.eawt.FullScreenAdapter.windowEnteredFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) + /// public native int java.lang.Object.hashCode() - public native void __windowEnteredFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native int __hashCode( long __swiftObject ); - boolean entered_windowEnteredFullScreen_1; + boolean entered_hashCode_1; - public void windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - if ( !entered_windowEnteredFullScreen_1 ) { - entered_windowEnteredFullScreen_1 = true; - __windowEnteredFullScreen( __swiftObject, arg0); - entered_windowEnteredFullScreen_1 = false; + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; } else - super.windowEnteredFullScreen( arg0 ); + return super.hashCode( ); } - /// public void com.apple.eawt.FullScreenAdapter.windowExitingFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) + /// public java.lang.String java.lang.Object.toString() - public native void __windowExitingFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native java.lang.String __toString( long __swiftObject ); - boolean entered_windowExitingFullScreen_2; + boolean entered_toString_2; - public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - if ( !entered_windowExitingFullScreen_2 ) { - entered_windowExitingFullScreen_2 = true; - __windowExitingFullScreen( __swiftObject, arg0); - entered_windowExitingFullScreen_2 = false; + public java.lang.String toString() { + if ( !entered_toString_2 ) { + entered_toString_2 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_2 = false; + return __return; } else - super.windowExitingFullScreen( arg0 ); + return super.toString( ); } - /// public void com.apple.eawt.FullScreenAdapter.windowExitedFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) + /// public void com.apple.eawt.FullScreenAdapter.windowEnteredFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowExitedFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowEnteredFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); - boolean entered_windowExitedFullScreen_3; + boolean entered_windowEnteredFullScreen_3; - public void windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - if ( !entered_windowExitedFullScreen_3 ) { - entered_windowExitedFullScreen_3 = true; - __windowExitedFullScreen( __swiftObject, arg0); - entered_windowExitedFullScreen_3 = false; + public void windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { + if ( !entered_windowEnteredFullScreen_3 ) { + entered_windowEnteredFullScreen_3 = true; + __windowEnteredFullScreen( __swiftObject, arg0); + entered_windowEnteredFullScreen_3 = false; } else - super.windowExitedFullScreen( arg0 ); + super.windowEnteredFullScreen( arg0 ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void com.apple.eawt.FullScreenAdapter.windowEnteringFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __windowEnteringFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); - boolean entered_equals_4; + boolean entered_windowEnteringFullScreen_4; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_4 ) { - entered_equals_4 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_4 = false; - return __return; + public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { + if ( !entered_windowEnteringFullScreen_4 ) { + entered_windowEnteringFullScreen_4 = true; + __windowEnteringFullScreen( __swiftObject, arg0); + entered_windowEnteringFullScreen_4 = false; } else - return super.equals( arg0 ); + super.windowEnteringFullScreen( arg0 ); } - /// public java.lang.String java.lang.Object.toString() + /// public void com.apple.eawt.FullScreenAdapter.windowExitedFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native java.lang.String __toString( long __swiftObject ); + public native void __windowExitedFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); - boolean entered_toString_5; + boolean entered_windowExitedFullScreen_5; - public java.lang.String toString() { - if ( !entered_toString_5 ) { - entered_toString_5 = true; - java.lang.String __return = __toString( __swiftObject ); - entered_toString_5 = false; - return __return; + public void windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { + if ( !entered_windowExitedFullScreen_5 ) { + entered_windowExitedFullScreen_5 = true; + __windowExitedFullScreen( __swiftObject, arg0); + entered_windowExitedFullScreen_5 = false; } else - return super.toString( ); + super.windowExitedFullScreen( arg0 ); } - /// public native int java.lang.Object.hashCode() + /// public void com.apple.eawt.FullScreenAdapter.windowExitingFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native int __hashCode( long __swiftObject ); + public native void __windowExitingFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); - boolean entered_hashCode_6; + boolean entered_windowExitingFullScreen_6; - public int hashCode() { - if ( !entered_hashCode_6 ) { - entered_hashCode_6 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_6 = false; - return __return; + public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { + if ( !entered_windowExitingFullScreen_6 ) { + entered_windowExitingFullScreen_6 = true; + __windowExitingFullScreen( __swiftObject, arg0); + entered_windowExitingFullScreen_6 = false; } else - return super.hashCode( ); + super.windowExitingFullScreen( arg0 ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/com_apple/FullScreenListenerProxy.java b/src/org/swiftjava/com_apple/FullScreenListenerProxy.java index 0f04291..345bdae 100644 --- a/src/org/swiftjava/com_apple/FullScreenListenerProxy.java +++ b/src/org/swiftjava/com_apple/FullScreenListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.FullScreenListener /// package org.swiftjava.com_apple; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class FullScreenListenerProxy implements com.apple.eawt.FullScreenListener { + // address of proxy object long __swiftObject; FullScreenListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.apple.eawt.FullScreenListener.windowEnteringFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - - public native void __windowEnteringFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); - - public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - __windowEnteringFullScreen( __swiftObject, arg0 ); - } - /// public abstract void com.apple.eawt.FullScreenListener.windowEnteredFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) public native void __windowEnteredFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); @@ -28,12 +23,12 @@ public void windowEnteredFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg __windowEnteredFullScreen( __swiftObject, arg0 ); } - /// public abstract void com.apple.eawt.FullScreenListener.windowExitingFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) + /// public abstract void com.apple.eawt.FullScreenListener.windowEnteringFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) - public native void __windowExitingFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + public native void __windowEnteringFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); - public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { - __windowExitingFullScreen( __swiftObject, arg0 ); + public void windowEnteringFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { + __windowEnteringFullScreen( __swiftObject, arg0 ); } /// public abstract void com.apple.eawt.FullScreenListener.windowExitedFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) @@ -44,6 +39,14 @@ public void windowExitedFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 __windowExitedFullScreen( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.FullScreenListener.windowExitingFullScreen(com.apple.eawt.AppEvent$FullScreenEvent) + + public native void __windowExitingFullScreen( long __swiftObject, com.apple.eawt.AppEvent.FullScreenEvent arg0 ); + + public void windowExitingFullScreen( com.apple.eawt.AppEvent.FullScreenEvent arg0 ) { + __windowExitingFullScreen( __swiftObject, arg0 ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/GestureAdapterProxy.java b/src/org/swiftjava/com_apple/GestureAdapterProxy.java index d3be145..d096144 100644 --- a/src/org/swiftjava/com_apple/GestureAdapterProxy.java +++ b/src/org/swiftjava/com_apple/GestureAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class com.apple.eawt.event.GestureAdapter /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class GestureAdapterProxy extends com.apple.eawt.event.GestureAdapter { + // address of proxy object long __swiftObject; /// public com.apple.eawt.event.GestureAdapter() @@ -15,20 +18,21 @@ public class GestureAdapterProxy extends com.apple.eawt.event.GestureAdapter { this.__swiftObject = __swiftObject; } - /// public void com.apple.eawt.event.GestureAdapter.rotate(com.apple.eawt.event.RotationEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __rotate( long __swiftObject, com.apple.eawt.event.RotationEvent arg0 ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_rotate_0; + boolean entered_equals_0; - public void rotate( com.apple.eawt.event.RotationEvent arg0 ) { - if ( !entered_rotate_0 ) { - entered_rotate_0 = true; - __rotate( __swiftObject, arg0); - entered_rotate_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.rotate( arg0 ); + return super.equals( arg0 ); } /// public void com.apple.eawt.event.GestureAdapter.gestureBegan(com.apple.eawt.event.GesturePhaseEvent) @@ -63,33 +67,66 @@ public void gestureEnded( com.apple.eawt.event.GesturePhaseEvent arg0 ) { super.gestureEnded( arg0 ); } + /// public native int java.lang.Object.hashCode() + + public native int __hashCode( long __swiftObject ); + + boolean entered_hashCode_3; + + public int hashCode() { + if ( !entered_hashCode_3 ) { + entered_hashCode_3 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_3 = false; + return __return; + } + else + return super.hashCode( ); + } + /// public void com.apple.eawt.event.GestureAdapter.magnify(com.apple.eawt.event.MagnificationEvent) public native void __magnify( long __swiftObject, com.apple.eawt.event.MagnificationEvent arg0 ); - boolean entered_magnify_3; + boolean entered_magnify_4; public void magnify( com.apple.eawt.event.MagnificationEvent arg0 ) { - if ( !entered_magnify_3 ) { - entered_magnify_3 = true; + if ( !entered_magnify_4 ) { + entered_magnify_4 = true; __magnify( __swiftObject, arg0); - entered_magnify_3 = false; + entered_magnify_4 = false; } else super.magnify( arg0 ); } + /// public void com.apple.eawt.event.GestureAdapter.rotate(com.apple.eawt.event.RotationEvent) + + public native void __rotate( long __swiftObject, com.apple.eawt.event.RotationEvent arg0 ); + + boolean entered_rotate_5; + + public void rotate( com.apple.eawt.event.RotationEvent arg0 ) { + if ( !entered_rotate_5 ) { + entered_rotate_5 = true; + __rotate( __swiftObject, arg0); + entered_rotate_5 = false; + } + else + super.rotate( arg0 ); + } + /// public void com.apple.eawt.event.GestureAdapter.swipedDown(com.apple.eawt.event.SwipeEvent) public native void __swipedDown( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); - boolean entered_swipedDown_4; + boolean entered_swipedDown_6; public void swipedDown( com.apple.eawt.event.SwipeEvent arg0 ) { - if ( !entered_swipedDown_4 ) { - entered_swipedDown_4 = true; + if ( !entered_swipedDown_6 ) { + entered_swipedDown_6 = true; __swipedDown( __swiftObject, arg0); - entered_swipedDown_4 = false; + entered_swipedDown_6 = false; } else super.swipedDown( arg0 ); @@ -99,13 +136,13 @@ public void swipedDown( com.apple.eawt.event.SwipeEvent arg0 ) { public native void __swipedLeft( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); - boolean entered_swipedLeft_5; + boolean entered_swipedLeft_7; public void swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ) { - if ( !entered_swipedLeft_5 ) { - entered_swipedLeft_5 = true; + if ( !entered_swipedLeft_7 ) { + entered_swipedLeft_7 = true; __swipedLeft( __swiftObject, arg0); - entered_swipedLeft_5 = false; + entered_swipedLeft_7 = false; } else super.swipedLeft( arg0 ); @@ -115,13 +152,13 @@ public void swipedLeft( com.apple.eawt.event.SwipeEvent arg0 ) { public native void __swipedRight( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); - boolean entered_swipedRight_6; + boolean entered_swipedRight_8; public void swipedRight( com.apple.eawt.event.SwipeEvent arg0 ) { - if ( !entered_swipedRight_6 ) { - entered_swipedRight_6 = true; + if ( !entered_swipedRight_8 ) { + entered_swipedRight_8 = true; __swipedRight( __swiftObject, arg0); - entered_swipedRight_6 = false; + entered_swipedRight_8 = false; } else super.swipedRight( arg0 ); @@ -131,69 +168,35 @@ public void swipedRight( com.apple.eawt.event.SwipeEvent arg0 ) { public native void __swipedUp( long __swiftObject, com.apple.eawt.event.SwipeEvent arg0 ); - boolean entered_swipedUp_7; + boolean entered_swipedUp_9; public void swipedUp( com.apple.eawt.event.SwipeEvent arg0 ) { - if ( !entered_swipedUp_7 ) { - entered_swipedUp_7 = true; + if ( !entered_swipedUp_9 ) { + entered_swipedUp_9 = true; __swipedUp( __swiftObject, arg0); - entered_swipedUp_7 = false; + entered_swipedUp_9 = false; } else super.swipedUp( arg0 ); } - /// public boolean java.lang.Object.equals(java.lang.Object) - - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - - boolean entered_equals_8; - - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_8 ) { - entered_equals_8 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_8 = false; - return __return; - } - else - return super.equals( arg0 ); - } - /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_9; + boolean entered_toString_10; public java.lang.String toString() { - if ( !entered_toString_9 ) { - entered_toString_9 = true; + if ( !entered_toString_10 ) { + entered_toString_10 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_9 = false; + entered_toString_10 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_10; - - public int hashCode() { - if ( !entered_hashCode_10 ) { - entered_hashCode_10 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_10 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/GestureListenerProxy.java b/src/org/swiftjava/com_apple/GestureListenerProxy.java index c085cfc..34548f3 100644 --- a/src/org/swiftjava/com_apple/GestureListenerProxy.java +++ b/src/org/swiftjava/com_apple/GestureListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.event.GestureListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class GestureListenerProxy implements com.apple.eawt.event.GestureListener { + // address of proxy object long __swiftObject; GestureListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java b/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java index c78f571..dc17c04 100644 --- a/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java +++ b/src/org/swiftjava/com_apple/GesturePhaseListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.event.GesturePhaseListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class GesturePhaseListenerProxy implements com.apple.eawt.event.GesturePhaseListener { + // address of proxy object long __swiftObject; GesturePhaseListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/MagnificationListenerProxy.java b/src/org/swiftjava/com_apple/MagnificationListenerProxy.java index 14d5a39..59a1138 100644 --- a/src/org/swiftjava/com_apple/MagnificationListenerProxy.java +++ b/src/org/swiftjava/com_apple/MagnificationListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.event.MagnificationListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class MagnificationListenerProxy implements com.apple.eawt.event.MagnificationListener { + // address of proxy object long __swiftObject; MagnificationListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java b/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java index 27936b5..1f02e04 100644 --- a/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java +++ b/src/org/swiftjava/com_apple/OpenFilesHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.OpenFilesHandler /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class OpenFilesHandlerProxy implements com.apple.eawt.OpenFilesHandler { + // address of proxy object long __swiftObject; OpenFilesHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java b/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java index 0203d6a..871506b 100644 --- a/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java +++ b/src/org/swiftjava/com_apple/OpenURIHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.OpenURIHandler /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class OpenURIHandlerProxy implements com.apple.eawt.OpenURIHandler { + // address of proxy object long __swiftObject; OpenURIHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java b/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java index dc291f6..2e8acaa 100644 --- a/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java +++ b/src/org/swiftjava/com_apple/PreferencesHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.PreferencesHandler /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class PreferencesHandlerProxy implements com.apple.eawt.PreferencesHandler { + // address of proxy object long __swiftObject; PreferencesHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java b/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java index d2a82ac..4aedc88 100644 --- a/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java +++ b/src/org/swiftjava/com_apple/PrintFilesHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.PrintFilesHandler /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class PrintFilesHandlerProxy implements com.apple.eawt.PrintFilesHandler { + // address of proxy object long __swiftObject; PrintFilesHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/QuitHandlerProxy.java b/src/org/swiftjava/com_apple/QuitHandlerProxy.java index c905b17..bb2b1e1 100644 --- a/src/org/swiftjava/com_apple/QuitHandlerProxy.java +++ b/src/org/swiftjava/com_apple/QuitHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.QuitHandler /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class QuitHandlerProxy implements com.apple.eawt.QuitHandler { + // address of proxy object long __swiftObject; QuitHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/RotationListenerProxy.java b/src/org/swiftjava/com_apple/RotationListenerProxy.java index f3cb030..363fbf2 100644 --- a/src/org/swiftjava/com_apple/RotationListenerProxy.java +++ b/src/org/swiftjava/com_apple/RotationListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.event.RotationListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class RotationListenerProxy implements com.apple.eawt.event.RotationListener { + // address of proxy object long __swiftObject; RotationListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java b/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java index 9ff9b2f..9d5ad28 100644 --- a/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java +++ b/src/org/swiftjava/com_apple/ScreenSleepListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.ScreenSleepListener /// package org.swiftjava.com_apple; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class ScreenSleepListenerProxy implements com.apple.eawt.ScreenSleepListener { + // address of proxy object long __swiftObject; ScreenSleepListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.apple.eawt.ScreenSleepListener.screenAwoke(com.apple.eawt.AppEvent$ScreenSleepEvent) - - public native void __screenAwoke( long __swiftObject, com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); - - public void screenAwoke( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) { - __screenAwoke( __swiftObject, arg0 ); - } - /// public abstract void com.apple.eawt.ScreenSleepListener.screenAboutToSleep(com.apple.eawt.AppEvent$ScreenSleepEvent) public native void __screenAboutToSleep( long __swiftObject, com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); @@ -28,6 +23,14 @@ public void screenAboutToSleep( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) __screenAboutToSleep( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.ScreenSleepListener.screenAwoke(com.apple.eawt.AppEvent$ScreenSleepEvent) + + public native void __screenAwoke( long __swiftObject, com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ); + + public void screenAwoke( com.apple.eawt.AppEvent.ScreenSleepEvent arg0 ) { + __screenAwoke( __swiftObject, arg0 ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/SwipeListenerProxy.java b/src/org/swiftjava/com_apple/SwipeListenerProxy.java index 9b67a2a..c1e4bee 100644 --- a/src/org/swiftjava/com_apple/SwipeListenerProxy.java +++ b/src/org/swiftjava/com_apple/SwipeListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.event.SwipeListener /// package org.swiftjava.com_apple; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class SwipeListenerProxy implements com.apple.eawt.event.SwipeListener { + // address of proxy object long __swiftObject; SwipeListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java b/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java index b5c7026..8e9e36c 100644 --- a/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java +++ b/src/org/swiftjava/com_apple/SystemSleepListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.SystemSleepListener /// package org.swiftjava.com_apple; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class SystemSleepListenerProxy implements com.apple.eawt.SystemSleepListener { + // address of proxy object long __swiftObject; SystemSleepListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.apple.eawt.SystemSleepListener.systemAwoke(com.apple.eawt.AppEvent$SystemSleepEvent) - - public native void __systemAwoke( long __swiftObject, com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); - - public void systemAwoke( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) { - __systemAwoke( __swiftObject, arg0 ); - } - /// public abstract void com.apple.eawt.SystemSleepListener.systemAboutToSleep(com.apple.eawt.AppEvent$SystemSleepEvent) public native void __systemAboutToSleep( long __swiftObject, com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); @@ -28,6 +23,14 @@ public void systemAboutToSleep( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) __systemAboutToSleep( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.SystemSleepListener.systemAwoke(com.apple.eawt.AppEvent$SystemSleepEvent) + + public native void __systemAwoke( long __swiftObject, com.apple.eawt.AppEvent.SystemSleepEvent arg0 ); + + public void systemAwoke( com.apple.eawt.AppEvent.SystemSleepEvent arg0 ) { + __systemAwoke( __swiftObject, arg0 ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_apple/UserSessionListenerProxy.java b/src/org/swiftjava/com_apple/UserSessionListenerProxy.java index a44c079..e45b504 100644 --- a/src/org/swiftjava/com_apple/UserSessionListenerProxy.java +++ b/src/org/swiftjava/com_apple/UserSessionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface com.apple.eawt.UserSessionListener /// package org.swiftjava.com_apple; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class UserSessionListenerProxy implements com.apple.eawt.UserSessionListener { + // address of proxy object long __swiftObject; UserSessionListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void com.apple.eawt.UserSessionListener.userSessionDeactivated(com.apple.eawt.AppEvent$UserSessionEvent) - - public native void __userSessionDeactivated( long __swiftObject, com.apple.eawt.AppEvent.UserSessionEvent arg0 ); - - public void userSessionDeactivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ) { - __userSessionDeactivated( __swiftObject, arg0 ); - } - /// public abstract void com.apple.eawt.UserSessionListener.userSessionActivated(com.apple.eawt.AppEvent$UserSessionEvent) public native void __userSessionActivated( long __swiftObject, com.apple.eawt.AppEvent.UserSessionEvent arg0 ); @@ -28,6 +23,14 @@ public void userSessionActivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 __userSessionActivated( __swiftObject, arg0 ); } + /// public abstract void com.apple.eawt.UserSessionListener.userSessionDeactivated(com.apple.eawt.AppEvent$UserSessionEvent) + + public native void __userSessionDeactivated( long __swiftObject, com.apple.eawt.AppEvent.UserSessionEvent arg0 ); + + public void userSessionDeactivated( com.apple.eawt.AppEvent.UserSessionEvent arg0 ) { + __userSessionDeactivated( __swiftObject, arg0 ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java index 53e62ad..3d6a43d 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloBinding_ListenerProxy.java @@ -15,28 +15,28 @@ public class SwiftHelloBinding_ListenerProxy implements com.johnholdsworth.swift this.__swiftObject = __swiftObject; } - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) - public native double __throwException( long __swiftObject ); + public native void __processNumber( long __swiftObject, double number ); - public double throwException() throws java.lang.Exception { - return __throwException( __swiftObject ); + public void processNumber( double number ) { + __processNumber( __swiftObject, number ); } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - public native void __setCacheDir( long __swiftObject, java.lang.String cacheDir ); + public native void __processStringMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap map ); - public void setCacheDir( java.lang.String cacheDir ) { - __setCacheDir( __swiftObject, cacheDir ); + public void processStringMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap map ) { + __processStringMap( __swiftObject, map ); } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processNumber(double) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - public native void __processNumber( long __swiftObject, double number ); + public native void __processStringMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList map ); - public void processNumber( double number ) { - __processNumber( __swiftObject, number ); + public void processStringMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList map ) { + __processStringMapList( __swiftObject, map ); } /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processText(java.lang.String) @@ -63,20 +63,12 @@ public void processedMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.L __processedMapList( __swiftObject, map ); } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - - public native void __processStringMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap map ); - - public void processStringMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMap map ) { - __processStringMap( __swiftObject, map ); - } - - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.processStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.setCacheDir(java.lang.String) - public native void __processStringMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList map ); + public native void __setCacheDir( long __swiftObject, java.lang.String cacheDir ); - public void processStringMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.StringMapList map ) { - __processStringMapList( __swiftObject, map ); + public void setCacheDir( java.lang.String cacheDir ) { + __setCacheDir( __swiftObject, cacheDir ); } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.testResponder(int) @@ -87,6 +79,14 @@ public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener testResponde return __testResponder( __swiftObject, loopback ); } + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Listener.throwException() throws java.lang.Exception + + public native double __throwException( long __swiftObject ); + + public double throwException() throws java.lang.Exception { + return __throwException( __swiftObject ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java index 11d66a7..1701a5b 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestListenerProxy.java @@ -15,28 +15,52 @@ public class SwiftHelloTest_TestListenerProxy implements com.johnholdsworth.swif this.__swiftObject = __swiftObject; } - /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) - public native void __setLoopback( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ); + public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); - public void setLoopback( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ) { - __setLoopback( __swiftObject, loopback ); + public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { + return __String2dArrayMethod( __swiftObject, arg ); } - /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) + /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) - public native boolean __booleanMethod( long __swiftObject, boolean arg ); + public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); - public boolean booleanMethod( boolean arg ) { - return __booleanMethod( __swiftObject, arg ); + public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { + return __StringArrayMethod( __swiftObject, arg ); } - /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) + /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) - public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); + public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); - public boolean[] booleanArrayMethod( boolean[] arg ) { - return __booleanArrayMethod( __swiftObject, arg ); + public java.lang.String StringMethod( java.lang.String arg ) { + return __StringMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ); + + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ) { + return __TestListener2dArrayMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ); + + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ) { + return __TestListenerArrayMethod( __swiftObject, arg ); + } + + /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ); + + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ) { + return __TestListenerMethod( __swiftObject, arg ); } /// public abstract boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.boolean2dArrayMethod(boolean[][]) @@ -47,20 +71,20 @@ public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { return __boolean2dArrayMethod( __swiftObject, arg ); } - /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) + /// public abstract boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanArrayMethod(boolean[]) - public native byte __byteMethod( long __swiftObject, byte arg ); + public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); - public byte byteMethod( byte arg ) { - return __byteMethod( __swiftObject, arg ); + public boolean[] booleanArrayMethod( boolean[] arg ) { + return __booleanArrayMethod( __swiftObject, arg ); } - /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) + /// public abstract boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.booleanMethod(boolean) - public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); + public native boolean __booleanMethod( long __swiftObject, boolean arg ); - public byte[] byteArrayMethod( byte[] arg ) { - return __byteArrayMethod( __swiftObject, arg ); + public boolean booleanMethod( boolean arg ) { + return __booleanMethod( __swiftObject, arg ); } /// public abstract byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byte2dArrayMethod(byte[][]) @@ -71,20 +95,20 @@ public byte[][] byte2dArrayMethod( byte[][] arg ) { return __byte2dArrayMethod( __swiftObject, arg ); } - /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) + /// public abstract byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteArrayMethod(byte[]) - public native char __charMethod( long __swiftObject, char arg ); + public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); - public char charMethod( char arg ) { - return __charMethod( __swiftObject, arg ); + public byte[] byteArrayMethod( byte[] arg ) { + return __byteArrayMethod( __swiftObject, arg ); } - /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) + /// public abstract byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.byteMethod(byte) - public native char[] __charArrayMethod( long __swiftObject, char[] arg ); + public native byte __byteMethod( long __swiftObject, byte arg ); - public char[] charArrayMethod( char[] arg ) { - return __charArrayMethod( __swiftObject, arg ); + public byte byteMethod( byte arg ) { + return __byteMethod( __swiftObject, arg ); } /// public abstract char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.char2dArrayMethod(char[][]) @@ -95,76 +119,60 @@ public char[][] char2dArrayMethod( char[][] arg ) { return __char2dArrayMethod( __swiftObject, arg ); } - /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) - - public native short __shortMethod( long __swiftObject, short arg ); - - public short shortMethod( short arg ) { - return __shortMethod( __swiftObject, arg ); - } - - /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - - public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); - - public short[] shortArrayMethod( short[] arg ) { - return __shortArrayMethod( __swiftObject, arg ); - } - - /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) + /// public abstract char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charArrayMethod(char[]) - public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); + public native char[] __charArrayMethod( long __swiftObject, char[] arg ); - public short[][] short2dArrayMethod( short[][] arg ) { - return __short2dArrayMethod( __swiftObject, arg ); + public char[] charArrayMethod( char[] arg ) { + return __charArrayMethod( __swiftObject, arg ); } - /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) + /// public abstract char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.charMethod(char) - public native int __intMethod( long __swiftObject, int arg ); + public native char __charMethod( long __swiftObject, char arg ); - public int intMethod( int arg ) { - return __intMethod( __swiftObject, arg ); + public char charMethod( char arg ) { + return __charMethod( __swiftObject, arg ); } - /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) + /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) - public native int[] __intArrayMethod( long __swiftObject, int[] arg ); + public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); - public int[] intArrayMethod( int[] arg ) { - return __intArrayMethod( __swiftObject, arg ); + public double[][] double2dArrayMethod( double[][] arg ) { + return __double2dArrayMethod( __swiftObject, arg ); } - /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) + /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) - public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); + public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); - public int[][] int2dArrayMethod( int[][] arg ) { - return __int2dArrayMethod( __swiftObject, arg ); + public double[] doubleArrayMethod( double[] arg ) { + return __doubleArrayMethod( __swiftObject, arg ); } - /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) + /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) - public native long __longMethod( long __swiftObject, long arg ); + public native double __doubleMethod( long __swiftObject, double arg ); - public long longMethod( long arg ) { - return __longMethod( __swiftObject, arg ); + public double doubleMethod( double arg ) { + return __doubleMethod( __swiftObject, arg ); } - /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) + /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) - public native long[] __longArrayMethod( long __swiftObject, long[] arg ); + public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); - public long[] longArrayMethod( long[] arg ) { - return __longArrayMethod( __swiftObject, arg ); + public float[][] float2dArrayMethod( float[][] arg ) { + return __float2dArrayMethod( __swiftObject, arg ); } - /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) + /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); + public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); - public long[][] long2dArrayMethod( long[][] arg ) { - return __long2dArrayMethod( __swiftObject, arg ); + public float[] floatArrayMethod( float[] arg ) { + return __floatArrayMethod( __swiftObject, arg ); } /// public abstract float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatMethod(float) @@ -175,92 +183,84 @@ public float floatMethod( float arg ) { return __floatMethod( __swiftObject, arg ); } - /// public abstract float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.floatArrayMethod(float[]) - - public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); - - public float[] floatArrayMethod( float[] arg ) { - return __floatArrayMethod( __swiftObject, arg ); - } - - /// public abstract float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.float2dArrayMethod(float[][]) + /// public abstract int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.int2dArrayMethod(int[][]) - public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); + public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); - public float[][] float2dArrayMethod( float[][] arg ) { - return __float2dArrayMethod( __swiftObject, arg ); + public int[][] int2dArrayMethod( int[][] arg ) { + return __int2dArrayMethod( __swiftObject, arg ); } - /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleMethod(double) + /// public abstract int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intArrayMethod(int[]) - public native double __doubleMethod( long __swiftObject, double arg ); + public native int[] __intArrayMethod( long __swiftObject, int[] arg ); - public double doubleMethod( double arg ) { - return __doubleMethod( __swiftObject, arg ); + public int[] intArrayMethod( int[] arg ) { + return __intArrayMethod( __swiftObject, arg ); } - /// public abstract double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.doubleArrayMethod(double[]) + /// public abstract int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.intMethod(int) - public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); + public native int __intMethod( long __swiftObject, int arg ); - public double[] doubleArrayMethod( double[] arg ) { - return __doubleArrayMethod( __swiftObject, arg ); + public int intMethod( int arg ) { + return __intMethod( __swiftObject, arg ); } - /// public abstract double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.double2dArrayMethod(double[][]) + /// public abstract long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.long2dArrayMethod(long[][]) - public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); + public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); - public double[][] double2dArrayMethod( double[][] arg ) { - return __double2dArrayMethod( __swiftObject, arg ); + public long[][] long2dArrayMethod( long[][] arg ) { + return __long2dArrayMethod( __swiftObject, arg ); } - /// public abstract java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringMethod(java.lang.String) + /// public abstract long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longArrayMethod(long[]) - public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); + public native long[] __longArrayMethod( long __swiftObject, long[] arg ); - public java.lang.String StringMethod( java.lang.String arg ) { - return __StringMethod( __swiftObject, arg ); + public long[] longArrayMethod( long[] arg ) { + return __longArrayMethod( __swiftObject, arg ); } - /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.StringArrayMethod(java.lang.String[]) + /// public abstract long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.longMethod(long) - public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); + public native long __longMethod( long __swiftObject, long arg ); - public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { - return __StringArrayMethod( __swiftObject, arg ); + public long longMethod( long arg ) { + return __longMethod( __swiftObject, arg ); } - /// public abstract java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.String2dArrayMethod(java.lang.String[][]) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); + public native void __setLoopback( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ); - public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { - return __String2dArrayMethod( __swiftObject, arg ); + public void setLoopback( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ) { + __setLoopback( __swiftObject, loopback ); } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public abstract short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.short2dArrayMethod(short[][]) - public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ); + public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); - public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ) { - return __TestListenerMethod( __swiftObject, arg ); + public short[][] short2dArrayMethod( short[][] arg ) { + return __short2dArrayMethod( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public abstract short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortArrayMethod(short[]) - public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ); + public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); - public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ) { - return __TestListenerArrayMethod( __swiftObject, arg ); + public short[] shortArrayMethod( short[] arg ) { + return __shortArrayMethod( __swiftObject, arg ); } - /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public abstract short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.shortMethod(short) - public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ); + public native short __shortMethod( long __swiftObject, short arg ); - public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ) { - return __TestListener2dArrayMethod( __swiftObject, arg ); + public short shortMethod( short arg ) { + return __shortMethod( __swiftObject, arg ); } /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) diff --git a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java index 2380cae..8b501a3 100644 --- a/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java +++ b/src/org/swiftjava/com_johnholdsworth/SwiftHelloTest_TestResponderAdapterProxy.java @@ -18,543 +18,577 @@ public class SwiftHelloTest_TestResponderAdapterProxy extends com.johnholdsworth this.__swiftObject = __swiftObject; } - /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) - public native void __setLoopback( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ); + public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); - boolean entered_setLoopback_0; + boolean entered_String2dArrayMethod_0; - public void setLoopback( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ) { - if ( !entered_setLoopback_0 ) { - entered_setLoopback_0 = true; - __setLoopback( __swiftObject, loopback); - entered_setLoopback_0 = false; + public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { + if ( !entered_String2dArrayMethod_0 ) { + entered_String2dArrayMethod_0 = true; + java.lang.String[][] __return = __String2dArrayMethod( __swiftObject, arg); + entered_String2dArrayMethod_0 = false; + return __return; } else - super.setLoopback( loopback ); + return super.String2dArrayMethod( arg ); } - /// public boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) + /// public java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) - public native boolean __booleanMethod( long __swiftObject, boolean arg ); + public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); - boolean entered_booleanMethod_1; + boolean entered_StringArrayMethod_1; - public boolean booleanMethod( boolean arg ) { - if ( !entered_booleanMethod_1 ) { - entered_booleanMethod_1 = true; - boolean __return = __booleanMethod( __swiftObject, arg); - entered_booleanMethod_1 = false; + public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { + if ( !entered_StringArrayMethod_1 ) { + entered_StringArrayMethod_1 = true; + java.lang.String[] __return = __StringArrayMethod( __swiftObject, arg); + entered_StringArrayMethod_1 = false; return __return; } else - return super.booleanMethod( arg ); + return super.StringArrayMethod( arg ); } - /// public boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) + /// public java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) - public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); + public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); - boolean entered_booleanArrayMethod_2; + boolean entered_StringMethod_2; - public boolean[] booleanArrayMethod( boolean[] arg ) { - if ( !entered_booleanArrayMethod_2 ) { - entered_booleanArrayMethod_2 = true; - boolean[] __return = __booleanArrayMethod( __swiftObject, arg); - entered_booleanArrayMethod_2 = false; + public java.lang.String StringMethod( java.lang.String arg ) { + if ( !entered_StringMethod_2 ) { + entered_StringMethod_2 = true; + java.lang.String __return = __StringMethod( __swiftObject, arg); + entered_StringMethod_2 = false; return __return; } else - return super.booleanArrayMethod( arg ); + return super.StringMethod( arg ); + } + + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ); + + boolean entered_TestListener2dArrayMethod_3; + + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ) { + if ( !entered_TestListener2dArrayMethod_3 ) { + entered_TestListener2dArrayMethod_3 = true; + com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __return = __TestListener2dArrayMethod( __swiftObject, arg); + entered_TestListener2dArrayMethod_3 = false; + return __return; + } + else + return super.TestListener2dArrayMethod( arg ); + } + + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ); + + boolean entered_TestListenerArrayMethod_4; + + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ) { + if ( !entered_TestListenerArrayMethod_4 ) { + entered_TestListenerArrayMethod_4 = true; + com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __return = __TestListenerArrayMethod( __swiftObject, arg); + entered_TestListenerArrayMethod_4 = false; + return __return; + } + else + return super.TestListenerArrayMethod( arg ); + } + + /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + + public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ); + + boolean entered_TestListenerMethod_5; + + public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ) { + if ( !entered_TestListenerMethod_5 ) { + entered_TestListenerMethod_5 = true; + com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __return = __TestListenerMethod( __swiftObject, arg); + entered_TestListenerMethod_5 = false; + return __return; + } + else + return super.TestListenerMethod( arg ); } /// public boolean[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.boolean2dArrayMethod(boolean[][]) public native boolean[][] __boolean2dArrayMethod( long __swiftObject, boolean[][] arg ); - boolean entered_boolean2dArrayMethod_3; + boolean entered_boolean2dArrayMethod_6; public boolean[][] boolean2dArrayMethod( boolean[][] arg ) { - if ( !entered_boolean2dArrayMethod_3 ) { - entered_boolean2dArrayMethod_3 = true; + if ( !entered_boolean2dArrayMethod_6 ) { + entered_boolean2dArrayMethod_6 = true; boolean[][] __return = __boolean2dArrayMethod( __swiftObject, arg); - entered_boolean2dArrayMethod_3 = false; + entered_boolean2dArrayMethod_6 = false; return __return; } else return super.boolean2dArrayMethod( arg ); } - /// public byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) + /// public boolean[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanArrayMethod(boolean[]) - public native byte __byteMethod( long __swiftObject, byte arg ); + public native boolean[] __booleanArrayMethod( long __swiftObject, boolean[] arg ); - boolean entered_byteMethod_4; + boolean entered_booleanArrayMethod_7; - public byte byteMethod( byte arg ) { - if ( !entered_byteMethod_4 ) { - entered_byteMethod_4 = true; - byte __return = __byteMethod( __swiftObject, arg); - entered_byteMethod_4 = false; + public boolean[] booleanArrayMethod( boolean[] arg ) { + if ( !entered_booleanArrayMethod_7 ) { + entered_booleanArrayMethod_7 = true; + boolean[] __return = __booleanArrayMethod( __swiftObject, arg); + entered_booleanArrayMethod_7 = false; return __return; } else - return super.byteMethod( arg ); + return super.booleanArrayMethod( arg ); } - /// public byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) + /// public boolean com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.booleanMethod(boolean) - public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); + public native boolean __booleanMethod( long __swiftObject, boolean arg ); - boolean entered_byteArrayMethod_5; + boolean entered_booleanMethod_8; - public byte[] byteArrayMethod( byte[] arg ) { - if ( !entered_byteArrayMethod_5 ) { - entered_byteArrayMethod_5 = true; - byte[] __return = __byteArrayMethod( __swiftObject, arg); - entered_byteArrayMethod_5 = false; + public boolean booleanMethod( boolean arg ) { + if ( !entered_booleanMethod_8 ) { + entered_booleanMethod_8 = true; + boolean __return = __booleanMethod( __swiftObject, arg); + entered_booleanMethod_8 = false; return __return; } else - return super.byteArrayMethod( arg ); + return super.booleanMethod( arg ); } /// public byte[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byte2dArrayMethod(byte[][]) public native byte[][] __byte2dArrayMethod( long __swiftObject, byte[][] arg ); - boolean entered_byte2dArrayMethod_6; + boolean entered_byte2dArrayMethod_9; public byte[][] byte2dArrayMethod( byte[][] arg ) { - if ( !entered_byte2dArrayMethod_6 ) { - entered_byte2dArrayMethod_6 = true; + if ( !entered_byte2dArrayMethod_9 ) { + entered_byte2dArrayMethod_9 = true; byte[][] __return = __byte2dArrayMethod( __swiftObject, arg); - entered_byte2dArrayMethod_6 = false; + entered_byte2dArrayMethod_9 = false; return __return; } else return super.byte2dArrayMethod( arg ); } - /// public char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) + /// public byte[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteArrayMethod(byte[]) - public native char __charMethod( long __swiftObject, char arg ); + public native byte[] __byteArrayMethod( long __swiftObject, byte[] arg ); - boolean entered_charMethod_7; + boolean entered_byteArrayMethod_10; - public char charMethod( char arg ) { - if ( !entered_charMethod_7 ) { - entered_charMethod_7 = true; - char __return = __charMethod( __swiftObject, arg); - entered_charMethod_7 = false; + public byte[] byteArrayMethod( byte[] arg ) { + if ( !entered_byteArrayMethod_10 ) { + entered_byteArrayMethod_10 = true; + byte[] __return = __byteArrayMethod( __swiftObject, arg); + entered_byteArrayMethod_10 = false; return __return; } else - return super.charMethod( arg ); + return super.byteArrayMethod( arg ); } - /// public char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) + /// public byte com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.byteMethod(byte) - public native char[] __charArrayMethod( long __swiftObject, char[] arg ); + public native byte __byteMethod( long __swiftObject, byte arg ); - boolean entered_charArrayMethod_8; + boolean entered_byteMethod_11; - public char[] charArrayMethod( char[] arg ) { - if ( !entered_charArrayMethod_8 ) { - entered_charArrayMethod_8 = true; - char[] __return = __charArrayMethod( __swiftObject, arg); - entered_charArrayMethod_8 = false; + public byte byteMethod( byte arg ) { + if ( !entered_byteMethod_11 ) { + entered_byteMethod_11 = true; + byte __return = __byteMethod( __swiftObject, arg); + entered_byteMethod_11 = false; return __return; } else - return super.charArrayMethod( arg ); + return super.byteMethod( arg ); } /// public char[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.char2dArrayMethod(char[][]) public native char[][] __char2dArrayMethod( long __swiftObject, char[][] arg ); - boolean entered_char2dArrayMethod_9; + boolean entered_char2dArrayMethod_12; public char[][] char2dArrayMethod( char[][] arg ) { - if ( !entered_char2dArrayMethod_9 ) { - entered_char2dArrayMethod_9 = true; + if ( !entered_char2dArrayMethod_12 ) { + entered_char2dArrayMethod_12 = true; char[][] __return = __char2dArrayMethod( __swiftObject, arg); - entered_char2dArrayMethod_9 = false; + entered_char2dArrayMethod_12 = false; return __return; } else return super.char2dArrayMethod( arg ); } - /// public short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) - - public native short __shortMethod( long __swiftObject, short arg ); - - boolean entered_shortMethod_10; - - public short shortMethod( short arg ) { - if ( !entered_shortMethod_10 ) { - entered_shortMethod_10 = true; - short __return = __shortMethod( __swiftObject, arg); - entered_shortMethod_10 = false; - return __return; - } - else - return super.shortMethod( arg ); - } - - /// public short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) + /// public char[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charArrayMethod(char[]) - public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); + public native char[] __charArrayMethod( long __swiftObject, char[] arg ); - boolean entered_shortArrayMethod_11; + boolean entered_charArrayMethod_13; - public short[] shortArrayMethod( short[] arg ) { - if ( !entered_shortArrayMethod_11 ) { - entered_shortArrayMethod_11 = true; - short[] __return = __shortArrayMethod( __swiftObject, arg); - entered_shortArrayMethod_11 = false; + public char[] charArrayMethod( char[] arg ) { + if ( !entered_charArrayMethod_13 ) { + entered_charArrayMethod_13 = true; + char[] __return = __charArrayMethod( __swiftObject, arg); + entered_charArrayMethod_13 = false; return __return; } else - return super.shortArrayMethod( arg ); + return super.charArrayMethod( arg ); } - /// public short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) + /// public char com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.charMethod(char) - public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); + public native char __charMethod( long __swiftObject, char arg ); - boolean entered_short2dArrayMethod_12; + boolean entered_charMethod_14; - public short[][] short2dArrayMethod( short[][] arg ) { - if ( !entered_short2dArrayMethod_12 ) { - entered_short2dArrayMethod_12 = true; - short[][] __return = __short2dArrayMethod( __swiftObject, arg); - entered_short2dArrayMethod_12 = false; + public char charMethod( char arg ) { + if ( !entered_charMethod_14 ) { + entered_charMethod_14 = true; + char __return = __charMethod( __swiftObject, arg); + entered_charMethod_14 = false; return __return; } else - return super.short2dArrayMethod( arg ); + return super.charMethod( arg ); } - /// public int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) + /// public double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) - public native int __intMethod( long __swiftObject, int arg ); + public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); - boolean entered_intMethod_13; + boolean entered_double2dArrayMethod_15; - public int intMethod( int arg ) { - if ( !entered_intMethod_13 ) { - entered_intMethod_13 = true; - int __return = __intMethod( __swiftObject, arg); - entered_intMethod_13 = false; + public double[][] double2dArrayMethod( double[][] arg ) { + if ( !entered_double2dArrayMethod_15 ) { + entered_double2dArrayMethod_15 = true; + double[][] __return = __double2dArrayMethod( __swiftObject, arg); + entered_double2dArrayMethod_15 = false; return __return; } else - return super.intMethod( arg ); + return super.double2dArrayMethod( arg ); } - /// public int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) + /// public double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) - public native int[] __intArrayMethod( long __swiftObject, int[] arg ); + public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); - boolean entered_intArrayMethod_14; + boolean entered_doubleArrayMethod_16; - public int[] intArrayMethod( int[] arg ) { - if ( !entered_intArrayMethod_14 ) { - entered_intArrayMethod_14 = true; - int[] __return = __intArrayMethod( __swiftObject, arg); - entered_intArrayMethod_14 = false; + public double[] doubleArrayMethod( double[] arg ) { + if ( !entered_doubleArrayMethod_16 ) { + entered_doubleArrayMethod_16 = true; + double[] __return = __doubleArrayMethod( __swiftObject, arg); + entered_doubleArrayMethod_16 = false; return __return; } else - return super.intArrayMethod( arg ); + return super.doubleArrayMethod( arg ); } - /// public int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) + /// public double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) - public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); + public native double __doubleMethod( long __swiftObject, double arg ); - boolean entered_int2dArrayMethod_15; + boolean entered_doubleMethod_17; - public int[][] int2dArrayMethod( int[][] arg ) { - if ( !entered_int2dArrayMethod_15 ) { - entered_int2dArrayMethod_15 = true; - int[][] __return = __int2dArrayMethod( __swiftObject, arg); - entered_int2dArrayMethod_15 = false; + public double doubleMethod( double arg ) { + if ( !entered_doubleMethod_17 ) { + entered_doubleMethod_17 = true; + double __return = __doubleMethod( __swiftObject, arg); + entered_doubleMethod_17 = false; return __return; } else - return super.int2dArrayMethod( arg ); + return super.doubleMethod( arg ); } - /// public long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native long __longMethod( long __swiftObject, long arg ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_longMethod_16; + boolean entered_equals_18; - public long longMethod( long arg ) { - if ( !entered_longMethod_16 ) { - entered_longMethod_16 = true; - long __return = __longMethod( __swiftObject, arg); - entered_longMethod_16 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_18 ) { + entered_equals_18 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_18 = false; return __return; } else - return super.longMethod( arg ); + return super.equals( arg0 ); } - /// public long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) + /// public float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) - public native long[] __longArrayMethod( long __swiftObject, long[] arg ); + public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); - boolean entered_longArrayMethod_17; + boolean entered_float2dArrayMethod_19; - public long[] longArrayMethod( long[] arg ) { - if ( !entered_longArrayMethod_17 ) { - entered_longArrayMethod_17 = true; - long[] __return = __longArrayMethod( __swiftObject, arg); - entered_longArrayMethod_17 = false; + public float[][] float2dArrayMethod( float[][] arg ) { + if ( !entered_float2dArrayMethod_19 ) { + entered_float2dArrayMethod_19 = true; + float[][] __return = __float2dArrayMethod( __swiftObject, arg); + entered_float2dArrayMethod_19 = false; return __return; } else - return super.longArrayMethod( arg ); + return super.float2dArrayMethod( arg ); } - /// public long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) + /// public float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) - public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); + public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); - boolean entered_long2dArrayMethod_18; + boolean entered_floatArrayMethod_20; - public long[][] long2dArrayMethod( long[][] arg ) { - if ( !entered_long2dArrayMethod_18 ) { - entered_long2dArrayMethod_18 = true; - long[][] __return = __long2dArrayMethod( __swiftObject, arg); - entered_long2dArrayMethod_18 = false; + public float[] floatArrayMethod( float[] arg ) { + if ( !entered_floatArrayMethod_20 ) { + entered_floatArrayMethod_20 = true; + float[] __return = __floatArrayMethod( __swiftObject, arg); + entered_floatArrayMethod_20 = false; return __return; } else - return super.long2dArrayMethod( arg ); + return super.floatArrayMethod( arg ); } /// public float com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatMethod(float) public native float __floatMethod( long __swiftObject, float arg ); - boolean entered_floatMethod_19; + boolean entered_floatMethod_21; public float floatMethod( float arg ) { - if ( !entered_floatMethod_19 ) { - entered_floatMethod_19 = true; + if ( !entered_floatMethod_21 ) { + entered_floatMethod_21 = true; float __return = __floatMethod( __swiftObject, arg); - entered_floatMethod_19 = false; + entered_floatMethod_21 = false; return __return; } else return super.floatMethod( arg ); } - /// public float[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.floatArrayMethod(float[]) + /// public native int java.lang.Object.hashCode() - public native float[] __floatArrayMethod( long __swiftObject, float[] arg ); + public native int __hashCode( long __swiftObject ); - boolean entered_floatArrayMethod_20; + boolean entered_hashCode_22; - public float[] floatArrayMethod( float[] arg ) { - if ( !entered_floatArrayMethod_20 ) { - entered_floatArrayMethod_20 = true; - float[] __return = __floatArrayMethod( __swiftObject, arg); - entered_floatArrayMethod_20 = false; + public int hashCode() { + if ( !entered_hashCode_22 ) { + entered_hashCode_22 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_22 = false; return __return; } else - return super.floatArrayMethod( arg ); + return super.hashCode( ); } - /// public float[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.float2dArrayMethod(float[][]) + /// public int[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.int2dArrayMethod(int[][]) - public native float[][] __float2dArrayMethod( long __swiftObject, float[][] arg ); + public native int[][] __int2dArrayMethod( long __swiftObject, int[][] arg ); - boolean entered_float2dArrayMethod_21; + boolean entered_int2dArrayMethod_23; - public float[][] float2dArrayMethod( float[][] arg ) { - if ( !entered_float2dArrayMethod_21 ) { - entered_float2dArrayMethod_21 = true; - float[][] __return = __float2dArrayMethod( __swiftObject, arg); - entered_float2dArrayMethod_21 = false; + public int[][] int2dArrayMethod( int[][] arg ) { + if ( !entered_int2dArrayMethod_23 ) { + entered_int2dArrayMethod_23 = true; + int[][] __return = __int2dArrayMethod( __swiftObject, arg); + entered_int2dArrayMethod_23 = false; return __return; } else - return super.float2dArrayMethod( arg ); + return super.int2dArrayMethod( arg ); } - /// public double com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleMethod(double) + /// public int[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intArrayMethod(int[]) - public native double __doubleMethod( long __swiftObject, double arg ); + public native int[] __intArrayMethod( long __swiftObject, int[] arg ); - boolean entered_doubleMethod_22; + boolean entered_intArrayMethod_24; - public double doubleMethod( double arg ) { - if ( !entered_doubleMethod_22 ) { - entered_doubleMethod_22 = true; - double __return = __doubleMethod( __swiftObject, arg); - entered_doubleMethod_22 = false; + public int[] intArrayMethod( int[] arg ) { + if ( !entered_intArrayMethod_24 ) { + entered_intArrayMethod_24 = true; + int[] __return = __intArrayMethod( __swiftObject, arg); + entered_intArrayMethod_24 = false; return __return; } else - return super.doubleMethod( arg ); + return super.intArrayMethod( arg ); } - /// public double[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.doubleArrayMethod(double[]) + /// public int com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.intMethod(int) - public native double[] __doubleArrayMethod( long __swiftObject, double[] arg ); + public native int __intMethod( long __swiftObject, int arg ); - boolean entered_doubleArrayMethod_23; + boolean entered_intMethod_25; - public double[] doubleArrayMethod( double[] arg ) { - if ( !entered_doubleArrayMethod_23 ) { - entered_doubleArrayMethod_23 = true; - double[] __return = __doubleArrayMethod( __swiftObject, arg); - entered_doubleArrayMethod_23 = false; + public int intMethod( int arg ) { + if ( !entered_intMethod_25 ) { + entered_intMethod_25 = true; + int __return = __intMethod( __swiftObject, arg); + entered_intMethod_25 = false; return __return; } else - return super.doubleArrayMethod( arg ); + return super.intMethod( arg ); } - /// public double[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.double2dArrayMethod(double[][]) + /// public long[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.long2dArrayMethod(long[][]) - public native double[][] __double2dArrayMethod( long __swiftObject, double[][] arg ); + public native long[][] __long2dArrayMethod( long __swiftObject, long[][] arg ); - boolean entered_double2dArrayMethod_24; + boolean entered_long2dArrayMethod_26; - public double[][] double2dArrayMethod( double[][] arg ) { - if ( !entered_double2dArrayMethod_24 ) { - entered_double2dArrayMethod_24 = true; - double[][] __return = __double2dArrayMethod( __swiftObject, arg); - entered_double2dArrayMethod_24 = false; + public long[][] long2dArrayMethod( long[][] arg ) { + if ( !entered_long2dArrayMethod_26 ) { + entered_long2dArrayMethod_26 = true; + long[][] __return = __long2dArrayMethod( __swiftObject, arg); + entered_long2dArrayMethod_26 = false; return __return; } else - return super.double2dArrayMethod( arg ); + return super.long2dArrayMethod( arg ); } - /// public java.lang.String com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringMethod(java.lang.String) + /// public long[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longArrayMethod(long[]) - public native java.lang.String __StringMethod( long __swiftObject, java.lang.String arg ); + public native long[] __longArrayMethod( long __swiftObject, long[] arg ); - boolean entered_StringMethod_25; + boolean entered_longArrayMethod_27; - public java.lang.String StringMethod( java.lang.String arg ) { - if ( !entered_StringMethod_25 ) { - entered_StringMethod_25 = true; - java.lang.String __return = __StringMethod( __swiftObject, arg); - entered_StringMethod_25 = false; + public long[] longArrayMethod( long[] arg ) { + if ( !entered_longArrayMethod_27 ) { + entered_longArrayMethod_27 = true; + long[] __return = __longArrayMethod( __swiftObject, arg); + entered_longArrayMethod_27 = false; return __return; } else - return super.StringMethod( arg ); + return super.longArrayMethod( arg ); } - /// public java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.StringArrayMethod(java.lang.String[]) + /// public long com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.longMethod(long) - public native java.lang.String[] __StringArrayMethod( long __swiftObject, java.lang.String[] arg ); + public native long __longMethod( long __swiftObject, long arg ); - boolean entered_StringArrayMethod_26; + boolean entered_longMethod_28; - public java.lang.String[] StringArrayMethod( java.lang.String[] arg ) { - if ( !entered_StringArrayMethod_26 ) { - entered_StringArrayMethod_26 = true; - java.lang.String[] __return = __StringArrayMethod( __swiftObject, arg); - entered_StringArrayMethod_26 = false; + public long longMethod( long arg ) { + if ( !entered_longMethod_28 ) { + entered_longMethod_28 = true; + long __return = __longMethod( __swiftObject, arg); + entered_longMethod_28 = false; return __return; } else - return super.StringArrayMethod( arg ); + return super.longMethod( arg ); } - /// public java.lang.String[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.String2dArrayMethod(java.lang.String[][]) + /// public void com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.setLoopback(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) - public native java.lang.String[][] __String2dArrayMethod( long __swiftObject, java.lang.String[][] arg ); + public native void __setLoopback( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ); - boolean entered_String2dArrayMethod_27; + boolean entered_setLoopback_29; - public java.lang.String[][] String2dArrayMethod( java.lang.String[][] arg ) { - if ( !entered_String2dArrayMethod_27 ) { - entered_String2dArrayMethod_27 = true; - java.lang.String[][] __return = __String2dArrayMethod( __swiftObject, arg); - entered_String2dArrayMethod_27 = false; - return __return; + public void setLoopback( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener loopback ) { + if ( !entered_setLoopback_29 ) { + entered_setLoopback_29 = true; + __setLoopback( __swiftObject, loopback); + entered_setLoopback_29 = false; } else - return super.String2dArrayMethod( arg ); + super.setLoopback( loopback ); } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener) + /// public short[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.short2dArrayMethod(short[][]) - public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __TestListenerMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ); + public native short[][] __short2dArrayMethod( long __swiftObject, short[][] arg ); - boolean entered_TestListenerMethod_28; + boolean entered_short2dArrayMethod_30; - public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener TestListenerMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener arg ) { - if ( !entered_TestListenerMethod_28 ) { - entered_TestListenerMethod_28 = true; - com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener __return = __TestListenerMethod( __swiftObject, arg); - entered_TestListenerMethod_28 = false; + public short[][] short2dArrayMethod( short[][] arg ) { + if ( !entered_short2dArrayMethod_30 ) { + entered_short2dArrayMethod_30 = true; + short[][] __return = __short2dArrayMethod( __swiftObject, arg); + entered_short2dArrayMethod_30 = false; return __return; } else - return super.TestListenerMethod( arg ); + return super.short2dArrayMethod( arg ); } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListenerArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[]) + /// public short[] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortArrayMethod(short[]) - public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __TestListenerArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ); + public native short[] __shortArrayMethod( long __swiftObject, short[] arg ); - boolean entered_TestListenerArrayMethod_29; + boolean entered_shortArrayMethod_31; - public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] TestListenerArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] arg ) { - if ( !entered_TestListenerArrayMethod_29 ) { - entered_TestListenerArrayMethod_29 = true; - com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[] __return = __TestListenerArrayMethod( __swiftObject, arg); - entered_TestListenerArrayMethod_29 = false; + public short[] shortArrayMethod( short[] arg ) { + if ( !entered_shortArrayMethod_31 ) { + entered_shortArrayMethod_31 = true; + short[] __return = __shortArrayMethod( __swiftObject, arg); + entered_shortArrayMethod_31 = false; return __return; } else - return super.TestListenerArrayMethod( arg ); + return super.shortArrayMethod( arg ); } - /// public com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][] com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.TestListener2dArrayMethod(com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener[][]) + /// public short com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.shortMethod(short) - public native com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __TestListener2dArrayMethod( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ); + public native short __shortMethod( long __swiftObject, short arg ); - boolean entered_TestListener2dArrayMethod_30; + boolean entered_shortMethod_32; - public com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] TestListener2dArrayMethod( com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] arg ) { - if ( !entered_TestListener2dArrayMethod_30 ) { - entered_TestListener2dArrayMethod_30 = true; - com.johnholdsworth.swiftbindings.SwiftHelloTest.TestListener[][] __return = __TestListener2dArrayMethod( __swiftObject, arg); - entered_TestListener2dArrayMethod_30 = false; + public short shortMethod( short arg ) { + if ( !entered_shortMethod_32 ) { + entered_shortMethod_32 = true; + short __return = __shortMethod( __swiftObject, arg); + entered_shortMethod_32 = false; return __return; } else - return super.TestListener2dArrayMethod( arg ); + return super.shortMethod( arg ); } /// public com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap com.johnholdsworth.swiftbindings.SwiftHelloTest$TestResponderAdapter.testMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) public native com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap __testMap( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap arg ); - boolean entered_testMap_31; + boolean entered_testMap_33; public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap testMap( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap arg ) { - if ( !entered_testMap_31 ) { - entered_testMap_31 = true; + if ( !entered_testMap_33 ) { + entered_testMap_33 = true; com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap __return = __testMap( __swiftObject, arg); - entered_testMap_31 = false; + entered_testMap_33 = false; return __return; } else @@ -565,70 +599,36 @@ public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap testMap( com public native com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList __testMapList( long __swiftObject, com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList arg ); - boolean entered_testMapList_32; + boolean entered_testMapList_34; public com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList testMapList( com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList arg ) { - if ( !entered_testMapList_32 ) { - entered_testMapList_32 = true; + if ( !entered_testMapList_34 ) { + entered_testMapList_34 = true; com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList __return = __testMapList( __swiftObject, arg); - entered_testMapList_32 = false; + entered_testMapList_34 = false; return __return; } else return super.testMapList( arg ); } - /// public boolean java.lang.Object.equals(java.lang.Object) - - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - - boolean entered_equals_33; - - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_33 ) { - entered_equals_33 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_33 = false; - return __return; - } - else - return super.equals( arg0 ); - } - /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_34; + boolean entered_toString_35; public java.lang.String toString() { - if ( !entered_toString_34 ) { - entered_toString_34 = true; + if ( !entered_toString_35 ) { + entered_toString_35 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_34 = false; + entered_toString_35 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_35; - - public int hashCode() { - if ( !entered_hashCode_35 ) { - entered_hashCode_35 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_35 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/AWTEventListenerProxy.java b/src/org/swiftjava/java_awt/AWTEventListenerProxy.java index 5ea9806..953961d 100644 --- a/src/org/swiftjava/java_awt/AWTEventListenerProxy.java +++ b/src/org/swiftjava/java_awt/AWTEventListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.AWTEventListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AWTEventListenerProxy implements java.awt.event.AWTEventListener { + // address of proxy object long __swiftObject; AWTEventListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/ActionListenerProxy.java b/src/org/swiftjava/java_awt/ActionListenerProxy.java index e92b516..64b0398 100644 --- a/src/org/swiftjava/java_awt/ActionListenerProxy.java +++ b/src/org/swiftjava/java_awt/ActionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.ActionListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ActionListenerProxy implements java.awt.event.ActionListener { + // address of proxy object long __swiftObject; ActionListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java b/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java index b200dab..9a57a90 100644 --- a/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java +++ b/src/org/swiftjava/java_awt/AdjustmentListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.AdjustmentListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AdjustmentListenerProxy implements java.awt.event.AdjustmentListener { + // address of proxy object long __swiftObject; AdjustmentListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/CanvasProxy.java b/src/org/swiftjava/java_awt/CanvasProxy.java index 07e6dfd..7a0f072 100644 --- a/src/org/swiftjava/java_awt/CanvasProxy.java +++ b/src/org/swiftjava/java_awt/CanvasProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.Canvas /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class CanvasProxy extends java.awt.Canvas { + // address of proxy object long __swiftObject; /// public java.awt.Canvas() @@ -22,36 +25,36 @@ public class CanvasProxy extends java.awt.Canvas { this.__swiftObject = __swiftObject; } - /// public void java.awt.Canvas.update(java.awt.Graphics) + /// public void java.awt.Canvas.paint(java.awt.Graphics) - public native void __update( long __swiftObject, java.awt.Graphics g ); + public native void __paint( long __swiftObject, java.awt.Graphics g ); - boolean entered_update_0; + boolean entered_paint_0; - public void update( java.awt.Graphics g ) { - if ( !entered_update_0 ) { - entered_update_0 = true; - __update( __swiftObject, g); - entered_update_0 = false; + public void paint( java.awt.Graphics g ) { + if ( !entered_paint_0 ) { + entered_paint_0 = true; + __paint( __swiftObject, g); + entered_paint_0 = false; } else - super.update( g ); + super.paint( g ); } - /// public void java.awt.Canvas.paint(java.awt.Graphics) + /// public void java.awt.Canvas.update(java.awt.Graphics) - public native void __paint( long __swiftObject, java.awt.Graphics g ); + public native void __update( long __swiftObject, java.awt.Graphics g ); - boolean entered_paint_1; + boolean entered_update_1; - public void paint( java.awt.Graphics g ) { - if ( !entered_paint_1 ) { - entered_paint_1 = true; - __paint( __swiftObject, g); - entered_paint_1 = false; + public void update( java.awt.Graphics g ) { + if ( !entered_update_1 ) { + entered_update_1 = true; + __update( __swiftObject, g); + entered_update_1 = false; } else - super.paint( g ); + super.update( g ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/ComponentAdapterProxy.java b/src/org/swiftjava/java_awt/ComponentAdapterProxy.java index 9404e32..3b01658 100644 --- a/src/org/swiftjava/java_awt/ComponentAdapterProxy.java +++ b/src/org/swiftjava/java_awt/ComponentAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.ComponentAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ComponentAdapterProxy extends java.awt.event.ComponentAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.ComponentAdapter() @@ -15,20 +18,20 @@ public class ComponentAdapterProxy extends java.awt.event.ComponentAdapter { this.__swiftObject = __swiftObject; } - /// public void java.awt.event.ComponentAdapter.componentResized(java.awt.event.ComponentEvent) + /// public void java.awt.event.ComponentAdapter.componentHidden(java.awt.event.ComponentEvent) - public native void __componentResized( long __swiftObject, java.awt.event.ComponentEvent e ); + public native void __componentHidden( long __swiftObject, java.awt.event.ComponentEvent e ); - boolean entered_componentResized_0; + boolean entered_componentHidden_0; - public void componentResized( java.awt.event.ComponentEvent e ) { - if ( !entered_componentResized_0 ) { - entered_componentResized_0 = true; - __componentResized( __swiftObject, e); - entered_componentResized_0 = false; + public void componentHidden( java.awt.event.ComponentEvent e ) { + if ( !entered_componentHidden_0 ) { + entered_componentHidden_0 = true; + __componentHidden( __swiftObject, e); + entered_componentHidden_0 = false; } else - super.componentResized( e ); + super.componentHidden( e ); } /// public void java.awt.event.ComponentAdapter.componentMoved(java.awt.event.ComponentEvent) @@ -47,36 +50,36 @@ public void componentMoved( java.awt.event.ComponentEvent e ) { super.componentMoved( e ); } - /// public void java.awt.event.ComponentAdapter.componentShown(java.awt.event.ComponentEvent) + /// public void java.awt.event.ComponentAdapter.componentResized(java.awt.event.ComponentEvent) - public native void __componentShown( long __swiftObject, java.awt.event.ComponentEvent e ); + public native void __componentResized( long __swiftObject, java.awt.event.ComponentEvent e ); - boolean entered_componentShown_2; + boolean entered_componentResized_2; - public void componentShown( java.awt.event.ComponentEvent e ) { - if ( !entered_componentShown_2 ) { - entered_componentShown_2 = true; - __componentShown( __swiftObject, e); - entered_componentShown_2 = false; + public void componentResized( java.awt.event.ComponentEvent e ) { + if ( !entered_componentResized_2 ) { + entered_componentResized_2 = true; + __componentResized( __swiftObject, e); + entered_componentResized_2 = false; } else - super.componentShown( e ); + super.componentResized( e ); } - /// public void java.awt.event.ComponentAdapter.componentHidden(java.awt.event.ComponentEvent) + /// public void java.awt.event.ComponentAdapter.componentShown(java.awt.event.ComponentEvent) - public native void __componentHidden( long __swiftObject, java.awt.event.ComponentEvent e ); + public native void __componentShown( long __swiftObject, java.awt.event.ComponentEvent e ); - boolean entered_componentHidden_3; + boolean entered_componentShown_3; - public void componentHidden( java.awt.event.ComponentEvent e ) { - if ( !entered_componentHidden_3 ) { - entered_componentHidden_3 = true; - __componentHidden( __swiftObject, e); - entered_componentHidden_3 = false; + public void componentShown( java.awt.event.ComponentEvent e ) { + if ( !entered_componentShown_3 ) { + entered_componentShown_3 = true; + __componentShown( __swiftObject, e); + entered_componentShown_3 = false; } else - super.componentHidden( e ); + super.componentShown( e ); } /// public boolean java.lang.Object.equals(java.lang.Object) @@ -96,38 +99,38 @@ public boolean equals( java.lang.Object arg0 ) { return super.equals( arg0 ); } - /// public java.lang.String java.lang.Object.toString() + /// public native int java.lang.Object.hashCode() - public native java.lang.String __toString( long __swiftObject ); + public native int __hashCode( long __swiftObject ); - boolean entered_toString_5; + boolean entered_hashCode_5; - public java.lang.String toString() { - if ( !entered_toString_5 ) { - entered_toString_5 = true; - java.lang.String __return = __toString( __swiftObject ); - entered_toString_5 = false; + public int hashCode() { + if ( !entered_hashCode_5 ) { + entered_hashCode_5 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_5 = false; return __return; } else - return super.toString( ); + return super.hashCode( ); } - /// public native int java.lang.Object.hashCode() + /// public java.lang.String java.lang.Object.toString() - public native int __hashCode( long __swiftObject ); + public native java.lang.String __toString( long __swiftObject ); - boolean entered_hashCode_6; + boolean entered_toString_6; - public int hashCode() { - if ( !entered_hashCode_6 ) { - entered_hashCode_6 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_6 = false; + public java.lang.String toString() { + if ( !entered_toString_6 ) { + entered_toString_6 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_6 = false; return __return; } else - return super.hashCode( ); + return super.toString( ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/ComponentListenerProxy.java b/src/org/swiftjava/java_awt/ComponentListenerProxy.java index bbedf7c..d5ff19b 100644 --- a/src/org/swiftjava/java_awt/ComponentListenerProxy.java +++ b/src/org/swiftjava/java_awt/ComponentListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.ComponentListener /// package org.swiftjava.java_awt; @@ -6,18 +8,19 @@ @SuppressWarnings("JniMissingFunction") public class ComponentListenerProxy implements java.awt.event.ComponentListener { + // address of proxy object long __swiftObject; ComponentListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.ComponentListener.componentResized(java.awt.event.ComponentEvent) + /// public abstract void java.awt.event.ComponentListener.componentHidden(java.awt.event.ComponentEvent) - public native void __componentResized( long __swiftObject, java.awt.event.ComponentEvent e ); + public native void __componentHidden( long __swiftObject, java.awt.event.ComponentEvent e ); - public void componentResized( java.awt.event.ComponentEvent e ) { - __componentResized( __swiftObject, e ); + public void componentHidden( java.awt.event.ComponentEvent e ) { + __componentHidden( __swiftObject, e ); } /// public abstract void java.awt.event.ComponentListener.componentMoved(java.awt.event.ComponentEvent) @@ -28,20 +31,20 @@ public void componentMoved( java.awt.event.ComponentEvent e ) { __componentMoved( __swiftObject, e ); } - /// public abstract void java.awt.event.ComponentListener.componentShown(java.awt.event.ComponentEvent) + /// public abstract void java.awt.event.ComponentListener.componentResized(java.awt.event.ComponentEvent) - public native void __componentShown( long __swiftObject, java.awt.event.ComponentEvent e ); + public native void __componentResized( long __swiftObject, java.awt.event.ComponentEvent e ); - public void componentShown( java.awt.event.ComponentEvent e ) { - __componentShown( __swiftObject, e ); + public void componentResized( java.awt.event.ComponentEvent e ) { + __componentResized( __swiftObject, e ); } - /// public abstract void java.awt.event.ComponentListener.componentHidden(java.awt.event.ComponentEvent) + /// public abstract void java.awt.event.ComponentListener.componentShown(java.awt.event.ComponentEvent) - public native void __componentHidden( long __swiftObject, java.awt.event.ComponentEvent e ); + public native void __componentShown( long __swiftObject, java.awt.event.ComponentEvent e ); - public void componentHidden( java.awt.event.ComponentEvent e ) { - __componentHidden( __swiftObject, e ); + public void componentShown( java.awt.event.ComponentEvent e ) { + __componentShown( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/ContainerAdapterProxy.java b/src/org/swiftjava/java_awt/ContainerAdapterProxy.java index b4b52a9..cbe61e8 100644 --- a/src/org/swiftjava/java_awt/ContainerAdapterProxy.java +++ b/src/org/swiftjava/java_awt/ContainerAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.ContainerAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ContainerAdapterProxy extends java.awt.event.ContainerAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.ContainerAdapter() @@ -64,38 +67,38 @@ public boolean equals( java.lang.Object arg0 ) { return super.equals( arg0 ); } - /// public java.lang.String java.lang.Object.toString() + /// public native int java.lang.Object.hashCode() - public native java.lang.String __toString( long __swiftObject ); + public native int __hashCode( long __swiftObject ); - boolean entered_toString_3; + boolean entered_hashCode_3; - public java.lang.String toString() { - if ( !entered_toString_3 ) { - entered_toString_3 = true; - java.lang.String __return = __toString( __swiftObject ); - entered_toString_3 = false; + public int hashCode() { + if ( !entered_hashCode_3 ) { + entered_hashCode_3 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_3 = false; return __return; } else - return super.toString( ); + return super.hashCode( ); } - /// public native int java.lang.Object.hashCode() + /// public java.lang.String java.lang.Object.toString() - public native int __hashCode( long __swiftObject ); + public native java.lang.String __toString( long __swiftObject ); - boolean entered_hashCode_4; + boolean entered_toString_4; - public int hashCode() { - if ( !entered_hashCode_4 ) { - entered_hashCode_4 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_4 = false; + public java.lang.String toString() { + if ( !entered_toString_4 ) { + entered_toString_4 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_4 = false; return __return; } else - return super.hashCode( ); + return super.toString( ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/ContainerListenerProxy.java b/src/org/swiftjava/java_awt/ContainerListenerProxy.java index 4d711a2..510474d 100644 --- a/src/org/swiftjava/java_awt/ContainerListenerProxy.java +++ b/src/org/swiftjava/java_awt/ContainerListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.ContainerListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ContainerListenerProxy implements java.awt.event.ContainerListener { + // address of proxy object long __swiftObject; ContainerListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/DialogProxy.java b/src/org/swiftjava/java_awt/DialogProxy.java index a8d1f74..3ad6137 100644 --- a/src/org/swiftjava/java_awt/DialogProxy.java +++ b/src/org/swiftjava/java_awt/DialogProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.Dialog /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DialogProxy extends java.awt.Dialog { + // address of proxy object long __swiftObject; /// public java.awt.Dialog(java.awt.Window,java.lang.String) diff --git a/src/org/swiftjava/java_awt/DragGestureListenerProxy.java b/src/org/swiftjava/java_awt/DragGestureListenerProxy.java index 303b802..fbc11d1 100644 --- a/src/org/swiftjava/java_awt/DragGestureListenerProxy.java +++ b/src/org/swiftjava/java_awt/DragGestureListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.dnd.DragGestureListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DragGestureListenerProxy implements java.awt.dnd.DragGestureListener { + // address of proxy object long __swiftObject; DragGestureListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java b/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java index b127a23..1af1186 100644 --- a/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java +++ b/src/org/swiftjava/java_awt/DragSourceAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.dnd.DragSourceAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DragSourceAdapterProxy extends java.awt.dnd.DragSourceAdapter { + // address of proxy object long __swiftObject; /// public java.awt.dnd.DragSourceAdapter() @@ -31,49 +34,65 @@ public void dragDropEnd( java.awt.dnd.DragSourceDropEvent dsde ) { super.dragDropEnd( dsde ); } - /// public void java.awt.dnd.DragSourceAdapter.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) + /// public void java.awt.dnd.DragSourceAdapter.dragEnter(java.awt.dnd.DragSourceDragEvent) - public native void __dragMouseMoved( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + public native void __dragEnter( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - boolean entered_dragMouseMoved_1; + boolean entered_dragEnter_1; - public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dragMouseMoved_1 ) { - entered_dragMouseMoved_1 = true; - __dragMouseMoved( __swiftObject, dsde); - entered_dragMouseMoved_1 = false; + public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { + if ( !entered_dragEnter_1 ) { + entered_dragEnter_1 = true; + __dragEnter( __swiftObject, dsde); + entered_dragEnter_1 = false; } else - super.dragMouseMoved( dsde ); + super.dragEnter( dsde ); } - /// public void java.awt.dnd.DragSourceAdapter.dragEnter(java.awt.dnd.DragSourceDragEvent) + /// public void java.awt.dnd.DragSourceAdapter.dragExit(java.awt.dnd.DragSourceEvent) - public native void __dragEnter( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); - boolean entered_dragEnter_2; + boolean entered_dragExit_2; - public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dragEnter_2 ) { - entered_dragEnter_2 = true; - __dragEnter( __swiftObject, dsde); - entered_dragEnter_2 = false; + public void dragExit( java.awt.dnd.DragSourceEvent dse ) { + if ( !entered_dragExit_2 ) { + entered_dragExit_2 = true; + __dragExit( __swiftObject, dse); + entered_dragExit_2 = false; } else - super.dragEnter( dsde ); + super.dragExit( dse ); + } + + /// public void java.awt.dnd.DragSourceAdapter.dragMouseMoved(java.awt.dnd.DragSourceDragEvent) + + public native void __dragMouseMoved( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); + + boolean entered_dragMouseMoved_3; + + public void dragMouseMoved( java.awt.dnd.DragSourceDragEvent dsde ) { + if ( !entered_dragMouseMoved_3 ) { + entered_dragMouseMoved_3 = true; + __dragMouseMoved( __swiftObject, dsde); + entered_dragMouseMoved_3 = false; + } + else + super.dragMouseMoved( dsde ); } /// public void java.awt.dnd.DragSourceAdapter.dragOver(java.awt.dnd.DragSourceDragEvent) public native void __dragOver( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - boolean entered_dragOver_3; + boolean entered_dragOver_4; public void dragOver( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dragOver_3 ) { - entered_dragOver_3 = true; + if ( !entered_dragOver_4 ) { + entered_dragOver_4 = true; __dragOver( __swiftObject, dsde); - entered_dragOver_3 = false; + entered_dragOver_4 = false; } else super.dragOver( dsde ); @@ -83,34 +102,18 @@ public void dragOver( java.awt.dnd.DragSourceDragEvent dsde ) { public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); - boolean entered_dropActionChanged_4; + boolean entered_dropActionChanged_5; public void dropActionChanged( java.awt.dnd.DragSourceDragEvent dsde ) { - if ( !entered_dropActionChanged_4 ) { - entered_dropActionChanged_4 = true; + if ( !entered_dropActionChanged_5 ) { + entered_dropActionChanged_5 = true; __dropActionChanged( __swiftObject, dsde); - entered_dropActionChanged_4 = false; + entered_dropActionChanged_5 = false; } else super.dropActionChanged( dsde ); } - /// public void java.awt.dnd.DragSourceAdapter.dragExit(java.awt.dnd.DragSourceEvent) - - public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); - - boolean entered_dragExit_5; - - public void dragExit( java.awt.dnd.DragSourceEvent dse ) { - if ( !entered_dragExit_5 ) { - entered_dragExit_5 = true; - __dragExit( __swiftObject, dse); - entered_dragExit_5 = false; - } - else - super.dragExit( dse ); - } - /// public boolean java.lang.Object.equals(java.lang.Object) public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); @@ -128,38 +131,38 @@ public boolean equals( java.lang.Object arg0 ) { return super.equals( arg0 ); } - /// public java.lang.String java.lang.Object.toString() + /// public native int java.lang.Object.hashCode() - public native java.lang.String __toString( long __swiftObject ); + public native int __hashCode( long __swiftObject ); - boolean entered_toString_7; + boolean entered_hashCode_7; - public java.lang.String toString() { - if ( !entered_toString_7 ) { - entered_toString_7 = true; - java.lang.String __return = __toString( __swiftObject ); - entered_toString_7 = false; + public int hashCode() { + if ( !entered_hashCode_7 ) { + entered_hashCode_7 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_7 = false; return __return; } else - return super.toString( ); + return super.hashCode( ); } - /// public native int java.lang.Object.hashCode() + /// public java.lang.String java.lang.Object.toString() - public native int __hashCode( long __swiftObject ); + public native java.lang.String __toString( long __swiftObject ); - boolean entered_hashCode_8; + boolean entered_toString_8; - public int hashCode() { - if ( !entered_hashCode_8 ) { - entered_hashCode_8 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_8 = false; + public java.lang.String toString() { + if ( !entered_toString_8 ) { + entered_toString_8 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_8 = false; return __return; } else - return super.hashCode( ); + return super.toString( ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/DragSourceListenerProxy.java b/src/org/swiftjava/java_awt/DragSourceListenerProxy.java index d4b5b3e..f33544e 100644 --- a/src/org/swiftjava/java_awt/DragSourceListenerProxy.java +++ b/src/org/swiftjava/java_awt/DragSourceListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.dnd.DragSourceListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DragSourceListenerProxy implements java.awt.dnd.DragSourceListener { + // address of proxy object long __swiftObject; DragSourceListenerProxy( long __swiftObject ) { @@ -28,6 +31,14 @@ public void dragEnter( java.awt.dnd.DragSourceDragEvent dsde ) { __dragEnter( __swiftObject, dsde ); } + /// public abstract void java.awt.dnd.DragSourceListener.dragExit(java.awt.dnd.DragSourceEvent) + + public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); + + public void dragExit( java.awt.dnd.DragSourceEvent dse ) { + __dragExit( __swiftObject, dse ); + } + /// public abstract void java.awt.dnd.DragSourceListener.dragOver(java.awt.dnd.DragSourceDragEvent) public native void __dragOver( long __swiftObject, java.awt.dnd.DragSourceDragEvent dsde ); @@ -44,14 +55,6 @@ public void dropActionChanged( java.awt.dnd.DragSourceDragEvent dsde ) { __dropActionChanged( __swiftObject, dsde ); } - /// public abstract void java.awt.dnd.DragSourceListener.dragExit(java.awt.dnd.DragSourceEvent) - - public native void __dragExit( long __swiftObject, java.awt.dnd.DragSourceEvent dse ); - - public void dragExit( java.awt.dnd.DragSourceEvent dse ) { - __dragExit( __swiftObject, dse ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java b/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java index f318fab..fca18fd 100644 --- a/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java +++ b/src/org/swiftjava/java_awt/DragSourceMotionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.dnd.DragSourceMotionListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DragSourceMotionListenerProxy implements java.awt.dnd.DragSourceMotionListener { + // address of proxy object long __swiftObject; DragSourceMotionListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/DropTargetAdapterProxy.java b/src/org/swiftjava/java_awt/DropTargetAdapterProxy.java new file mode 100644 index 0000000..3e757d1 --- /dev/null +++ b/src/org/swiftjava/java_awt/DropTargetAdapterProxy.java @@ -0,0 +1,152 @@ + +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + +/// class java.awt.dnd.DropTargetAdapter /// + +package org.swiftjava.java_awt; + +@SuppressWarnings("JniMissingFunction") +public class DropTargetAdapterProxy extends java.awt.dnd.DropTargetAdapter { + + // address of proxy object + long __swiftObject; + + /// public java.awt.dnd.DropTargetAdapter() + + DropTargetAdapterProxy( long __swiftObject ) { + super( ); + this.__swiftObject = __swiftObject; + } + + /// public void java.awt.dnd.DropTargetAdapter.dragEnter(java.awt.dnd.DropTargetDragEvent) + + public native void __dragEnter( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + boolean entered_dragEnter_0; + + public void dragEnter( java.awt.dnd.DropTargetDragEvent dtde ) { + if ( !entered_dragEnter_0 ) { + entered_dragEnter_0 = true; + __dragEnter( __swiftObject, dtde); + entered_dragEnter_0 = false; + } + else + super.dragEnter( dtde ); + } + + /// public void java.awt.dnd.DropTargetAdapter.dragExit(java.awt.dnd.DropTargetEvent) + + public native void __dragExit( long __swiftObject, java.awt.dnd.DropTargetEvent dte ); + + boolean entered_dragExit_1; + + public void dragExit( java.awt.dnd.DropTargetEvent dte ) { + if ( !entered_dragExit_1 ) { + entered_dragExit_1 = true; + __dragExit( __swiftObject, dte); + entered_dragExit_1 = false; + } + else + super.dragExit( dte ); + } + + /// public void java.awt.dnd.DropTargetAdapter.dragOver(java.awt.dnd.DropTargetDragEvent) + + public native void __dragOver( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + boolean entered_dragOver_2; + + public void dragOver( java.awt.dnd.DropTargetDragEvent dtde ) { + if ( !entered_dragOver_2 ) { + entered_dragOver_2 = true; + __dragOver( __swiftObject, dtde); + entered_dragOver_2 = false; + } + else + super.dragOver( dtde ); + } + + /// public abstract void java.awt.dnd.DropTargetListener.drop(java.awt.dnd.DropTargetDropEvent) + + public native void __drop( long __swiftObject, java.awt.dnd.DropTargetDropEvent dtde ); + + boolean entered_drop_3; + + public void drop( java.awt.dnd.DropTargetDropEvent dtde ) { + __drop( __swiftObject, dtde ); + } + + /// public void java.awt.dnd.DropTargetAdapter.dropActionChanged(java.awt.dnd.DropTargetDragEvent) + + public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + boolean entered_dropActionChanged_4; + + public void dropActionChanged( java.awt.dnd.DropTargetDragEvent dtde ) { + if ( !entered_dropActionChanged_4 ) { + entered_dropActionChanged_4 = true; + __dropActionChanged( __swiftObject, dtde); + entered_dropActionChanged_4 = false; + } + else + super.dropActionChanged( dtde ); + } + + /// public boolean java.lang.Object.equals(java.lang.Object) + + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + + boolean entered_equals_5; + + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_5 ) { + entered_equals_5 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_5 = false; + return __return; + } + else + return super.equals( arg0 ); + } + + /// public native int java.lang.Object.hashCode() + + public native int __hashCode( long __swiftObject ); + + boolean entered_hashCode_6; + + public int hashCode() { + if ( !entered_hashCode_6 ) { + entered_hashCode_6 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_6 = false; + return __return; + } + else + return super.hashCode( ); + } + + /// public java.lang.String java.lang.Object.toString() + + public native java.lang.String __toString( long __swiftObject ); + + boolean entered_toString_7; + + public java.lang.String toString() { + if ( !entered_toString_7 ) { + entered_toString_7 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_7 = false; + return __return; + } + else + return super.toString( ); + } + + public native void __finalize( long __swiftObject ); + + public void finalize() { + __finalize( __swiftObject ); + } + +} diff --git a/src/org/swiftjava/java_awt/DropTargetListenerProxy.java b/src/org/swiftjava/java_awt/DropTargetListenerProxy.java index 0a1f16b..7140c73 100644 --- a/src/org/swiftjava/java_awt/DropTargetListenerProxy.java +++ b/src/org/swiftjava/java_awt/DropTargetListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.dnd.DropTargetListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DropTargetListenerProxy implements java.awt.dnd.DropTargetListener { + // address of proxy object long __swiftObject; DropTargetListenerProxy( long __swiftObject ) { @@ -20,22 +23,6 @@ public void dragEnter( java.awt.dnd.DropTargetDragEvent dtde ) { __dragEnter( __swiftObject, dtde ); } - /// public abstract void java.awt.dnd.DropTargetListener.dragOver(java.awt.dnd.DropTargetDragEvent) - - public native void __dragOver( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); - - public void dragOver( java.awt.dnd.DropTargetDragEvent dtde ) { - __dragOver( __swiftObject, dtde ); - } - - /// public abstract void java.awt.dnd.DropTargetListener.dropActionChanged(java.awt.dnd.DropTargetDragEvent) - - public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); - - public void dropActionChanged( java.awt.dnd.DropTargetDragEvent dtde ) { - __dropActionChanged( __swiftObject, dtde ); - } - /// public abstract void java.awt.dnd.DropTargetListener.dragExit(java.awt.dnd.DropTargetEvent) public native void __dragExit( long __swiftObject, java.awt.dnd.DropTargetEvent dte ); @@ -44,6 +31,14 @@ public void dragExit( java.awt.dnd.DropTargetEvent dte ) { __dragExit( __swiftObject, dte ); } + /// public abstract void java.awt.dnd.DropTargetListener.dragOver(java.awt.dnd.DropTargetDragEvent) + + public native void __dragOver( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + public void dragOver( java.awt.dnd.DropTargetDragEvent dtde ) { + __dragOver( __swiftObject, dtde ); + } + /// public abstract void java.awt.dnd.DropTargetListener.drop(java.awt.dnd.DropTargetDropEvent) public native void __drop( long __swiftObject, java.awt.dnd.DropTargetDropEvent dtde ); @@ -52,6 +47,14 @@ public void drop( java.awt.dnd.DropTargetDropEvent dtde ) { __drop( __swiftObject, dtde ); } + /// public abstract void java.awt.dnd.DropTargetListener.dropActionChanged(java.awt.dnd.DropTargetDragEvent) + + public native void __dropActionChanged( long __swiftObject, java.awt.dnd.DropTargetDragEvent dtde ); + + public void dropActionChanged( java.awt.dnd.DropTargetDragEvent dtde ) { + __dropActionChanged( __swiftObject, dtde ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/FileDialogProxy.java b/src/org/swiftjava/java_awt/FileDialogProxy.java index 47badcb..48f83bf 100644 --- a/src/org/swiftjava/java_awt/FileDialogProxy.java +++ b/src/org/swiftjava/java_awt/FileDialogProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.FileDialog /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class FileDialogProxy extends java.awt.FileDialog { + // address of proxy object long __swiftObject; /// public java.awt.FileDialog(java.awt.Dialog,java.lang.String) diff --git a/src/org/swiftjava/java_awt/FlavorListenerProxy.java b/src/org/swiftjava/java_awt/FlavorListenerProxy.java index 2c38ce0..af25bb2 100644 --- a/src/org/swiftjava/java_awt/FlavorListenerProxy.java +++ b/src/org/swiftjava/java_awt/FlavorListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.datatransfer.FlavorListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class FlavorListenerProxy implements java.awt.datatransfer.FlavorListener { + // address of proxy object long __swiftObject; FlavorListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/FocusAdapterProxy.java b/src/org/swiftjava/java_awt/FocusAdapterProxy.java index 50ee35b..7c93384 100644 --- a/src/org/swiftjava/java_awt/FocusAdapterProxy.java +++ b/src/org/swiftjava/java_awt/FocusAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.FocusAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class FocusAdapterProxy extends java.awt.event.FocusAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.FocusAdapter() @@ -15,17 +18,34 @@ public class FocusAdapterProxy extends java.awt.event.FocusAdapter { this.__swiftObject = __swiftObject; } + /// public boolean java.lang.Object.equals(java.lang.Object) + + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + + boolean entered_equals_0; + + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; + } + else + return super.equals( arg0 ); + } + /// public void java.awt.event.FocusAdapter.focusGained(java.awt.event.FocusEvent) public native void __focusGained( long __swiftObject, java.awt.event.FocusEvent e ); - boolean entered_focusGained_0; + boolean entered_focusGained_1; public void focusGained( java.awt.event.FocusEvent e ) { - if ( !entered_focusGained_0 ) { - entered_focusGained_0 = true; + if ( !entered_focusGained_1 ) { + entered_focusGained_1 = true; __focusGained( __swiftObject, e); - entered_focusGained_0 = false; + entered_focusGained_1 = false; } else super.focusGained( e ); @@ -35,69 +55,52 @@ public void focusGained( java.awt.event.FocusEvent e ) { public native void __focusLost( long __swiftObject, java.awt.event.FocusEvent e ); - boolean entered_focusLost_1; + boolean entered_focusLost_2; public void focusLost( java.awt.event.FocusEvent e ) { - if ( !entered_focusLost_1 ) { - entered_focusLost_1 = true; + if ( !entered_focusLost_2 ) { + entered_focusLost_2 = true; __focusLost( __swiftObject, e); - entered_focusLost_1 = false; + entered_focusLost_2 = false; } else super.focusLost( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public native int java.lang.Object.hashCode() - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native int __hashCode( long __swiftObject ); - boolean entered_equals_2; + boolean entered_hashCode_3; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_2 ) { - entered_equals_2 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_2 = false; + public int hashCode() { + if ( !entered_hashCode_3 ) { + entered_hashCode_3 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_3 = false; return __return; } else - return super.equals( arg0 ); + return super.hashCode( ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_3; + boolean entered_toString_4; public java.lang.String toString() { - if ( !entered_toString_3 ) { - entered_toString_3 = true; + if ( !entered_toString_4 ) { + entered_toString_4 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_3 = false; + entered_toString_4 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_4; - - public int hashCode() { - if ( !entered_hashCode_4 ) { - entered_hashCode_4 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_4 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/FocusListenerProxy.java b/src/org/swiftjava/java_awt/FocusListenerProxy.java index d0cd52c..d856bbd 100644 --- a/src/org/swiftjava/java_awt/FocusListenerProxy.java +++ b/src/org/swiftjava/java_awt/FocusListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.FocusListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class FocusListenerProxy implements java.awt.event.FocusListener { + // address of proxy object long __swiftObject; FocusListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/FrameProxy.java b/src/org/swiftjava/java_awt/FrameProxy.java index 5ca6059..a109a31 100644 --- a/src/org/swiftjava/java_awt/FrameProxy.java +++ b/src/org/swiftjava/java_awt/FrameProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.Frame /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class FrameProxy extends java.awt.Frame { + // address of proxy object long __swiftObject; /// public java.awt.Frame(java.lang.String,java.awt.GraphicsConfiguration) diff --git a/src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java b/src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java index f369b95..0a202de 100644 --- a/src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java +++ b/src/org/swiftjava/java_awt/HierarchyBoundsAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.HierarchyBoundsAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class HierarchyBoundsAdapterProxy extends java.awt.event.HierarchyBoundsAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.HierarchyBoundsAdapter() @@ -64,38 +67,38 @@ public boolean equals( java.lang.Object arg0 ) { return super.equals( arg0 ); } - /// public java.lang.String java.lang.Object.toString() + /// public native int java.lang.Object.hashCode() - public native java.lang.String __toString( long __swiftObject ); + public native int __hashCode( long __swiftObject ); - boolean entered_toString_3; + boolean entered_hashCode_3; - public java.lang.String toString() { - if ( !entered_toString_3 ) { - entered_toString_3 = true; - java.lang.String __return = __toString( __swiftObject ); - entered_toString_3 = false; + public int hashCode() { + if ( !entered_hashCode_3 ) { + entered_hashCode_3 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_3 = false; return __return; } else - return super.toString( ); + return super.hashCode( ); } - /// public native int java.lang.Object.hashCode() + /// public java.lang.String java.lang.Object.toString() - public native int __hashCode( long __swiftObject ); + public native java.lang.String __toString( long __swiftObject ); - boolean entered_hashCode_4; + boolean entered_toString_4; - public int hashCode() { - if ( !entered_hashCode_4 ) { - entered_hashCode_4 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_4 = false; + public java.lang.String toString() { + if ( !entered_toString_4 ) { + entered_toString_4 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_4 = false; return __return; } else - return super.hashCode( ); + return super.toString( ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java b/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java index 452b762..b9b9abc 100644 --- a/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java +++ b/src/org/swiftjava/java_awt/HierarchyBoundsListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.HierarchyBoundsListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class HierarchyBoundsListenerProxy implements java.awt.event.HierarchyBoundsListener { + // address of proxy object long __swiftObject; HierarchyBoundsListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/HierarchyListenerProxy.java b/src/org/swiftjava/java_awt/HierarchyListenerProxy.java index 645d6a4..445097b 100644 --- a/src/org/swiftjava/java_awt/HierarchyListenerProxy.java +++ b/src/org/swiftjava/java_awt/HierarchyListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.HierarchyListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class HierarchyListenerProxy implements java.awt.event.HierarchyListener { + // address of proxy object long __swiftObject; HierarchyListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/InputMethodListenerProxy.java b/src/org/swiftjava/java_awt/InputMethodListenerProxy.java index a729acb..dbeb4ac 100644 --- a/src/org/swiftjava/java_awt/InputMethodListenerProxy.java +++ b/src/org/swiftjava/java_awt/InputMethodListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.InputMethodListener /// package org.swiftjava.java_awt; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class InputMethodListenerProxy implements java.awt.event.InputMethodListener { + // address of proxy object long __swiftObject; InputMethodListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.InputMethodListener.inputMethodTextChanged(java.awt.event.InputMethodEvent) - - public native void __inputMethodTextChanged( long __swiftObject, java.awt.event.InputMethodEvent event ); - - public void inputMethodTextChanged( java.awt.event.InputMethodEvent event ) { - __inputMethodTextChanged( __swiftObject, event ); - } - /// public abstract void java.awt.event.InputMethodListener.caretPositionChanged(java.awt.event.InputMethodEvent) public native void __caretPositionChanged( long __swiftObject, java.awt.event.InputMethodEvent event ); @@ -28,6 +23,14 @@ public void caretPositionChanged( java.awt.event.InputMethodEvent event ) { __caretPositionChanged( __swiftObject, event ); } + /// public abstract void java.awt.event.InputMethodListener.inputMethodTextChanged(java.awt.event.InputMethodEvent) + + public native void __inputMethodTextChanged( long __swiftObject, java.awt.event.InputMethodEvent event ); + + public void inputMethodTextChanged( java.awt.event.InputMethodEvent event ) { + __inputMethodTextChanged( __swiftObject, event ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/ItemListenerProxy.java b/src/org/swiftjava/java_awt/ItemListenerProxy.java index 5772765..2da4b46 100644 --- a/src/org/swiftjava/java_awt/ItemListenerProxy.java +++ b/src/org/swiftjava/java_awt/ItemListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.ItemListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ItemListenerProxy implements java.awt.event.ItemListener { + // address of proxy object long __swiftObject; ItemListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/KeyAdapterProxy.java b/src/org/swiftjava/java_awt/KeyAdapterProxy.java index 7b8e52d..9f9a106 100644 --- a/src/org/swiftjava/java_awt/KeyAdapterProxy.java +++ b/src/org/swiftjava/java_awt/KeyAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.KeyAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class KeyAdapterProxy extends java.awt.event.KeyAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.KeyAdapter() @@ -15,33 +18,51 @@ public class KeyAdapterProxy extends java.awt.event.KeyAdapter { this.__swiftObject = __swiftObject; } - /// public void java.awt.event.KeyAdapter.keyTyped(java.awt.event.KeyEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __keyTyped( long __swiftObject, java.awt.event.KeyEvent e ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_keyTyped_0; + boolean entered_equals_0; - public void keyTyped( java.awt.event.KeyEvent e ) { - if ( !entered_keyTyped_0 ) { - entered_keyTyped_0 = true; - __keyTyped( __swiftObject, e); - entered_keyTyped_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.keyTyped( e ); + return super.equals( arg0 ); + } + + /// public native int java.lang.Object.hashCode() + + public native int __hashCode( long __swiftObject ); + + boolean entered_hashCode_1; + + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; + } + else + return super.hashCode( ); } /// public void java.awt.event.KeyAdapter.keyPressed(java.awt.event.KeyEvent) public native void __keyPressed( long __swiftObject, java.awt.event.KeyEvent e ); - boolean entered_keyPressed_1; + boolean entered_keyPressed_2; public void keyPressed( java.awt.event.KeyEvent e ) { - if ( !entered_keyPressed_1 ) { - entered_keyPressed_1 = true; + if ( !entered_keyPressed_2 ) { + entered_keyPressed_2 = true; __keyPressed( __swiftObject, e); - entered_keyPressed_1 = false; + entered_keyPressed_2 = false; } else super.keyPressed( e ); @@ -51,69 +72,51 @@ public void keyPressed( java.awt.event.KeyEvent e ) { public native void __keyReleased( long __swiftObject, java.awt.event.KeyEvent e ); - boolean entered_keyReleased_2; + boolean entered_keyReleased_3; public void keyReleased( java.awt.event.KeyEvent e ) { - if ( !entered_keyReleased_2 ) { - entered_keyReleased_2 = true; + if ( !entered_keyReleased_3 ) { + entered_keyReleased_3 = true; __keyReleased( __swiftObject, e); - entered_keyReleased_2 = false; + entered_keyReleased_3 = false; } else super.keyReleased( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void java.awt.event.KeyAdapter.keyTyped(java.awt.event.KeyEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __keyTyped( long __swiftObject, java.awt.event.KeyEvent e ); - boolean entered_equals_3; + boolean entered_keyTyped_4; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_3 ) { - entered_equals_3 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_3 = false; - return __return; + public void keyTyped( java.awt.event.KeyEvent e ) { + if ( !entered_keyTyped_4 ) { + entered_keyTyped_4 = true; + __keyTyped( __swiftObject, e); + entered_keyTyped_4 = false; } else - return super.equals( arg0 ); + super.keyTyped( e ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_4; + boolean entered_toString_5; public java.lang.String toString() { - if ( !entered_toString_4 ) { - entered_toString_4 = true; + if ( !entered_toString_5 ) { + entered_toString_5 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_4 = false; + entered_toString_5 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_5; - - public int hashCode() { - if ( !entered_hashCode_5 ) { - entered_hashCode_5 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_5 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/KeyListenerProxy.java b/src/org/swiftjava/java_awt/KeyListenerProxy.java index 0fc3f10..bf9617f 100644 --- a/src/org/swiftjava/java_awt/KeyListenerProxy.java +++ b/src/org/swiftjava/java_awt/KeyListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.KeyListener /// package org.swiftjava.java_awt; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class KeyListenerProxy implements java.awt.event.KeyListener { + // address of proxy object long __swiftObject; KeyListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.KeyListener.keyTyped(java.awt.event.KeyEvent) - - public native void __keyTyped( long __swiftObject, java.awt.event.KeyEvent e ); - - public void keyTyped( java.awt.event.KeyEvent e ) { - __keyTyped( __swiftObject, e ); - } - /// public abstract void java.awt.event.KeyListener.keyPressed(java.awt.event.KeyEvent) public native void __keyPressed( long __swiftObject, java.awt.event.KeyEvent e ); @@ -36,6 +31,14 @@ public void keyReleased( java.awt.event.KeyEvent e ) { __keyReleased( __swiftObject, e ); } + /// public abstract void java.awt.event.KeyListener.keyTyped(java.awt.event.KeyEvent) + + public native void __keyTyped( long __swiftObject, java.awt.event.KeyEvent e ); + + public void keyTyped( java.awt.event.KeyEvent e ) { + __keyTyped( __swiftObject, e ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/LayoutManagerProxy.java b/src/org/swiftjava/java_awt/LayoutManagerProxy.java index 590c7b6..4421a17 100644 --- a/src/org/swiftjava/java_awt/LayoutManagerProxy.java +++ b/src/org/swiftjava/java_awt/LayoutManagerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.LayoutManager /// package org.swiftjava.java_awt; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class LayoutManagerProxy implements java.awt.LayoutManager { + // address of proxy object long __swiftObject; LayoutManagerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.LayoutManager.removeLayoutComponent(java.awt.Component) - - public native void __removeLayoutComponent( long __swiftObject, java.awt.Component comp ); - - public void removeLayoutComponent( java.awt.Component comp ) { - __removeLayoutComponent( __swiftObject, comp ); - } - /// public abstract void java.awt.LayoutManager.addLayoutComponent(java.lang.String,java.awt.Component) public native void __addLayoutComponent( long __swiftObject, java.lang.String name, java.awt.Component comp ); @@ -36,6 +31,14 @@ public void layoutContainer( java.awt.Container parent ) { __layoutContainer( __swiftObject, parent ); } + /// public abstract java.awt.Dimension java.awt.LayoutManager.minimumLayoutSize(java.awt.Container) + + public native java.awt.Dimension __minimumLayoutSize( long __swiftObject, java.awt.Container parent ); + + public java.awt.Dimension minimumLayoutSize( java.awt.Container parent ) { + return __minimumLayoutSize( __swiftObject, parent ); + } + /// public abstract java.awt.Dimension java.awt.LayoutManager.preferredLayoutSize(java.awt.Container) public native java.awt.Dimension __preferredLayoutSize( long __swiftObject, java.awt.Container parent ); @@ -44,12 +47,12 @@ public java.awt.Dimension preferredLayoutSize( java.awt.Container parent ) { return __preferredLayoutSize( __swiftObject, parent ); } - /// public abstract java.awt.Dimension java.awt.LayoutManager.minimumLayoutSize(java.awt.Container) + /// public abstract void java.awt.LayoutManager.removeLayoutComponent(java.awt.Component) - public native java.awt.Dimension __minimumLayoutSize( long __swiftObject, java.awt.Container parent ); + public native void __removeLayoutComponent( long __swiftObject, java.awt.Component comp ); - public java.awt.Dimension minimumLayoutSize( java.awt.Container parent ) { - return __minimumLayoutSize( __swiftObject, parent ); + public void removeLayoutComponent( java.awt.Component comp ) { + __removeLayoutComponent( __swiftObject, comp ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/MouseAdapterProxy.java b/src/org/swiftjava/java_awt/MouseAdapterProxy.java index c9e329c..5b00c11 100644 --- a/src/org/swiftjava/java_awt/MouseAdapterProxy.java +++ b/src/org/swiftjava/java_awt/MouseAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.MouseAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class MouseAdapterProxy extends java.awt.event.MouseAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.MouseAdapter() @@ -15,36 +18,38 @@ public class MouseAdapterProxy extends java.awt.event.MouseAdapter { this.__swiftObject = __swiftObject; } - /// public void java.awt.event.MouseAdapter.mousePressed(java.awt.event.MouseEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_mousePressed_0; + boolean entered_equals_0; - public void mousePressed( java.awt.event.MouseEvent e ) { - if ( !entered_mousePressed_0 ) { - entered_mousePressed_0 = true; - __mousePressed( __swiftObject, e); - entered_mousePressed_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.mousePressed( e ); + return super.equals( arg0 ); } - /// public void java.awt.event.MouseAdapter.mouseReleased(java.awt.event.MouseEvent) + /// public native int java.lang.Object.hashCode() - public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); + public native int __hashCode( long __swiftObject ); - boolean entered_mouseReleased_1; + boolean entered_hashCode_1; - public void mouseReleased( java.awt.event.MouseEvent e ) { - if ( !entered_mouseReleased_1 ) { - entered_mouseReleased_1 = true; - __mouseReleased( __swiftObject, e); - entered_mouseReleased_1 = false; + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; } else - super.mouseReleased( e ); + return super.hashCode( ); } /// public void java.awt.event.MouseAdapter.mouseClicked(java.awt.event.MouseEvent) @@ -63,20 +68,20 @@ public void mouseClicked( java.awt.event.MouseEvent e ) { super.mouseClicked( e ); } - /// public void java.awt.event.MouseAdapter.mouseExited(java.awt.event.MouseEvent) + /// public void java.awt.event.MouseAdapter.mouseDragged(java.awt.event.MouseEvent) - public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseExited_3; + boolean entered_mouseDragged_3; - public void mouseExited( java.awt.event.MouseEvent e ) { - if ( !entered_mouseExited_3 ) { - entered_mouseExited_3 = true; - __mouseExited( __swiftObject, e); - entered_mouseExited_3 = false; + public void mouseDragged( java.awt.event.MouseEvent e ) { + if ( !entered_mouseDragged_3 ) { + entered_mouseDragged_3 = true; + __mouseDragged( __swiftObject, e); + entered_mouseDragged_3 = false; } else - super.mouseExited( e ); + super.mouseDragged( e ); } /// public void java.awt.event.MouseAdapter.mouseEntered(java.awt.event.MouseEvent) @@ -95,105 +100,103 @@ public void mouseEntered( java.awt.event.MouseEvent e ) { super.mouseEntered( e ); } + /// public void java.awt.event.MouseAdapter.mouseExited(java.awt.event.MouseEvent) + + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + + boolean entered_mouseExited_5; + + public void mouseExited( java.awt.event.MouseEvent e ) { + if ( !entered_mouseExited_5 ) { + entered_mouseExited_5 = true; + __mouseExited( __swiftObject, e); + entered_mouseExited_5 = false; + } + else + super.mouseExited( e ); + } + /// public void java.awt.event.MouseAdapter.mouseMoved(java.awt.event.MouseEvent) public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseMoved_5; + boolean entered_mouseMoved_6; public void mouseMoved( java.awt.event.MouseEvent e ) { - if ( !entered_mouseMoved_5 ) { - entered_mouseMoved_5 = true; + if ( !entered_mouseMoved_6 ) { + entered_mouseMoved_6 = true; __mouseMoved( __swiftObject, e); - entered_mouseMoved_5 = false; + entered_mouseMoved_6 = false; } else super.mouseMoved( e ); } - /// public void java.awt.event.MouseAdapter.mouseDragged(java.awt.event.MouseEvent) + /// public void java.awt.event.MouseAdapter.mousePressed(java.awt.event.MouseEvent) - public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseDragged_6; + boolean entered_mousePressed_7; - public void mouseDragged( java.awt.event.MouseEvent e ) { - if ( !entered_mouseDragged_6 ) { - entered_mouseDragged_6 = true; - __mouseDragged( __swiftObject, e); - entered_mouseDragged_6 = false; + public void mousePressed( java.awt.event.MouseEvent e ) { + if ( !entered_mousePressed_7 ) { + entered_mousePressed_7 = true; + __mousePressed( __swiftObject, e); + entered_mousePressed_7 = false; } else - super.mouseDragged( e ); + super.mousePressed( e ); } - /// public void java.awt.event.MouseAdapter.mouseWheelMoved(java.awt.event.MouseWheelEvent) + /// public void java.awt.event.MouseAdapter.mouseReleased(java.awt.event.MouseEvent) - public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseWheelMoved_7; + boolean entered_mouseReleased_8; - public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { - if ( !entered_mouseWheelMoved_7 ) { - entered_mouseWheelMoved_7 = true; - __mouseWheelMoved( __swiftObject, e); - entered_mouseWheelMoved_7 = false; + public void mouseReleased( java.awt.event.MouseEvent e ) { + if ( !entered_mouseReleased_8 ) { + entered_mouseReleased_8 = true; + __mouseReleased( __swiftObject, e); + entered_mouseReleased_8 = false; } else - super.mouseWheelMoved( e ); + super.mouseReleased( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void java.awt.event.MouseAdapter.mouseWheelMoved(java.awt.event.MouseWheelEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); - boolean entered_equals_8; + boolean entered_mouseWheelMoved_9; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_8 ) { - entered_equals_8 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_8 = false; - return __return; + public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { + if ( !entered_mouseWheelMoved_9 ) { + entered_mouseWheelMoved_9 = true; + __mouseWheelMoved( __swiftObject, e); + entered_mouseWheelMoved_9 = false; } else - return super.equals( arg0 ); + super.mouseWheelMoved( e ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_9; + boolean entered_toString_10; public java.lang.String toString() { - if ( !entered_toString_9 ) { - entered_toString_9 = true; + if ( !entered_toString_10 ) { + entered_toString_10 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_9 = false; + entered_toString_10 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_10; - - public int hashCode() { - if ( !entered_hashCode_10 ) { - entered_hashCode_10 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_10 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/MouseListenerProxy.java b/src/org/swiftjava/java_awt/MouseListenerProxy.java index 742f535..8dd2a4e 100644 --- a/src/org/swiftjava/java_awt/MouseListenerProxy.java +++ b/src/org/swiftjava/java_awt/MouseListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.MouseListener /// package org.swiftjava.java_awt; @@ -6,28 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class MouseListenerProxy implements java.awt.event.MouseListener { + // address of proxy object long __swiftObject; MouseListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) - - public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); - - public void mousePressed( java.awt.event.MouseEvent e ) { - __mousePressed( __swiftObject, e ); - } - - /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) - - public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); - - public void mouseReleased( java.awt.event.MouseEvent e ) { - __mouseReleased( __swiftObject, e ); - } - /// public abstract void java.awt.event.MouseListener.mouseClicked(java.awt.event.MouseEvent) public native void __mouseClicked( long __swiftObject, java.awt.event.MouseEvent e ); @@ -36,6 +23,14 @@ public void mouseClicked( java.awt.event.MouseEvent e ) { __mouseClicked( __swiftObject, e ); } + /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) + + public native void __mouseEntered( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseEntered( java.awt.event.MouseEvent e ) { + __mouseEntered( __swiftObject, e ); + } + /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); @@ -44,12 +39,20 @@ public void mouseExited( java.awt.event.MouseEvent e ) { __mouseExited( __swiftObject, e ); } - /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) + /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) - public native void __mouseEntered( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); - public void mouseEntered( java.awt.event.MouseEvent e ) { - __mouseEntered( __swiftObject, e ); + public void mousePressed( java.awt.event.MouseEvent e ) { + __mousePressed( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) + + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseReleased( java.awt.event.MouseEvent e ) { + __mouseReleased( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java b/src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java index 1a2afac..5974a3e 100644 --- a/src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java +++ b/src/org/swiftjava/java_awt/MouseMotionAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.MouseMotionAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class MouseMotionAdapterProxy extends java.awt.event.MouseMotionAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.MouseMotionAdapter() @@ -15,89 +18,89 @@ public class MouseMotionAdapterProxy extends java.awt.event.MouseMotionAdapter { this.__swiftObject = __swiftObject; } - /// public void java.awt.event.MouseMotionAdapter.mouseMoved(java.awt.event.MouseEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_mouseMoved_0; + boolean entered_equals_0; - public void mouseMoved( java.awt.event.MouseEvent e ) { - if ( !entered_mouseMoved_0 ) { - entered_mouseMoved_0 = true; - __mouseMoved( __swiftObject, e); - entered_mouseMoved_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.mouseMoved( e ); + return super.equals( arg0 ); + } + + /// public native int java.lang.Object.hashCode() + + public native int __hashCode( long __swiftObject ); + + boolean entered_hashCode_1; + + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; + } + else + return super.hashCode( ); } /// public void java.awt.event.MouseMotionAdapter.mouseDragged(java.awt.event.MouseEvent) public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseDragged_1; + boolean entered_mouseDragged_2; public void mouseDragged( java.awt.event.MouseEvent e ) { - if ( !entered_mouseDragged_1 ) { - entered_mouseDragged_1 = true; + if ( !entered_mouseDragged_2 ) { + entered_mouseDragged_2 = true; __mouseDragged( __swiftObject, e); - entered_mouseDragged_1 = false; + entered_mouseDragged_2 = false; } else super.mouseDragged( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void java.awt.event.MouseMotionAdapter.mouseMoved(java.awt.event.MouseEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_equals_2; + boolean entered_mouseMoved_3; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_2 ) { - entered_equals_2 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_2 = false; - return __return; + public void mouseMoved( java.awt.event.MouseEvent e ) { + if ( !entered_mouseMoved_3 ) { + entered_mouseMoved_3 = true; + __mouseMoved( __swiftObject, e); + entered_mouseMoved_3 = false; } else - return super.equals( arg0 ); + super.mouseMoved( e ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_3; + boolean entered_toString_4; public java.lang.String toString() { - if ( !entered_toString_3 ) { - entered_toString_3 = true; + if ( !entered_toString_4 ) { + entered_toString_4 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_3 = false; + entered_toString_4 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_4; - - public int hashCode() { - if ( !entered_hashCode_4 ) { - entered_hashCode_4 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_4 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java b/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java index 4189677..0939e54 100644 --- a/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java +++ b/src/org/swiftjava/java_awt/MouseMotionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.MouseMotionListener /// package org.swiftjava.java_awt; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class MouseMotionListenerProxy implements java.awt.event.MouseMotionListener { + // address of proxy object long __swiftObject; MouseMotionListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) - - public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); - - public void mouseMoved( java.awt.event.MouseEvent e ) { - __mouseMoved( __swiftObject, e ); - } - /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); @@ -28,6 +23,14 @@ public void mouseDragged( java.awt.event.MouseEvent e ) { __mouseDragged( __swiftObject, e ); } + /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) + + public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseMoved( java.awt.event.MouseEvent e ) { + __mouseMoved( __swiftObject, e ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java b/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java index bfb6d51..3fa35f3 100644 --- a/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java +++ b/src/org/swiftjava/java_awt/MouseWheelListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.MouseWheelListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class MouseWheelListenerProxy implements java.awt.event.MouseWheelListener { + // address of proxy object long __swiftObject; MouseWheelListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/TextListenerProxy.java b/src/org/swiftjava/java_awt/TextListenerProxy.java index 0a547e8..e37256c 100644 --- a/src/org/swiftjava/java_awt/TextListenerProxy.java +++ b/src/org/swiftjava/java_awt/TextListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.TextListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class TextListenerProxy implements java.awt.event.TextListener { + // address of proxy object long __swiftObject; TextListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/WindowAdapterProxy.java b/src/org/swiftjava/java_awt/WindowAdapterProxy.java index d655518..4743bba 100644 --- a/src/org/swiftjava/java_awt/WindowAdapterProxy.java +++ b/src/org/swiftjava/java_awt/WindowAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.event.WindowAdapter /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class WindowAdapterProxy extends java.awt.event.WindowAdapter { + // address of proxy object long __swiftObject; /// public java.awt.event.WindowAdapter() @@ -15,100 +18,103 @@ public class WindowAdapterProxy extends java.awt.event.WindowAdapter { this.__swiftObject = __swiftObject; } - /// public void java.awt.event.WindowAdapter.windowOpened(java.awt.event.WindowEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __windowOpened( long __swiftObject, java.awt.event.WindowEvent e ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_windowOpened_0; + boolean entered_equals_0; - public void windowOpened( java.awt.event.WindowEvent e ) { - if ( !entered_windowOpened_0 ) { - entered_windowOpened_0 = true; - __windowOpened( __swiftObject, e); - entered_windowOpened_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.windowOpened( e ); + return super.equals( arg0 ); } - /// public void java.awt.event.WindowAdapter.windowClosing(java.awt.event.WindowEvent) + /// public native int java.lang.Object.hashCode() - public native void __windowClosing( long __swiftObject, java.awt.event.WindowEvent e ); + public native int __hashCode( long __swiftObject ); - boolean entered_windowClosing_1; + boolean entered_hashCode_1; - public void windowClosing( java.awt.event.WindowEvent e ) { - if ( !entered_windowClosing_1 ) { - entered_windowClosing_1 = true; - __windowClosing( __swiftObject, e); - entered_windowClosing_1 = false; + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; } else - super.windowClosing( e ); + return super.hashCode( ); } - /// public void java.awt.event.WindowAdapter.windowClosed(java.awt.event.WindowEvent) + /// public java.lang.String java.lang.Object.toString() - public native void __windowClosed( long __swiftObject, java.awt.event.WindowEvent e ); + public native java.lang.String __toString( long __swiftObject ); - boolean entered_windowClosed_2; + boolean entered_toString_2; - public void windowClosed( java.awt.event.WindowEvent e ) { - if ( !entered_windowClosed_2 ) { - entered_windowClosed_2 = true; - __windowClosed( __swiftObject, e); - entered_windowClosed_2 = false; + public java.lang.String toString() { + if ( !entered_toString_2 ) { + entered_toString_2 = true; + java.lang.String __return = __toString( __swiftObject ); + entered_toString_2 = false; + return __return; } else - super.windowClosed( e ); + return super.toString( ); } - /// public void java.awt.event.WindowAdapter.windowIconified(java.awt.event.WindowEvent) + /// public void java.awt.event.WindowAdapter.windowActivated(java.awt.event.WindowEvent) - public native void __windowIconified( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowActivated( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_windowIconified_3; + boolean entered_windowActivated_3; - public void windowIconified( java.awt.event.WindowEvent e ) { - if ( !entered_windowIconified_3 ) { - entered_windowIconified_3 = true; - __windowIconified( __swiftObject, e); - entered_windowIconified_3 = false; + public void windowActivated( java.awt.event.WindowEvent e ) { + if ( !entered_windowActivated_3 ) { + entered_windowActivated_3 = true; + __windowActivated( __swiftObject, e); + entered_windowActivated_3 = false; } else - super.windowIconified( e ); + super.windowActivated( e ); } - /// public void java.awt.event.WindowAdapter.windowDeiconified(java.awt.event.WindowEvent) + /// public void java.awt.event.WindowAdapter.windowClosed(java.awt.event.WindowEvent) - public native void __windowDeiconified( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowClosed( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_windowDeiconified_4; + boolean entered_windowClosed_4; - public void windowDeiconified( java.awt.event.WindowEvent e ) { - if ( !entered_windowDeiconified_4 ) { - entered_windowDeiconified_4 = true; - __windowDeiconified( __swiftObject, e); - entered_windowDeiconified_4 = false; + public void windowClosed( java.awt.event.WindowEvent e ) { + if ( !entered_windowClosed_4 ) { + entered_windowClosed_4 = true; + __windowClosed( __swiftObject, e); + entered_windowClosed_4 = false; } else - super.windowDeiconified( e ); + super.windowClosed( e ); } - /// public void java.awt.event.WindowAdapter.windowActivated(java.awt.event.WindowEvent) + /// public void java.awt.event.WindowAdapter.windowClosing(java.awt.event.WindowEvent) - public native void __windowActivated( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowClosing( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_windowActivated_5; + boolean entered_windowClosing_5; - public void windowActivated( java.awt.event.WindowEvent e ) { - if ( !entered_windowActivated_5 ) { - entered_windowActivated_5 = true; - __windowActivated( __swiftObject, e); - entered_windowActivated_5 = false; + public void windowClosing( java.awt.event.WindowEvent e ) { + if ( !entered_windowClosing_5 ) { + entered_windowClosing_5 = true; + __windowClosing( __swiftObject, e); + entered_windowClosing_5 = false; } else - super.windowActivated( e ); + super.windowClosing( e ); } /// public void java.awt.event.WindowAdapter.windowDeactivated(java.awt.event.WindowEvent) @@ -127,103 +133,100 @@ public void windowDeactivated( java.awt.event.WindowEvent e ) { super.windowDeactivated( e ); } - /// public void java.awt.event.WindowAdapter.windowGainedFocus(java.awt.event.WindowEvent) + /// public void java.awt.event.WindowAdapter.windowDeiconified(java.awt.event.WindowEvent) - public native void __windowGainedFocus( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowDeiconified( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_windowGainedFocus_7; + boolean entered_windowDeiconified_7; - public void windowGainedFocus( java.awt.event.WindowEvent e ) { - if ( !entered_windowGainedFocus_7 ) { - entered_windowGainedFocus_7 = true; - __windowGainedFocus( __swiftObject, e); - entered_windowGainedFocus_7 = false; + public void windowDeiconified( java.awt.event.WindowEvent e ) { + if ( !entered_windowDeiconified_7 ) { + entered_windowDeiconified_7 = true; + __windowDeiconified( __swiftObject, e); + entered_windowDeiconified_7 = false; } else - super.windowGainedFocus( e ); + super.windowDeiconified( e ); } - /// public void java.awt.event.WindowAdapter.windowLostFocus(java.awt.event.WindowEvent) + /// public void java.awt.event.WindowAdapter.windowGainedFocus(java.awt.event.WindowEvent) - public native void __windowLostFocus( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowGainedFocus( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_windowLostFocus_8; + boolean entered_windowGainedFocus_8; - public void windowLostFocus( java.awt.event.WindowEvent e ) { - if ( !entered_windowLostFocus_8 ) { - entered_windowLostFocus_8 = true; - __windowLostFocus( __swiftObject, e); - entered_windowLostFocus_8 = false; + public void windowGainedFocus( java.awt.event.WindowEvent e ) { + if ( !entered_windowGainedFocus_8 ) { + entered_windowGainedFocus_8 = true; + __windowGainedFocus( __swiftObject, e); + entered_windowGainedFocus_8 = false; } else - super.windowLostFocus( e ); + super.windowGainedFocus( e ); } - /// public void java.awt.event.WindowAdapter.windowStateChanged(java.awt.event.WindowEvent) + /// public void java.awt.event.WindowAdapter.windowIconified(java.awt.event.WindowEvent) - public native void __windowStateChanged( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowIconified( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_windowStateChanged_9; + boolean entered_windowIconified_9; - public void windowStateChanged( java.awt.event.WindowEvent e ) { - if ( !entered_windowStateChanged_9 ) { - entered_windowStateChanged_9 = true; - __windowStateChanged( __swiftObject, e); - entered_windowStateChanged_9 = false; + public void windowIconified( java.awt.event.WindowEvent e ) { + if ( !entered_windowIconified_9 ) { + entered_windowIconified_9 = true; + __windowIconified( __swiftObject, e); + entered_windowIconified_9 = false; } else - super.windowStateChanged( e ); + super.windowIconified( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void java.awt.event.WindowAdapter.windowLostFocus(java.awt.event.WindowEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __windowLostFocus( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_equals_10; + boolean entered_windowLostFocus_10; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_10 ) { - entered_equals_10 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_10 = false; - return __return; + public void windowLostFocus( java.awt.event.WindowEvent e ) { + if ( !entered_windowLostFocus_10 ) { + entered_windowLostFocus_10 = true; + __windowLostFocus( __swiftObject, e); + entered_windowLostFocus_10 = false; } else - return super.equals( arg0 ); + super.windowLostFocus( e ); } - /// public java.lang.String java.lang.Object.toString() + /// public void java.awt.event.WindowAdapter.windowOpened(java.awt.event.WindowEvent) - public native java.lang.String __toString( long __swiftObject ); + public native void __windowOpened( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_toString_11; + boolean entered_windowOpened_11; - public java.lang.String toString() { - if ( !entered_toString_11 ) { - entered_toString_11 = true; - java.lang.String __return = __toString( __swiftObject ); - entered_toString_11 = false; - return __return; + public void windowOpened( java.awt.event.WindowEvent e ) { + if ( !entered_windowOpened_11 ) { + entered_windowOpened_11 = true; + __windowOpened( __swiftObject, e); + entered_windowOpened_11 = false; } else - return super.toString( ); + super.windowOpened( e ); } - /// public native int java.lang.Object.hashCode() + /// public void java.awt.event.WindowAdapter.windowStateChanged(java.awt.event.WindowEvent) - public native int __hashCode( long __swiftObject ); + public native void __windowStateChanged( long __swiftObject, java.awt.event.WindowEvent e ); - boolean entered_hashCode_12; + boolean entered_windowStateChanged_12; - public int hashCode() { - if ( !entered_hashCode_12 ) { - entered_hashCode_12 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_12 = false; - return __return; + public void windowStateChanged( java.awt.event.WindowEvent e ) { + if ( !entered_windowStateChanged_12 ) { + entered_windowStateChanged_12 = true; + __windowStateChanged( __swiftObject, e); + entered_windowStateChanged_12 = false; } else - return super.hashCode( ); + super.windowStateChanged( e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java b/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java index 8d0fca0..eb35f3e 100644 --- a/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java +++ b/src/org/swiftjava/java_awt/WindowFocusListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.WindowFocusListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class WindowFocusListenerProxy implements java.awt.event.WindowFocusListener { + // address of proxy object long __swiftObject; WindowFocusListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_awt/WindowListenerProxy.java b/src/org/swiftjava/java_awt/WindowListenerProxy.java index 751aa00..0513f60 100644 --- a/src/org/swiftjava/java_awt/WindowListenerProxy.java +++ b/src/org/swiftjava/java_awt/WindowListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.WindowListener /// package org.swiftjava.java_awt; @@ -6,26 +8,19 @@ @SuppressWarnings("JniMissingFunction") public class WindowListenerProxy implements java.awt.event.WindowListener { + // address of proxy object long __swiftObject; WindowListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.WindowListener.windowOpened(java.awt.event.WindowEvent) - - public native void __windowOpened( long __swiftObject, java.awt.event.WindowEvent e ); - - public void windowOpened( java.awt.event.WindowEvent e ) { - __windowOpened( __swiftObject, e ); - } - - /// public abstract void java.awt.event.WindowListener.windowClosing(java.awt.event.WindowEvent) + /// public abstract void java.awt.event.WindowListener.windowActivated(java.awt.event.WindowEvent) - public native void __windowClosing( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowActivated( long __swiftObject, java.awt.event.WindowEvent e ); - public void windowClosing( java.awt.event.WindowEvent e ) { - __windowClosing( __swiftObject, e ); + public void windowActivated( java.awt.event.WindowEvent e ) { + __windowActivated( __swiftObject, e ); } /// public abstract void java.awt.event.WindowListener.windowClosed(java.awt.event.WindowEvent) @@ -36,12 +31,20 @@ public void windowClosed( java.awt.event.WindowEvent e ) { __windowClosed( __swiftObject, e ); } - /// public abstract void java.awt.event.WindowListener.windowIconified(java.awt.event.WindowEvent) + /// public abstract void java.awt.event.WindowListener.windowClosing(java.awt.event.WindowEvent) - public native void __windowIconified( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowClosing( long __swiftObject, java.awt.event.WindowEvent e ); - public void windowIconified( java.awt.event.WindowEvent e ) { - __windowIconified( __swiftObject, e ); + public void windowClosing( java.awt.event.WindowEvent e ) { + __windowClosing( __swiftObject, e ); + } + + /// public abstract void java.awt.event.WindowListener.windowDeactivated(java.awt.event.WindowEvent) + + public native void __windowDeactivated( long __swiftObject, java.awt.event.WindowEvent e ); + + public void windowDeactivated( java.awt.event.WindowEvent e ) { + __windowDeactivated( __swiftObject, e ); } /// public abstract void java.awt.event.WindowListener.windowDeiconified(java.awt.event.WindowEvent) @@ -52,20 +55,20 @@ public void windowDeiconified( java.awt.event.WindowEvent e ) { __windowDeiconified( __swiftObject, e ); } - /// public abstract void java.awt.event.WindowListener.windowActivated(java.awt.event.WindowEvent) + /// public abstract void java.awt.event.WindowListener.windowIconified(java.awt.event.WindowEvent) - public native void __windowActivated( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowIconified( long __swiftObject, java.awt.event.WindowEvent e ); - public void windowActivated( java.awt.event.WindowEvent e ) { - __windowActivated( __swiftObject, e ); + public void windowIconified( java.awt.event.WindowEvent e ) { + __windowIconified( __swiftObject, e ); } - /// public abstract void java.awt.event.WindowListener.windowDeactivated(java.awt.event.WindowEvent) + /// public abstract void java.awt.event.WindowListener.windowOpened(java.awt.event.WindowEvent) - public native void __windowDeactivated( long __swiftObject, java.awt.event.WindowEvent e ); + public native void __windowOpened( long __swiftObject, java.awt.event.WindowEvent e ); - public void windowDeactivated( java.awt.event.WindowEvent e ) { - __windowDeactivated( __swiftObject, e ); + public void windowOpened( java.awt.event.WindowEvent e ) { + __windowOpened( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/java_awt/WindowProxy.java b/src/org/swiftjava/java_awt/WindowProxy.java index bd156f9..af919e2 100644 --- a/src/org/swiftjava/java_awt/WindowProxy.java +++ b/src/org/swiftjava/java_awt/WindowProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class java.awt.Window /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class WindowProxy extends java.awt.Window { + // address of proxy object long __swiftObject; /// public java.awt.Window(java.awt.Frame) diff --git a/src/org/swiftjava/java_awt/WindowStateListenerProxy.java b/src/org/swiftjava/java_awt/WindowStateListenerProxy.java index 4c421d6..f459b16 100644 --- a/src/org/swiftjava/java_awt/WindowStateListenerProxy.java +++ b/src/org/swiftjava/java_awt/WindowStateListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.awt.event.WindowStateListener /// package org.swiftjava.java_awt; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class WindowStateListenerProxy implements java.awt.event.WindowStateListener { + // address of proxy object long __swiftObject; WindowStateListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_lang/InvocationHandlerProxy.java b/src/org/swiftjava/java_lang/InvocationHandlerProxy.java index b09c399..3b46dd1 100644 --- a/src/org/swiftjava/java_lang/InvocationHandlerProxy.java +++ b/src/org/swiftjava/java_lang/InvocationHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.lang.reflect.InvocationHandler /// package org.swiftjava.java_lang; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class InvocationHandlerProxy implements java.lang.reflect.InvocationHandler { + // address of proxy object long __swiftObject; InvocationHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java b/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java index e5f822c..475b076 100644 --- a/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java +++ b/src/org/swiftjava/java_lang/Thread_UncaughtExceptionHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.lang.Thread$UncaughtExceptionHandler /// package org.swiftjava.java_lang; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class Thread_UncaughtExceptionHandlerProxy implements java.lang.Thread.UncaughtExceptionHandler { + // address of proxy object long __swiftObject; Thread_UncaughtExceptionHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_swift/RunnableProxy.java b/src/org/swiftjava/java_swift/RunnableProxy.java index 1235553..0796f19 100644 --- a/src/org/swiftjava/java_swift/RunnableProxy.java +++ b/src/org/swiftjava/java_swift/RunnableProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.lang.Runnable /// package org.swiftjava.java_swift; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class RunnableProxy implements java.lang.Runnable { + // address of proxy object long __swiftObject; RunnableProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_util/EventListenerProxy.java b/src/org/swiftjava/java_util/EventListenerProxy.java index bec693a..f3668c6 100644 --- a/src/org/swiftjava/java_util/EventListenerProxy.java +++ b/src/org/swiftjava/java_util/EventListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.util.EventListener /// package org.swiftjava.java_util; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class EventListenerProxy implements java.util.EventListener { + // address of proxy object long __swiftObject; EventListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_util/NodeChangeListenerProxy.java b/src/org/swiftjava/java_util/NodeChangeListenerProxy.java index 6d6bc4f..79112b4 100644 --- a/src/org/swiftjava/java_util/NodeChangeListenerProxy.java +++ b/src/org/swiftjava/java_util/NodeChangeListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.util.prefs.NodeChangeListener /// package org.swiftjava.java_util; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class NodeChangeListenerProxy implements java.util.prefs.NodeChangeListener { + // address of proxy object long __swiftObject; NodeChangeListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java b/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java index c5290d3..42f1245 100644 --- a/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java +++ b/src/org/swiftjava/java_util/PreferenceChangeListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.util.prefs.PreferenceChangeListener /// package org.swiftjava.java_util; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class PreferenceChangeListenerProxy implements java.util.prefs.PreferenceChangeListener { + // address of proxy object long __swiftObject; PreferenceChangeListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java b/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java index eae8f84..74294f1 100644 --- a/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java +++ b/src/org/swiftjava/java_util/RejectedExecutionHandlerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface java.util.concurrent.RejectedExecutionHandler /// package org.swiftjava.java_util; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class RejectedExecutionHandlerProxy implements java.util.concurrent.RejectedExecutionHandler { + // address of proxy object long __swiftObject; RejectedExecutionHandlerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/AncestorListenerProxy.java b/src/org/swiftjava/javax_swing/AncestorListenerProxy.java index da7f9d1..950ce5e 100644 --- a/src/org/swiftjava/javax_swing/AncestorListenerProxy.java +++ b/src/org/swiftjava/javax_swing/AncestorListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.AncestorListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class AncestorListenerProxy implements javax.swing.event.AncestorListener { + // address of proxy object long __swiftObject; AncestorListenerProxy( long __swiftObject ) { @@ -20,14 +23,6 @@ public void ancestorAdded( javax.swing.event.AncestorEvent event ) { __ancestorAdded( __swiftObject, event ); } - /// public abstract void javax.swing.event.AncestorListener.ancestorRemoved(javax.swing.event.AncestorEvent) - - public native void __ancestorRemoved( long __swiftObject, javax.swing.event.AncestorEvent event ); - - public void ancestorRemoved( javax.swing.event.AncestorEvent event ) { - __ancestorRemoved( __swiftObject, event ); - } - /// public abstract void javax.swing.event.AncestorListener.ancestorMoved(javax.swing.event.AncestorEvent) public native void __ancestorMoved( long __swiftObject, javax.swing.event.AncestorEvent event ); @@ -36,6 +31,14 @@ public void ancestorMoved( javax.swing.event.AncestorEvent event ) { __ancestorMoved( __swiftObject, event ); } + /// public abstract void javax.swing.event.AncestorListener.ancestorRemoved(javax.swing.event.AncestorEvent) + + public native void __ancestorRemoved( long __swiftObject, javax.swing.event.AncestorEvent event ); + + public void ancestorRemoved( javax.swing.event.AncestorEvent event ) { + __ancestorRemoved( __swiftObject, event ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/CaretListenerProxy.java b/src/org/swiftjava/javax_swing/CaretListenerProxy.java index 7d3c3f0..9730fea 100644 --- a/src/org/swiftjava/javax_swing/CaretListenerProxy.java +++ b/src/org/swiftjava/javax_swing/CaretListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.CaretListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class CaretListenerProxy implements javax.swing.event.CaretListener { + // address of proxy object long __swiftObject; CaretListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java b/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java index bac7c3a..4785537 100644 --- a/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java +++ b/src/org/swiftjava/javax_swing/CellEditorListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.CellEditorListener /// package org.swiftjava.javax_swing; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class CellEditorListenerProxy implements javax.swing.event.CellEditorListener { + // address of proxy object long __swiftObject; CellEditorListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.event.CellEditorListener.editingStopped(javax.swing.event.ChangeEvent) - - public native void __editingStopped( long __swiftObject, javax.swing.event.ChangeEvent e ); - - public void editingStopped( javax.swing.event.ChangeEvent e ) { - __editingStopped( __swiftObject, e ); - } - /// public abstract void javax.swing.event.CellEditorListener.editingCanceled(javax.swing.event.ChangeEvent) public native void __editingCanceled( long __swiftObject, javax.swing.event.ChangeEvent e ); @@ -28,6 +23,14 @@ public void editingCanceled( javax.swing.event.ChangeEvent e ) { __editingCanceled( __swiftObject, e ); } + /// public abstract void javax.swing.event.CellEditorListener.editingStopped(javax.swing.event.ChangeEvent) + + public native void __editingStopped( long __swiftObject, javax.swing.event.ChangeEvent e ); + + public void editingStopped( javax.swing.event.ChangeEvent e ) { + __editingStopped( __swiftObject, e ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/ChangeListenerProxy.java b/src/org/swiftjava/javax_swing/ChangeListenerProxy.java index 0ccebfd..726bbdd 100644 --- a/src/org/swiftjava/javax_swing/ChangeListenerProxy.java +++ b/src/org/swiftjava/javax_swing/ChangeListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.ChangeListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ChangeListenerProxy implements javax.swing.event.ChangeListener { + // address of proxy object long __swiftObject; ChangeListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java b/src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java index ea529b6..57c583e 100644 --- a/src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java +++ b/src/org/swiftjava/javax_swing/DefaultTableCellRendererProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.table.DefaultTableCellRenderer /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DefaultTableCellRendererProxy extends javax.swing.table.DefaultTableCellRenderer { + // address of proxy object long __swiftObject; /// public javax.swing.table.DefaultTableCellRenderer() diff --git a/src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java b/src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java index f6ddda5..1ee53d2 100644 --- a/src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java +++ b/src/org/swiftjava/javax_swing/DefaultTableCellRenderer_UIResourceProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.table.DefaultTableCellRenderer$UIResource /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DefaultTableCellRenderer_UIResourceProxy extends javax.swing.table.DefaultTableCellRenderer.UIResource { + // address of proxy object long __swiftObject; /// public javax.swing.table.DefaultTableCellRenderer$UIResource() diff --git a/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java b/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java index 898f51e..80b2e4f 100644 --- a/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java +++ b/src/org/swiftjava/javax_swing/DefaultTableModelProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.table.DefaultTableModel /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class DefaultTableModelProxy extends javax.swing.table.DefaultTableModel { + // address of proxy object long __swiftObject; /// public javax.swing.table.DefaultTableModel(java.util.Vector,int) @@ -36,17 +39,17 @@ public class DefaultTableModelProxy extends javax.swing.table.DefaultTableModel this.__swiftObject = __swiftObject; } - /// public javax.swing.table.DefaultTableModel(int,int) + /// public javax.swing.table.DefaultTableModel() - DefaultTableModelProxy( int rowCount, int columnCount , long __swiftObject ) { - super( rowCount, columnCount ); + DefaultTableModelProxy( long __swiftObject ) { + super( ); this.__swiftObject = __swiftObject; } - /// public javax.swing.table.DefaultTableModel() + /// public javax.swing.table.DefaultTableModel(int,int) - DefaultTableModelProxy( long __swiftObject ) { - super( ); + DefaultTableModelProxy( int rowCount, int columnCount , long __swiftObject ) { + super( rowCount, columnCount ); this.__swiftObject = __swiftObject; } diff --git a/src/org/swiftjava/javax_swing/DesktopManagerProxy.java b/src/org/swiftjava/javax_swing/DesktopManagerProxy.java index d28c19d..d51da68 100644 --- a/src/org/swiftjava/javax_swing/DesktopManagerProxy.java +++ b/src/org/swiftjava/javax_swing/DesktopManagerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.DesktopManager /// package org.swiftjava.javax_swing; @@ -6,50 +8,51 @@ @SuppressWarnings("JniMissingFunction") public class DesktopManagerProxy implements javax.swing.DesktopManager { + // address of proxy object long __swiftObject; DesktopManagerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.DesktopManager.openFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.activateFrame(javax.swing.JInternalFrame) - public native void __openFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __activateFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void openFrame( javax.swing.JInternalFrame f ) { - __openFrame( __swiftObject, f ); + public void activateFrame( javax.swing.JInternalFrame f ) { + __activateFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.closeFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.beginDraggingFrame(javax.swing.JComponent) - public native void __closeFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __beginDraggingFrame( long __swiftObject, javax.swing.JComponent f ); - public void closeFrame( javax.swing.JInternalFrame f ) { - __closeFrame( __swiftObject, f ); + public void beginDraggingFrame( javax.swing.JComponent f ) { + __beginDraggingFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.maximizeFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.beginResizingFrame(javax.swing.JComponent,int) - public native void __maximizeFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __beginResizingFrame( long __swiftObject, javax.swing.JComponent f, int direction ); - public void maximizeFrame( javax.swing.JInternalFrame f ) { - __maximizeFrame( __swiftObject, f ); + public void beginResizingFrame( javax.swing.JComponent f, int direction ) { + __beginResizingFrame( __swiftObject, f, direction ); } - /// public abstract void javax.swing.DesktopManager.minimizeFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.closeFrame(javax.swing.JInternalFrame) - public native void __minimizeFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __closeFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void minimizeFrame( javax.swing.JInternalFrame f ) { - __minimizeFrame( __swiftObject, f ); + public void closeFrame( javax.swing.JInternalFrame f ) { + __closeFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.iconifyFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.deactivateFrame(javax.swing.JInternalFrame) - public native void __iconifyFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __deactivateFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void iconifyFrame( javax.swing.JInternalFrame f ) { - __iconifyFrame( __swiftObject, f ); + public void deactivateFrame( javax.swing.JInternalFrame f ) { + __deactivateFrame( __swiftObject, f ); } /// public abstract void javax.swing.DesktopManager.deiconifyFrame(javax.swing.JInternalFrame) @@ -60,68 +63,68 @@ public void deiconifyFrame( javax.swing.JInternalFrame f ) { __deiconifyFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.activateFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.dragFrame(javax.swing.JComponent,int,int) - public native void __activateFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __dragFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY ); - public void activateFrame( javax.swing.JInternalFrame f ) { - __activateFrame( __swiftObject, f ); + public void dragFrame( javax.swing.JComponent f, int newX, int newY ) { + __dragFrame( __swiftObject, f, newX, newY ); } - /// public abstract void javax.swing.DesktopManager.deactivateFrame(javax.swing.JInternalFrame) + /// public abstract void javax.swing.DesktopManager.endDraggingFrame(javax.swing.JComponent) - public native void __deactivateFrame( long __swiftObject, javax.swing.JInternalFrame f ); + public native void __endDraggingFrame( long __swiftObject, javax.swing.JComponent f ); - public void deactivateFrame( javax.swing.JInternalFrame f ) { - __deactivateFrame( __swiftObject, f ); + public void endDraggingFrame( javax.swing.JComponent f ) { + __endDraggingFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.beginDraggingFrame(javax.swing.JComponent) + /// public abstract void javax.swing.DesktopManager.endResizingFrame(javax.swing.JComponent) - public native void __beginDraggingFrame( long __swiftObject, javax.swing.JComponent f ); + public native void __endResizingFrame( long __swiftObject, javax.swing.JComponent f ); - public void beginDraggingFrame( javax.swing.JComponent f ) { - __beginDraggingFrame( __swiftObject, f ); + public void endResizingFrame( javax.swing.JComponent f ) { + __endResizingFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.dragFrame(javax.swing.JComponent,int,int) + /// public abstract void javax.swing.DesktopManager.iconifyFrame(javax.swing.JInternalFrame) - public native void __dragFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY ); + public native void __iconifyFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void dragFrame( javax.swing.JComponent f, int newX, int newY ) { - __dragFrame( __swiftObject, f, newX, newY ); + public void iconifyFrame( javax.swing.JInternalFrame f ) { + __iconifyFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.endDraggingFrame(javax.swing.JComponent) + /// public abstract void javax.swing.DesktopManager.maximizeFrame(javax.swing.JInternalFrame) - public native void __endDraggingFrame( long __swiftObject, javax.swing.JComponent f ); + public native void __maximizeFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void endDraggingFrame( javax.swing.JComponent f ) { - __endDraggingFrame( __swiftObject, f ); + public void maximizeFrame( javax.swing.JInternalFrame f ) { + __maximizeFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.beginResizingFrame(javax.swing.JComponent,int) + /// public abstract void javax.swing.DesktopManager.minimizeFrame(javax.swing.JInternalFrame) - public native void __beginResizingFrame( long __swiftObject, javax.swing.JComponent f, int direction ); + public native void __minimizeFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void beginResizingFrame( javax.swing.JComponent f, int direction ) { - __beginResizingFrame( __swiftObject, f, direction ); + public void minimizeFrame( javax.swing.JInternalFrame f ) { + __minimizeFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.resizeFrame(javax.swing.JComponent,int,int,int,int) + /// public abstract void javax.swing.DesktopManager.openFrame(javax.swing.JInternalFrame) - public native void __resizeFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ); + public native void __openFrame( long __swiftObject, javax.swing.JInternalFrame f ); - public void resizeFrame( javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ) { - __resizeFrame( __swiftObject, f, newX, newY, newWidth, newHeight ); + public void openFrame( javax.swing.JInternalFrame f ) { + __openFrame( __swiftObject, f ); } - /// public abstract void javax.swing.DesktopManager.endResizingFrame(javax.swing.JComponent) + /// public abstract void javax.swing.DesktopManager.resizeFrame(javax.swing.JComponent,int,int,int,int) - public native void __endResizingFrame( long __swiftObject, javax.swing.JComponent f ); + public native void __resizeFrame( long __swiftObject, javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ); - public void endResizingFrame( javax.swing.JComponent f ) { - __endResizingFrame( __swiftObject, f ); + public void resizeFrame( javax.swing.JComponent f, int newX, int newY, int newWidth, int newHeight ) { + __resizeFrame( __swiftObject, f, newX, newY, newWidth, newHeight ); } /// public abstract void javax.swing.DesktopManager.setBoundsForFrame(javax.swing.JComponent,int,int,int,int) diff --git a/src/org/swiftjava/javax_swing/DocumentListenerProxy.java b/src/org/swiftjava/javax_swing/DocumentListenerProxy.java index 4ce8be7..4c7b8f9 100644 --- a/src/org/swiftjava/javax_swing/DocumentListenerProxy.java +++ b/src/org/swiftjava/javax_swing/DocumentListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.DocumentListener /// package org.swiftjava.javax_swing; @@ -6,12 +8,21 @@ @SuppressWarnings("JniMissingFunction") public class DocumentListenerProxy implements javax.swing.event.DocumentListener { + // address of proxy object long __swiftObject; DocumentListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } + /// public abstract void javax.swing.event.DocumentListener.changedUpdate(javax.swing.event.DocumentEvent) + + public native void __changedUpdate( long __swiftObject, javax.swing.event.DocumentEvent e ); + + public void changedUpdate( javax.swing.event.DocumentEvent e ) { + __changedUpdate( __swiftObject, e ); + } + /// public abstract void javax.swing.event.DocumentListener.insertUpdate(javax.swing.event.DocumentEvent) public native void __insertUpdate( long __swiftObject, javax.swing.event.DocumentEvent e ); @@ -28,14 +39,6 @@ public void removeUpdate( javax.swing.event.DocumentEvent e ) { __removeUpdate( __swiftObject, e ); } - /// public abstract void javax.swing.event.DocumentListener.changedUpdate(javax.swing.event.DocumentEvent) - - public native void __changedUpdate( long __swiftObject, javax.swing.event.DocumentEvent e ); - - public void changedUpdate( javax.swing.event.DocumentEvent e ) { - __changedUpdate( __swiftObject, e ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java b/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java index d642bfe..c6ceed8 100644 --- a/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java +++ b/src/org/swiftjava/javax_swing/HyperlinkListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.HyperlinkListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class HyperlinkListenerProxy implements javax.swing.event.HyperlinkListener { + // address of proxy object long __swiftObject; HyperlinkListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java b/src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java index 57186c0..f310261 100644 --- a/src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java +++ b/src/org/swiftjava/javax_swing/InternalFrameAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.event.InternalFrameAdapter /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class InternalFrameAdapterProxy extends javax.swing.event.InternalFrameAdapter { + // address of proxy object long __swiftObject; /// public javax.swing.event.InternalFrameAdapter() @@ -15,169 +18,169 @@ public class InternalFrameAdapterProxy extends javax.swing.event.InternalFrameAd this.__swiftObject = __swiftObject; } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameOpened(javax.swing.event.InternalFrameEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __internalFrameOpened( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_internalFrameOpened_0; + boolean entered_equals_0; - public void internalFrameOpened( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameOpened_0 ) { - entered_internalFrameOpened_0 = true; - __internalFrameOpened( __swiftObject, e); - entered_internalFrameOpened_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.internalFrameOpened( e ); + return super.equals( arg0 ); } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameClosing(javax.swing.event.InternalFrameEvent) + /// public native int java.lang.Object.hashCode() - public native void __internalFrameClosing( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native int __hashCode( long __swiftObject ); - boolean entered_internalFrameClosing_1; + boolean entered_hashCode_1; - public void internalFrameClosing( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameClosing_1 ) { - entered_internalFrameClosing_1 = true; - __internalFrameClosing( __swiftObject, e); - entered_internalFrameClosing_1 = false; + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; } else - super.internalFrameClosing( e ); + return super.hashCode( ); + } + + /// public void javax.swing.event.InternalFrameAdapter.internalFrameActivated(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameActivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + boolean entered_internalFrameActivated_2; + + public void internalFrameActivated( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameActivated_2 ) { + entered_internalFrameActivated_2 = true; + __internalFrameActivated( __swiftObject, e); + entered_internalFrameActivated_2 = false; + } + else + super.internalFrameActivated( e ); } /// public void javax.swing.event.InternalFrameAdapter.internalFrameClosed(javax.swing.event.InternalFrameEvent) public native void __internalFrameClosed( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameClosed_2; + boolean entered_internalFrameClosed_3; public void internalFrameClosed( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameClosed_2 ) { - entered_internalFrameClosed_2 = true; + if ( !entered_internalFrameClosed_3 ) { + entered_internalFrameClosed_3 = true; __internalFrameClosed( __swiftObject, e); - entered_internalFrameClosed_2 = false; + entered_internalFrameClosed_3 = false; } else super.internalFrameClosed( e ); } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameIconified(javax.swing.event.InternalFrameEvent) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameClosing(javax.swing.event.InternalFrameEvent) - public native void __internalFrameIconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameClosing( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameIconified_3; + boolean entered_internalFrameClosing_4; - public void internalFrameIconified( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameIconified_3 ) { - entered_internalFrameIconified_3 = true; - __internalFrameIconified( __swiftObject, e); - entered_internalFrameIconified_3 = false; + public void internalFrameClosing( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameClosing_4 ) { + entered_internalFrameClosing_4 = true; + __internalFrameClosing( __swiftObject, e); + entered_internalFrameClosing_4 = false; } else - super.internalFrameIconified( e ); + super.internalFrameClosing( e ); } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameDeiconified(javax.swing.event.InternalFrameEvent) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) - public native void __internalFrameDeiconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameDeactivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameDeiconified_4; + boolean entered_internalFrameDeactivated_5; - public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameDeiconified_4 ) { - entered_internalFrameDeiconified_4 = true; - __internalFrameDeiconified( __swiftObject, e); - entered_internalFrameDeiconified_4 = false; + public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameDeactivated_5 ) { + entered_internalFrameDeactivated_5 = true; + __internalFrameDeactivated( __swiftObject, e); + entered_internalFrameDeactivated_5 = false; } else - super.internalFrameDeiconified( e ); + super.internalFrameDeactivated( e ); } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameActivated(javax.swing.event.InternalFrameEvent) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameDeiconified(javax.swing.event.InternalFrameEvent) - public native void __internalFrameActivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameDeiconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameActivated_5; + boolean entered_internalFrameDeiconified_6; - public void internalFrameActivated( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameActivated_5 ) { - entered_internalFrameActivated_5 = true; - __internalFrameActivated( __swiftObject, e); - entered_internalFrameActivated_5 = false; + public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameDeiconified_6 ) { + entered_internalFrameDeiconified_6 = true; + __internalFrameDeiconified( __swiftObject, e); + entered_internalFrameDeiconified_6 = false; } else - super.internalFrameActivated( e ); + super.internalFrameDeiconified( e ); } - /// public void javax.swing.event.InternalFrameAdapter.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameIconified(javax.swing.event.InternalFrameEvent) - public native void __internalFrameDeactivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameIconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_internalFrameDeactivated_6; + boolean entered_internalFrameIconified_7; - public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent e ) { - if ( !entered_internalFrameDeactivated_6 ) { - entered_internalFrameDeactivated_6 = true; - __internalFrameDeactivated( __swiftObject, e); - entered_internalFrameDeactivated_6 = false; + public void internalFrameIconified( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameIconified_7 ) { + entered_internalFrameIconified_7 = true; + __internalFrameIconified( __swiftObject, e); + entered_internalFrameIconified_7 = false; } else - super.internalFrameDeactivated( e ); + super.internalFrameIconified( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void javax.swing.event.InternalFrameAdapter.internalFrameOpened(javax.swing.event.InternalFrameEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __internalFrameOpened( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - boolean entered_equals_7; + boolean entered_internalFrameOpened_8; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_7 ) { - entered_equals_7 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_7 = false; - return __return; + public void internalFrameOpened( javax.swing.event.InternalFrameEvent e ) { + if ( !entered_internalFrameOpened_8 ) { + entered_internalFrameOpened_8 = true; + __internalFrameOpened( __swiftObject, e); + entered_internalFrameOpened_8 = false; } else - return super.equals( arg0 ); + super.internalFrameOpened( e ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_8; + boolean entered_toString_9; public java.lang.String toString() { - if ( !entered_toString_8 ) { - entered_toString_8 = true; + if ( !entered_toString_9 ) { + entered_toString_9 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_8 = false; + entered_toString_9 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_9; - - public int hashCode() { - if ( !entered_hashCode_9 ) { - entered_hashCode_9 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_9 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java b/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java index ee73dfe..cabacae 100644 --- a/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java +++ b/src/org/swiftjava/javax_swing/InternalFrameListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.InternalFrameListener /// package org.swiftjava.javax_swing; @@ -6,26 +8,19 @@ @SuppressWarnings("JniMissingFunction") public class InternalFrameListenerProxy implements javax.swing.event.InternalFrameListener { + // address of proxy object long __swiftObject; InternalFrameListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameOpened(javax.swing.event.InternalFrameEvent) - - public native void __internalFrameOpened( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - - public void internalFrameOpened( javax.swing.event.InternalFrameEvent e ) { - __internalFrameOpened( __swiftObject, e ); - } - - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosing(javax.swing.event.InternalFrameEvent) + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameActivated(javax.swing.event.InternalFrameEvent) - public native void __internalFrameClosing( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameActivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - public void internalFrameClosing( javax.swing.event.InternalFrameEvent e ) { - __internalFrameClosing( __swiftObject, e ); + public void internalFrameActivated( javax.swing.event.InternalFrameEvent e ) { + __internalFrameActivated( __swiftObject, e ); } /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosed(javax.swing.event.InternalFrameEvent) @@ -36,12 +31,20 @@ public void internalFrameClosed( javax.swing.event.InternalFrameEvent e ) { __internalFrameClosed( __swiftObject, e ); } - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameIconified(javax.swing.event.InternalFrameEvent) + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameClosing(javax.swing.event.InternalFrameEvent) - public native void __internalFrameIconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameClosing( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - public void internalFrameIconified( javax.swing.event.InternalFrameEvent e ) { - __internalFrameIconified( __swiftObject, e ); + public void internalFrameClosing( javax.swing.event.InternalFrameEvent e ) { + __internalFrameClosing( __swiftObject, e ); + } + + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) + + public native void __internalFrameDeactivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + + public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent e ) { + __internalFrameDeactivated( __swiftObject, e ); } /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeiconified(javax.swing.event.InternalFrameEvent) @@ -52,20 +55,20 @@ public void internalFrameDeiconified( javax.swing.event.InternalFrameEvent e ) { __internalFrameDeiconified( __swiftObject, e ); } - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameActivated(javax.swing.event.InternalFrameEvent) + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameIconified(javax.swing.event.InternalFrameEvent) - public native void __internalFrameActivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameIconified( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - public void internalFrameActivated( javax.swing.event.InternalFrameEvent e ) { - __internalFrameActivated( __swiftObject, e ); + public void internalFrameIconified( javax.swing.event.InternalFrameEvent e ) { + __internalFrameIconified( __swiftObject, e ); } - /// public abstract void javax.swing.event.InternalFrameListener.internalFrameDeactivated(javax.swing.event.InternalFrameEvent) + /// public abstract void javax.swing.event.InternalFrameListener.internalFrameOpened(javax.swing.event.InternalFrameEvent) - public native void __internalFrameDeactivated( long __swiftObject, javax.swing.event.InternalFrameEvent e ); + public native void __internalFrameOpened( long __swiftObject, javax.swing.event.InternalFrameEvent e ); - public void internalFrameDeactivated( javax.swing.event.InternalFrameEvent e ) { - __internalFrameDeactivated( __swiftObject, e ); + public void internalFrameOpened( javax.swing.event.InternalFrameEvent e ) { + __internalFrameOpened( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java b/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java index e93a4e9..dd4230b 100644 --- a/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java +++ b/src/org/swiftjava/javax_swing/JComboBox_KeySelectionManagerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.JComboBox$KeySelectionManager /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class JComboBox_KeySelectionManagerProxy implements javax.swing.JComboBox.KeySelectionManager { + // address of proxy object long __swiftObject; JComboBox_KeySelectionManagerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/JDialogProxy.java b/src/org/swiftjava/javax_swing/JDialogProxy.java index e8d92f7..f8b65df 100644 --- a/src/org/swiftjava/javax_swing/JDialogProxy.java +++ b/src/org/swiftjava/javax_swing/JDialogProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.JDialog /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class JDialogProxy extends javax.swing.JDialog { + // address of proxy object long __swiftObject; /// public javax.swing.JDialog(java.awt.Window) diff --git a/src/org/swiftjava/javax_swing/JFrameProxy.java b/src/org/swiftjava/javax_swing/JFrameProxy.java index f3d8bca..7d5db87 100644 --- a/src/org/swiftjava/javax_swing/JFrameProxy.java +++ b/src/org/swiftjava/javax_swing/JFrameProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.JFrame /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class JFrameProxy extends javax.swing.JFrame { + // address of proxy object long __swiftObject; /// public javax.swing.JFrame(java.lang.String,java.awt.GraphicsConfiguration) diff --git a/src/org/swiftjava/javax_swing/JTableProxy.java b/src/org/swiftjava/javax_swing/JTableProxy.java index d0e0dbb..1b0d55c 100644 --- a/src/org/swiftjava/javax_swing/JTableProxy.java +++ b/src/org/swiftjava/javax_swing/JTableProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.JTable /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class JTableProxy extends javax.swing.JTable { + // address of proxy object long __swiftObject; /// public javax.swing.JTable(javax.swing.table.TableModel,javax.swing.table.TableColumnModel,javax.swing.ListSelectionModel) diff --git a/src/org/swiftjava/javax_swing/JWindowProxy.java b/src/org/swiftjava/javax_swing/JWindowProxy.java index f97e3e6..b49233e 100644 --- a/src/org/swiftjava/javax_swing/JWindowProxy.java +++ b/src/org/swiftjava/javax_swing/JWindowProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.JWindow /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class JWindowProxy extends javax.swing.JWindow { + // address of proxy object long __swiftObject; /// public javax.swing.JWindow(java.awt.Window,java.awt.GraphicsConfiguration) diff --git a/src/org/swiftjava/javax_swing/ListDataListenerProxy.java b/src/org/swiftjava/javax_swing/ListDataListenerProxy.java index 0de9fa0..f656602 100644 --- a/src/org/swiftjava/javax_swing/ListDataListenerProxy.java +++ b/src/org/swiftjava/javax_swing/ListDataListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.ListDataListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ListDataListenerProxy implements javax.swing.event.ListDataListener { + // address of proxy object long __swiftObject; ListDataListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java b/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java index 9652a28..e16e898 100644 --- a/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java +++ b/src/org/swiftjava/javax_swing/ListSelectionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.ListSelectionListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class ListSelectionListenerProxy implements javax.swing.event.ListSelectionListener { + // address of proxy object long __swiftObject; ListSelectionListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java b/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java index 502911c..462bb14 100644 --- a/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java +++ b/src/org/swiftjava/javax_swing/MenuDragMouseListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.MenuDragMouseListener /// package org.swiftjava.javax_swing; @@ -6,12 +8,21 @@ @SuppressWarnings("JniMissingFunction") public class MenuDragMouseListenerProxy implements javax.swing.event.MenuDragMouseListener { + // address of proxy object long __swiftObject; MenuDragMouseListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } + /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseDragged(javax.swing.event.MenuDragMouseEvent) + + public native void __menuDragMouseDragged( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); + + public void menuDragMouseDragged( javax.swing.event.MenuDragMouseEvent e ) { + __menuDragMouseDragged( __swiftObject, e ); + } + /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseEntered(javax.swing.event.MenuDragMouseEvent) public native void __menuDragMouseEntered( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); @@ -28,14 +39,6 @@ public void menuDragMouseExited( javax.swing.event.MenuDragMouseEvent e ) { __menuDragMouseExited( __swiftObject, e ); } - /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseDragged(javax.swing.event.MenuDragMouseEvent) - - public native void __menuDragMouseDragged( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); - - public void menuDragMouseDragged( javax.swing.event.MenuDragMouseEvent e ) { - __menuDragMouseDragged( __swiftObject, e ); - } - /// public abstract void javax.swing.event.MenuDragMouseListener.menuDragMouseReleased(javax.swing.event.MenuDragMouseEvent) public native void __menuDragMouseReleased( long __swiftObject, javax.swing.event.MenuDragMouseEvent e ); diff --git a/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java b/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java index 78cdb68..0732eed 100644 --- a/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java +++ b/src/org/swiftjava/javax_swing/MenuKeyListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.MenuKeyListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class MenuKeyListenerProxy implements javax.swing.event.MenuKeyListener { + // address of proxy object long __swiftObject; MenuKeyListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/MenuListenerProxy.java b/src/org/swiftjava/javax_swing/MenuListenerProxy.java index 400d493..dfe274d 100644 --- a/src/org/swiftjava/javax_swing/MenuListenerProxy.java +++ b/src/org/swiftjava/javax_swing/MenuListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.MenuListener /// package org.swiftjava.javax_swing; @@ -6,18 +8,19 @@ @SuppressWarnings("JniMissingFunction") public class MenuListenerProxy implements javax.swing.event.MenuListener { + // address of proxy object long __swiftObject; MenuListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.event.MenuListener.menuSelected(javax.swing.event.MenuEvent) + /// public abstract void javax.swing.event.MenuListener.menuCanceled(javax.swing.event.MenuEvent) - public native void __menuSelected( long __swiftObject, javax.swing.event.MenuEvent e ); + public native void __menuCanceled( long __swiftObject, javax.swing.event.MenuEvent e ); - public void menuSelected( javax.swing.event.MenuEvent e ) { - __menuSelected( __swiftObject, e ); + public void menuCanceled( javax.swing.event.MenuEvent e ) { + __menuCanceled( __swiftObject, e ); } /// public abstract void javax.swing.event.MenuListener.menuDeselected(javax.swing.event.MenuEvent) @@ -28,12 +31,12 @@ public void menuDeselected( javax.swing.event.MenuEvent e ) { __menuDeselected( __swiftObject, e ); } - /// public abstract void javax.swing.event.MenuListener.menuCanceled(javax.swing.event.MenuEvent) + /// public abstract void javax.swing.event.MenuListener.menuSelected(javax.swing.event.MenuEvent) - public native void __menuCanceled( long __swiftObject, javax.swing.event.MenuEvent e ); + public native void __menuSelected( long __swiftObject, javax.swing.event.MenuEvent e ); - public void menuCanceled( javax.swing.event.MenuEvent e ) { - __menuCanceled( __swiftObject, e ); + public void menuSelected( javax.swing.event.MenuEvent e ) { + __menuSelected( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java b/src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java index 5fa7e08..6773021 100644 --- a/src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java +++ b/src/org/swiftjava/javax_swing/MouseInputAdapterProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.event.MouseInputAdapter /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class MouseInputAdapterProxy extends javax.swing.event.MouseInputAdapter { + // address of proxy object long __swiftObject; /// public javax.swing.event.MouseInputAdapter() @@ -15,36 +18,38 @@ public class MouseInputAdapterProxy extends javax.swing.event.MouseInputAdapter this.__swiftObject = __swiftObject; } - /// public void java.awt.event.MouseAdapter.mousePressed(java.awt.event.MouseEvent) + /// public boolean java.lang.Object.equals(java.lang.Object) - public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); + public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); - boolean entered_mousePressed_0; + boolean entered_equals_0; - public void mousePressed( java.awt.event.MouseEvent e ) { - if ( !entered_mousePressed_0 ) { - entered_mousePressed_0 = true; - __mousePressed( __swiftObject, e); - entered_mousePressed_0 = false; + public boolean equals( java.lang.Object arg0 ) { + if ( !entered_equals_0 ) { + entered_equals_0 = true; + boolean __return = __equals( __swiftObject, arg0); + entered_equals_0 = false; + return __return; } else - super.mousePressed( e ); + return super.equals( arg0 ); } - /// public void java.awt.event.MouseAdapter.mouseReleased(java.awt.event.MouseEvent) + /// public native int java.lang.Object.hashCode() - public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); + public native int __hashCode( long __swiftObject ); - boolean entered_mouseReleased_1; + boolean entered_hashCode_1; - public void mouseReleased( java.awt.event.MouseEvent e ) { - if ( !entered_mouseReleased_1 ) { - entered_mouseReleased_1 = true; - __mouseReleased( __swiftObject, e); - entered_mouseReleased_1 = false; + public int hashCode() { + if ( !entered_hashCode_1 ) { + entered_hashCode_1 = true; + int __return = __hashCode( __swiftObject ); + entered_hashCode_1 = false; + return __return; } else - super.mouseReleased( e ); + return super.hashCode( ); } /// public void java.awt.event.MouseAdapter.mouseClicked(java.awt.event.MouseEvent) @@ -63,20 +68,20 @@ public void mouseClicked( java.awt.event.MouseEvent e ) { super.mouseClicked( e ); } - /// public void java.awt.event.MouseAdapter.mouseExited(java.awt.event.MouseEvent) + /// public void java.awt.event.MouseAdapter.mouseDragged(java.awt.event.MouseEvent) - public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseExited_3; + boolean entered_mouseDragged_3; - public void mouseExited( java.awt.event.MouseEvent e ) { - if ( !entered_mouseExited_3 ) { - entered_mouseExited_3 = true; - __mouseExited( __swiftObject, e); - entered_mouseExited_3 = false; + public void mouseDragged( java.awt.event.MouseEvent e ) { + if ( !entered_mouseDragged_3 ) { + entered_mouseDragged_3 = true; + __mouseDragged( __swiftObject, e); + entered_mouseDragged_3 = false; } else - super.mouseExited( e ); + super.mouseDragged( e ); } /// public void java.awt.event.MouseAdapter.mouseEntered(java.awt.event.MouseEvent) @@ -95,105 +100,103 @@ public void mouseEntered( java.awt.event.MouseEvent e ) { super.mouseEntered( e ); } + /// public void java.awt.event.MouseAdapter.mouseExited(java.awt.event.MouseEvent) + + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + + boolean entered_mouseExited_5; + + public void mouseExited( java.awt.event.MouseEvent e ) { + if ( !entered_mouseExited_5 ) { + entered_mouseExited_5 = true; + __mouseExited( __swiftObject, e); + entered_mouseExited_5 = false; + } + else + super.mouseExited( e ); + } + /// public void java.awt.event.MouseAdapter.mouseMoved(java.awt.event.MouseEvent) public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseMoved_5; + boolean entered_mouseMoved_6; public void mouseMoved( java.awt.event.MouseEvent e ) { - if ( !entered_mouseMoved_5 ) { - entered_mouseMoved_5 = true; + if ( !entered_mouseMoved_6 ) { + entered_mouseMoved_6 = true; __mouseMoved( __swiftObject, e); - entered_mouseMoved_5 = false; + entered_mouseMoved_6 = false; } else super.mouseMoved( e ); } - /// public void java.awt.event.MouseAdapter.mouseDragged(java.awt.event.MouseEvent) + /// public void java.awt.event.MouseAdapter.mousePressed(java.awt.event.MouseEvent) - public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseDragged_6; + boolean entered_mousePressed_7; - public void mouseDragged( java.awt.event.MouseEvent e ) { - if ( !entered_mouseDragged_6 ) { - entered_mouseDragged_6 = true; - __mouseDragged( __swiftObject, e); - entered_mouseDragged_6 = false; + public void mousePressed( java.awt.event.MouseEvent e ) { + if ( !entered_mousePressed_7 ) { + entered_mousePressed_7 = true; + __mousePressed( __swiftObject, e); + entered_mousePressed_7 = false; } else - super.mouseDragged( e ); + super.mousePressed( e ); } - /// public void java.awt.event.MouseAdapter.mouseWheelMoved(java.awt.event.MouseWheelEvent) + /// public void java.awt.event.MouseAdapter.mouseReleased(java.awt.event.MouseEvent) - public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); - boolean entered_mouseWheelMoved_7; + boolean entered_mouseReleased_8; - public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { - if ( !entered_mouseWheelMoved_7 ) { - entered_mouseWheelMoved_7 = true; - __mouseWheelMoved( __swiftObject, e); - entered_mouseWheelMoved_7 = false; + public void mouseReleased( java.awt.event.MouseEvent e ) { + if ( !entered_mouseReleased_8 ) { + entered_mouseReleased_8 = true; + __mouseReleased( __swiftObject, e); + entered_mouseReleased_8 = false; } else - super.mouseWheelMoved( e ); + super.mouseReleased( e ); } - /// public boolean java.lang.Object.equals(java.lang.Object) + /// public void java.awt.event.MouseAdapter.mouseWheelMoved(java.awt.event.MouseWheelEvent) - public native boolean __equals( long __swiftObject, java.lang.Object arg0 ); + public native void __mouseWheelMoved( long __swiftObject, java.awt.event.MouseWheelEvent e ); - boolean entered_equals_8; + boolean entered_mouseWheelMoved_9; - public boolean equals( java.lang.Object arg0 ) { - if ( !entered_equals_8 ) { - entered_equals_8 = true; - boolean __return = __equals( __swiftObject, arg0); - entered_equals_8 = false; - return __return; + public void mouseWheelMoved( java.awt.event.MouseWheelEvent e ) { + if ( !entered_mouseWheelMoved_9 ) { + entered_mouseWheelMoved_9 = true; + __mouseWheelMoved( __swiftObject, e); + entered_mouseWheelMoved_9 = false; } else - return super.equals( arg0 ); + super.mouseWheelMoved( e ); } /// public java.lang.String java.lang.Object.toString() public native java.lang.String __toString( long __swiftObject ); - boolean entered_toString_9; + boolean entered_toString_10; public java.lang.String toString() { - if ( !entered_toString_9 ) { - entered_toString_9 = true; + if ( !entered_toString_10 ) { + entered_toString_10 = true; java.lang.String __return = __toString( __swiftObject ); - entered_toString_9 = false; + entered_toString_10 = false; return __return; } else return super.toString( ); } - /// public native int java.lang.Object.hashCode() - - public native int __hashCode( long __swiftObject ); - - boolean entered_hashCode_10; - - public int hashCode() { - if ( !entered_hashCode_10 ) { - entered_hashCode_10 = true; - int __return = __hashCode( __swiftObject ); - entered_hashCode_10 = false; - return __return; - } - else - return super.hashCode( ); - } - public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java b/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java index cefeaa1..f6c3119 100644 --- a/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java +++ b/src/org/swiftjava/javax_swing/MouseInputListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.MouseInputListener /// package org.swiftjava.javax_swing; @@ -6,28 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class MouseInputListenerProxy implements javax.swing.event.MouseInputListener { + // address of proxy object long __swiftObject; MouseInputListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) - - public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); - - public void mousePressed( java.awt.event.MouseEvent e ) { - __mousePressed( __swiftObject, e ); - } - - /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) - - public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); - - public void mouseReleased( java.awt.event.MouseEvent e ) { - __mouseReleased( __swiftObject, e ); - } - /// public abstract void java.awt.event.MouseListener.mouseClicked(java.awt.event.MouseEvent) public native void __mouseClicked( long __swiftObject, java.awt.event.MouseEvent e ); @@ -36,12 +23,12 @@ public void mouseClicked( java.awt.event.MouseEvent e ) { __mouseClicked( __swiftObject, e ); } - /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) + /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) - public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); - public void mouseExited( java.awt.event.MouseEvent e ) { - __mouseExited( __swiftObject, e ); + public void mouseDragged( java.awt.event.MouseEvent e ) { + __mouseDragged( __swiftObject, e ); } /// public abstract void java.awt.event.MouseListener.mouseEntered(java.awt.event.MouseEvent) @@ -52,6 +39,14 @@ public void mouseEntered( java.awt.event.MouseEvent e ) { __mouseEntered( __swiftObject, e ); } + /// public abstract void java.awt.event.MouseListener.mouseExited(java.awt.event.MouseEvent) + + public native void __mouseExited( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseExited( java.awt.event.MouseEvent e ) { + __mouseExited( __swiftObject, e ); + } + /// public abstract void java.awt.event.MouseMotionListener.mouseMoved(java.awt.event.MouseEvent) public native void __mouseMoved( long __swiftObject, java.awt.event.MouseEvent e ); @@ -60,12 +55,20 @@ public void mouseMoved( java.awt.event.MouseEvent e ) { __mouseMoved( __swiftObject, e ); } - /// public abstract void java.awt.event.MouseMotionListener.mouseDragged(java.awt.event.MouseEvent) + /// public abstract void java.awt.event.MouseListener.mousePressed(java.awt.event.MouseEvent) - public native void __mouseDragged( long __swiftObject, java.awt.event.MouseEvent e ); + public native void __mousePressed( long __swiftObject, java.awt.event.MouseEvent e ); - public void mouseDragged( java.awt.event.MouseEvent e ) { - __mouseDragged( __swiftObject, e ); + public void mousePressed( java.awt.event.MouseEvent e ) { + __mousePressed( __swiftObject, e ); + } + + /// public abstract void java.awt.event.MouseListener.mouseReleased(java.awt.event.MouseEvent) + + public native void __mouseReleased( long __swiftObject, java.awt.event.MouseEvent e ); + + public void mouseReleased( java.awt.event.MouseEvent e ) { + __mouseReleased( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/javax_swing/PlainDocumentProxy.java b/src/org/swiftjava/javax_swing/PlainDocumentProxy.java index 99f4126..b031b28 100644 --- a/src/org/swiftjava/javax_swing/PlainDocumentProxy.java +++ b/src/org/swiftjava/javax_swing/PlainDocumentProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// class javax.swing.text.PlainDocument /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class PlainDocumentProxy extends javax.swing.text.PlainDocument { + // address of proxy object long __swiftObject; /// public javax.swing.text.PlainDocument() diff --git a/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java b/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java index cbc69fc..9a34a32 100644 --- a/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java +++ b/src/org/swiftjava/javax_swing/PopupMenuListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.PopupMenuListener /// package org.swiftjava.javax_swing; @@ -6,18 +8,19 @@ @SuppressWarnings("JniMissingFunction") public class PopupMenuListenerProxy implements javax.swing.event.PopupMenuListener { + // address of proxy object long __swiftObject; PopupMenuListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent) + /// public abstract void javax.swing.event.PopupMenuListener.popupMenuCanceled(javax.swing.event.PopupMenuEvent) - public native void __popupMenuWillBecomeVisible( long __swiftObject, javax.swing.event.PopupMenuEvent e ); + public native void __popupMenuCanceled( long __swiftObject, javax.swing.event.PopupMenuEvent e ); - public void popupMenuWillBecomeVisible( javax.swing.event.PopupMenuEvent e ) { - __popupMenuWillBecomeVisible( __swiftObject, e ); + public void popupMenuCanceled( javax.swing.event.PopupMenuEvent e ) { + __popupMenuCanceled( __swiftObject, e ); } /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent) @@ -28,12 +31,12 @@ public void popupMenuWillBecomeInvisible( javax.swing.event.PopupMenuEvent e ) { __popupMenuWillBecomeInvisible( __swiftObject, e ); } - /// public abstract void javax.swing.event.PopupMenuListener.popupMenuCanceled(javax.swing.event.PopupMenuEvent) + /// public abstract void javax.swing.event.PopupMenuListener.popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent) - public native void __popupMenuCanceled( long __swiftObject, javax.swing.event.PopupMenuEvent e ); + public native void __popupMenuWillBecomeVisible( long __swiftObject, javax.swing.event.PopupMenuEvent e ); - public void popupMenuCanceled( javax.swing.event.PopupMenuEvent e ) { - __popupMenuCanceled( __swiftObject, e ); + public void popupMenuWillBecomeVisible( javax.swing.event.PopupMenuEvent e ) { + __popupMenuWillBecomeVisible( __swiftObject, e ); } public native void __finalize( long __swiftObject ); diff --git a/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java b/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java index 516afc1..dcc1317 100644 --- a/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java +++ b/src/org/swiftjava/javax_swing/RowSorterListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.RowSorterListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class RowSorterListenerProxy implements javax.swing.event.RowSorterListener { + // address of proxy object long __swiftObject; RowSorterListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java b/src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java index 0d69259..3a2e12a 100644 --- a/src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TableColumnModelListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.TableColumnModelListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class TableColumnModelListenerProxy implements javax.swing.event.TableColumnModelListener { + // address of proxy object long __swiftObject; TableColumnModelListenerProxy( long __swiftObject ) { @@ -20,12 +23,12 @@ public void columnAdded( javax.swing.event.TableColumnModelEvent e ) { __columnAdded( __swiftObject, e ); } - /// public abstract void javax.swing.event.TableColumnModelListener.columnRemoved(javax.swing.event.TableColumnModelEvent) + /// public abstract void javax.swing.event.TableColumnModelListener.columnMarginChanged(javax.swing.event.ChangeEvent) - public native void __columnRemoved( long __swiftObject, javax.swing.event.TableColumnModelEvent e ); + public native void __columnMarginChanged( long __swiftObject, javax.swing.event.ChangeEvent e ); - public void columnRemoved( javax.swing.event.TableColumnModelEvent e ) { - __columnRemoved( __swiftObject, e ); + public void columnMarginChanged( javax.swing.event.ChangeEvent e ) { + __columnMarginChanged( __swiftObject, e ); } /// public abstract void javax.swing.event.TableColumnModelListener.columnMoved(javax.swing.event.TableColumnModelEvent) @@ -36,12 +39,12 @@ public void columnMoved( javax.swing.event.TableColumnModelEvent e ) { __columnMoved( __swiftObject, e ); } - /// public abstract void javax.swing.event.TableColumnModelListener.columnMarginChanged(javax.swing.event.ChangeEvent) + /// public abstract void javax.swing.event.TableColumnModelListener.columnRemoved(javax.swing.event.TableColumnModelEvent) - public native void __columnMarginChanged( long __swiftObject, javax.swing.event.ChangeEvent e ); + public native void __columnRemoved( long __swiftObject, javax.swing.event.TableColumnModelEvent e ); - public void columnMarginChanged( javax.swing.event.ChangeEvent e ) { - __columnMarginChanged( __swiftObject, e ); + public void columnRemoved( javax.swing.event.TableColumnModelEvent e ) { + __columnRemoved( __swiftObject, e ); } /// public abstract void javax.swing.event.TableColumnModelListener.columnSelectionChanged(javax.swing.event.ListSelectionEvent) diff --git a/src/org/swiftjava/javax_swing/TableModelListenerProxy.java b/src/org/swiftjava/javax_swing/TableModelListenerProxy.java index efafd75..750a26b 100644 --- a/src/org/swiftjava/javax_swing/TableModelListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TableModelListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.TableModelListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class TableModelListenerProxy implements javax.swing.event.TableModelListener { + // address of proxy object long __swiftObject; TableModelListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java b/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java index 3992ebe..8bb63f4 100644 --- a/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TreeExpansionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.TreeExpansionListener /// package org.swiftjava.javax_swing; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class TreeExpansionListenerProxy implements javax.swing.event.TreeExpansionListener { + // address of proxy object long __swiftObject; TreeExpansionListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.event.TreeExpansionListener.treeExpanded(javax.swing.event.TreeExpansionEvent) - - public native void __treeExpanded( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); - - public void treeExpanded( javax.swing.event.TreeExpansionEvent event ) { - __treeExpanded( __swiftObject, event ); - } - /// public abstract void javax.swing.event.TreeExpansionListener.treeCollapsed(javax.swing.event.TreeExpansionEvent) public native void __treeCollapsed( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); @@ -28,6 +23,14 @@ public void treeCollapsed( javax.swing.event.TreeExpansionEvent event ) { __treeCollapsed( __swiftObject, event ); } + /// public abstract void javax.swing.event.TreeExpansionListener.treeExpanded(javax.swing.event.TreeExpansionEvent) + + public native void __treeExpanded( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); + + public void treeExpanded( javax.swing.event.TreeExpansionEvent event ) { + __treeExpanded( __swiftObject, event ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java b/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java index 5494c93..d5aa3de 100644 --- a/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TreeModelListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.TreeModelListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class TreeModelListenerProxy implements javax.swing.event.TreeModelListener { + // address of proxy object long __swiftObject; TreeModelListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java b/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java index eb97826..409883c 100644 --- a/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TreeSelectionListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.TreeSelectionListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class TreeSelectionListenerProxy implements javax.swing.event.TreeSelectionListener { + // address of proxy object long __swiftObject; TreeSelectionListenerProxy( long __swiftObject ) { diff --git a/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java b/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java index 80c6c70..4c04e3c 100644 --- a/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java +++ b/src/org/swiftjava/javax_swing/TreeWillExpandListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.TreeWillExpandListener /// package org.swiftjava.javax_swing; @@ -6,20 +8,13 @@ @SuppressWarnings("JniMissingFunction") public class TreeWillExpandListenerProxy implements javax.swing.event.TreeWillExpandListener { + // address of proxy object long __swiftObject; TreeWillExpandListenerProxy( long __swiftObject ) { this.__swiftObject = __swiftObject; } - /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillExpand(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException - - public native void __treeWillExpand( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); - - public void treeWillExpand( javax.swing.event.TreeExpansionEvent event ) throws javax.swing.tree.ExpandVetoException { - __treeWillExpand( __swiftObject, event ); - } - /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillCollapse(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException public native void __treeWillCollapse( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); @@ -28,6 +23,14 @@ public void treeWillCollapse( javax.swing.event.TreeExpansionEvent event ) throw __treeWillCollapse( __swiftObject, event ); } + /// public abstract void javax.swing.event.TreeWillExpandListener.treeWillExpand(javax.swing.event.TreeExpansionEvent) throws javax.swing.tree.ExpandVetoException + + public native void __treeWillExpand( long __swiftObject, javax.swing.event.TreeExpansionEvent event ); + + public void treeWillExpand( javax.swing.event.TreeExpansionEvent event ) throws javax.swing.tree.ExpandVetoException { + __treeWillExpand( __swiftObject, event ); + } + public native void __finalize( long __swiftObject ); public void finalize() { diff --git a/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java b/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java index 2804c98..bcb3085 100644 --- a/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java +++ b/src/org/swiftjava/javax_swing/UndoableEditListenerProxy.java @@ -1,4 +1,6 @@ +/// generated by: genswift.java 'java/lang|java/util|java/sql|java/awt|javax/swing' /// + /// interface javax.swing.event.UndoableEditListener /// package org.swiftjava.javax_swing; @@ -6,6 +8,7 @@ @SuppressWarnings("JniMissingFunction") public class UndoableEditListenerProxy implements javax.swing.event.UndoableEditListener { + // address of proxy object long __swiftObject; UndoableEditListenerProxy( long __swiftObject ) { diff --git a/swift-android-gradle b/swift-android-gradle index 39a50bc..11e1a2b 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 39a50bcb4adee128e5dfdc1772684ca938760f06 +Subproject commit 11e1a2bb63c346636ba6e35d90a9f2a006da1770 diff --git a/swift-android-kotlin b/swift-android-kotlin index 500ede4..72c9559 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 500ede4d1a45396e8d378acce86c2ac6e5ef4a72 +Subproject commit 72c9559d53268b414b5688244346a09e99356e0d diff --git a/swift-android-samples b/swift-android-samples index 4a03215..d833437 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 4a03215df127ee500043cabf313ae62ca15e8d02 +Subproject commit d8334377bc57af3d07710582ff19956c9daee942 diff --git a/swiftjava.jar b/swiftjava.jar index 434883cab9847f954ef4f1dac88cb0c9d8a5f48a..894c62c9fb801f5a0a08e179104e7578e58a56ef 100644 GIT binary patch delta 74882 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 delta 71966 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

Or=sQ(O*CTgSEQ8Qzx3E4nB6 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 VW8AwJ2>h1>Y^0Etf&J&b{{w1$_Y(jB From b11ba7451dcf4b8513733be71b33c6c35c213787 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 27 Aug 2017 16:54:12 +0100 Subject: [PATCH 29/53] SQLite now part of toolchain --- java_swift | 2 +- swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/java_swift b/java_swift index 6da1501..77d016c 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 6da15017c1364ae6cffe78c92c02c9a28a353d85 +Subproject commit 77d016cf913d7171d8b934c35f0462c6da804696 diff --git a/swift-android-gradle b/swift-android-gradle index 11e1a2b..8ffd2ab 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 11e1a2bb63c346636ba6e35d90a9f2a006da1770 +Subproject commit 8ffd2ab03186438e3ed60de72dd5557c465b5d60 diff --git a/swift-android-kotlin b/swift-android-kotlin index 72c9559..73a43d2 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 72c9559d53268b414b5688244346a09e99356e0d +Subproject commit 73a43d28341caa3a57ee5d34a31509f95d6b8307 diff --git a/swift-android-samples b/swift-android-samples index d833437..f9a29df 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit d8334377bc57af3d07710582ff19956c9daee942 +Subproject commit f9a29df61f61604444866d270eef858afe782466 From 865c2a74a354cb12b92f348cf03424855b0ae6ad Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Wed, 30 Aug 2017 18:59:37 +0100 Subject: [PATCH 30/53] Beta III toolchain --- swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/swift-android-gradle b/swift-android-gradle index 8ffd2ab..1c67d9f 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 8ffd2ab03186438e3ed60de72dd5557c465b5d60 +Subproject commit 1c67d9f41bd79f7e8fc3be43754d3ae2224460e4 diff --git a/swift-android-kotlin b/swift-android-kotlin index 73a43d2..da57343 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 73a43d28341caa3a57ee5d34a31509f95d6b8307 +Subproject commit da573436d4b026a5c5b6bc8c0b03183946a6a342 diff --git a/swift-android-samples b/swift-android-samples index f9a29df..eca0abc 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit f9a29df61f61604444866d270eef858afe782466 +Subproject commit eca0abc702a42af4a0a22919c249e13adb2f33a6 From 73f7af18047d9b9a90e8b46a975e51ecab3e14c7 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sat, 9 Sep 2017 12:18:43 +0100 Subject: [PATCH 31/53] Release candidate 1 --- swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/swift-android-gradle b/swift-android-gradle index 1c67d9f..466c8c1 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 1c67d9f41bd79f7e8fc3be43754d3ae2224460e4 +Subproject commit 466c8c1ad538667c4d8c01d3a34871cfe6600ac1 diff --git a/swift-android-kotlin b/swift-android-kotlin index da57343..30252c2 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit da573436d4b026a5c5b6bc8c0b03183946a6a342 +Subproject commit 30252c25135a80be44a6792520d789782a3b4953 diff --git a/swift-android-samples b/swift-android-samples index eca0abc..6dc0447 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit eca0abc702a42af4a0a22919c249e13adb2f33a6 +Subproject commit 6dc0447d69b687e459f9be9c29525480f80eeec4 From 7a9b91b18551a6f0e4d75666fb99b2b0235cc098 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Sun, 17 Sep 2017 23:31:13 +0100 Subject: [PATCH 32/53] Injectable version --- .../Sources/SwiftHelloBinding_Responder.swift | 67 ++++++++++++------- java_lang | 2 +- java_swift | 2 +- .../swiftbindings/SwiftHelloBinding.java | 2 + swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 7 files changed, 50 insertions(+), 29 deletions(-) diff --git a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift index ba6bfed..2515948 100644 --- a/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift +++ b/com_johnholdsworth/Sources/SwiftHelloBinding_Responder.swift @@ -11,6 +11,10 @@ public protocol SwiftHelloBinding_Responder: JavaProtocol { func debug( msg: String? ) -> [String]! + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.onMainThread(java.lang.Runnable) + + func onMainThread( runnable: java_swift.Runnable? ) + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) func processMap( map: [String:SwiftHelloTypes_TextListener]? ) @@ -64,13 +68,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract java.lang.String[] com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.debug(java.lang.String) - private static var debug_MethodID_13: jmethodID? + private static var debug_MethodID_14: jmethodID? open func debug( msg: String? ) -> [String]! { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: msg, locals: &__locals ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_13, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "debug", methodSig: "(Ljava/lang/String;)[Ljava/lang/String;", methodCache: &SwiftHelloBinding_ResponderForward.debug_MethodID_14, args: &__args, locals: &__locals ) return JNIType.toSwift( type: [String].self, from: __return ) } @@ -78,15 +82,30 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi return debug( msg: _msg ) } + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.onMainThread(java.lang.Runnable) + + private static var onMainThread_MethodID_15: jmethodID? + + open func onMainThread( runnable: java_swift.Runnable? ) { + var __locals = [jobject]() + var __args = [jvalue]( repeating: jvalue(), count: 1 ) + __args[0] = JNIType.toJava( value: runnable, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "onMainThread", methodSig: "(Ljava/lang/Runnable;)V", methodCache: &SwiftHelloBinding_ResponderForward.onMainThread_MethodID_15, args: &__args, locals: &__locals ) + } + + open func onMainThread( _ _runnable: java_swift.Runnable? ) { + onMainThread( runnable: _runnable ) + } + /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMap) - private static var processMap_MethodID_14: jmethodID? + private static var processMap_MethodID_16: jmethodID? open func processMap( map: [String:SwiftHelloTypes_TextListener]? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_14, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMap_MethodID_16, args: &__args, locals: &__locals ) } open func processMap( _ _map: [String:SwiftHelloTypes_TextListener]? ) { @@ -95,13 +114,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$ListenerMapList) - private static var processMapList_MethodID_15: jmethodID? + private static var processMapList_MethodID_17: jmethodID? open func processMapList( map: [String:[SwiftHelloTypes_TextListener]]? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_15, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$ListenerMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processMapList_MethodID_17, args: &__args, locals: &__locals ) } open func processMapList( _ _map: [String:[SwiftHelloTypes_TextListener]]? ) { @@ -110,13 +129,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedNumber(double) - private static var processedNumber_MethodID_16: jmethodID? + private static var processedNumber_MethodID_18: jmethodID? open func processedNumber( number: Double ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = jvalue( d: number ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_16, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedNumber", methodSig: "(D)V", methodCache: &SwiftHelloBinding_ResponderForward.processedNumber_MethodID_18, args: &__args, locals: &__locals ) } open func processedNumber( _ _number: Double ) { @@ -125,13 +144,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMap(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMap) - private static var processedStringMap_MethodID_17: jmethodID? + private static var processedStringMap_MethodID_19: jmethodID? open func processedStringMap( map: [String:String]? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMap_MethodID_17, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMap", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMap;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMap_MethodID_19, args: &__args, locals: &__locals ) } open func processedStringMap( _ _map: [String:String]? ) { @@ -140,13 +159,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedStringMapList(com.johnholdsworth.swiftbindings.SwiftHelloTypes$StringMapList) - private static var processedStringMapList_MethodID_18: jmethodID? + private static var processedStringMapList_MethodID_20: jmethodID? open func processedStringMapList( map: [String:[String]]? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: map, mapClass: "com/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList", locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMapList_MethodID_18, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedStringMapList", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$StringMapList;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedStringMapList_MethodID_20, args: &__args, locals: &__locals ) } open func processedStringMapList( _ _map: [String:[String]]? ) { @@ -155,13 +174,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedText(java.lang.String) - private static var processedText_MethodID_19: jmethodID? + private static var processedText_MethodID_21: jmethodID? open func processedText( text: String? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_19, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedText", methodSig: "(Ljava/lang/String;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedText_MethodID_21, args: &__args, locals: &__locals ) } open func processedText( _ _text: String? ) { @@ -170,13 +189,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener) - private static var processedTextListener_MethodID_20: jmethodID? + private static var processedTextListener_MethodID_22: jmethodID? open func processedTextListener( text: SwiftHelloTypes_TextListener? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_20, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener", methodSig: "(Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener_MethodID_22, args: &__args, locals: &__locals ) } open func processedTextListener( _ _text: SwiftHelloTypes_TextListener? ) { @@ -185,13 +204,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListener2dArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[][]) - private static var processedTextListener2dArray_MethodID_21: jmethodID? + private static var processedTextListener2dArray_MethodID_23: jmethodID? open func processedTextListener2dArray( text: [[SwiftHelloTypes_TextListener]]? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_21, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListener2dArray", methodSig: "([[Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListener2dArray_MethodID_23, args: &__args, locals: &__locals ) } open func processedTextListener2dArray( _ _text: [[SwiftHelloTypes_TextListener]]? ) { @@ -200,13 +219,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract void com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.processedTextListenerArray(com.johnholdsworth.swiftbindings.SwiftHelloTypes$TextListener[]) - private static var processedTextListenerArray_MethodID_22: jmethodID? + private static var processedTextListenerArray_MethodID_24: jmethodID? open func processedTextListenerArray( text: [SwiftHelloTypes_TextListener]? ) { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = JNIType.toJava( value: text, locals: &__locals ) - JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_22, args: &__args, locals: &__locals ) + JNIMethod.CallVoidMethod( object: javaObject, methodName: "processedTextListenerArray", methodSig: "([Lcom/johnholdsworth/swiftbindings/SwiftHelloTypes$TextListener;)V", methodCache: &SwiftHelloBinding_ResponderForward.processedTextListenerArray_MethodID_24, args: &__args, locals: &__locals ) } open func processedTextListenerArray( _ _text: [SwiftHelloTypes_TextListener]? ) { @@ -215,13 +234,13 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract com.johnholdsworth.swiftbindings.SwiftHelloTest$TestListener com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.testResponder(int) - private static var testResponder_MethodID_23: jmethodID? + private static var testResponder_MethodID_25: jmethodID? open func testResponder( loopback: Int ) -> SwiftHelloTest_TestListener! { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) __args[0] = jvalue( i: jint(loopback) ) - let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_23, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallObjectMethod( object: javaObject, methodName: "testResponder", methodSig: "(I)Lcom/johnholdsworth/swiftbindings/SwiftHelloTest$TestListener;", methodCache: &SwiftHelloBinding_ResponderForward.testResponder_MethodID_25, args: &__args, locals: &__locals ) defer { JNI.DeleteLocalRef( __return ) } return __return != nil ? SwiftHelloTest_TestListenerForward( javaObject: __return ) : nil } @@ -232,12 +251,12 @@ open class SwiftHelloBinding_ResponderForward: JNIObjectForward, SwiftHelloBindi /// public abstract double com.johnholdsworth.swiftbindings.SwiftHelloBinding$Responder.throwException() throws java.lang.Exception - private static var throwException_MethodID_24: jmethodID? + private static var throwException_MethodID_26: jmethodID? open func throwException() throws /* java.lang.Exception */ -> Double { var __locals = [jobject]() var __args = [jvalue]( repeating: jvalue(), count: 1 ) - let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "throwException", methodSig: "()D", methodCache: &SwiftHelloBinding_ResponderForward.throwException_MethodID_24, args: &__args, locals: &__locals ) + let __return = JNIMethod.CallDoubleMethod( object: javaObject, methodName: "throwException", methodSig: "()D", methodCache: &SwiftHelloBinding_ResponderForward.throwException_MethodID_26, args: &__args, locals: &__locals ) if let throwable = JNI.ExceptionCheck() { defer { JNI.DeleteLocalRef( throwable ) } throw java_swift.Exception( javaObject: throwable ) diff --git a/java_lang b/java_lang index 0851e2d..c9b8b55 160000 --- a/java_lang +++ b/java_lang @@ -1 +1 @@ -Subproject commit 0851e2d48b4462bf9aefda0d69b5ef6711e14c83 +Subproject commit c9b8b55fd8f40bc25ec2c49fa03a7d3a51b78766 diff --git a/java_swift b/java_swift index 77d016c..3a48760 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 77d016cf913d7171d8b934c35f0462c6da804696 +Subproject commit 3a48760a5528ccb31d998afbfcb09d291268674f diff --git a/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java b/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java index 8a5d425..28d7d50 100644 --- a/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java +++ b/src/com/johnholdsworth/swiftbindings/SwiftHelloBinding.java @@ -57,6 +57,8 @@ public interface Responder { public String[] debug( String msg ); + public void onMainThread( Runnable runnable ); + public SwiftHelloTest.TestListener testResponder( int loopback ); } diff --git a/swift-android-gradle b/swift-android-gradle index 466c8c1..4110f7c 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 466c8c1ad538667c4d8c01d3a34871cfe6600ac1 +Subproject commit 4110f7c503ce40c447bc8f3b8eb905a8b8babdfd diff --git a/swift-android-kotlin b/swift-android-kotlin index 30252c2..e68849a 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 30252c25135a80be44a6792520d789782a3b4953 +Subproject commit e68849af02102e6c6a2d12613ed4c1fcff8a58a3 diff --git a/swift-android-samples b/swift-android-samples index 6dc0447..770c29d 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 6dc0447d69b687e459f9be9c29525480f80eeec4 +Subproject commit 770c29dd045abb9dfd8fa75cc1805202931039a3 From 14b59e27e0de98e886b363ac00722e6b08a35a72 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Fri, 22 Sep 2017 15:41:44 +0100 Subject: [PATCH 33/53] Fortified Swift --- swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/swift-android-gradle b/swift-android-gradle index 4110f7c..6a1a924 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 4110f7c503ce40c447bc8f3b8eb905a8b8babdfd +Subproject commit 6a1a924b9a0e59d77ba43694018e8925a09c76c3 diff --git a/swift-android-kotlin b/swift-android-kotlin index e68849a..63a7879 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit e68849af02102e6c6a2d12613ed4c1fcff8a58a3 +Subproject commit 63a7879f0404b8eec9533d85f0d3cc7f795e9df4 diff --git a/swift-android-samples b/swift-android-samples index 770c29d..ca9eb67 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 770c29dd045abb9dfd8fa75cc1805202931039a3 +Subproject commit ca9eb677dae81ae116807aa758c0ae87df90994a From c99df0ee34ce770699d5d42ed48b95170e6bbd77 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Fri, 22 Sep 2017 15:45:51 +0100 Subject: [PATCH 34/53] Bring in injection. --- .gitmodules | 6 ++++++ Injection4Android | 1 + SwiftJava.xcodeproj/project.pbxproj | 4 ++++ swift-android-injection | 1 + 4 files changed, 12 insertions(+) create mode 160000 Injection4Android create mode 160000 swift-android-injection diff --git a/.gitmodules b/.gitmodules index b3be35a..3a19311 100644 --- a/.gitmodules +++ b/.gitmodules @@ -37,3 +37,9 @@ [submodule "android_toolchain"] path = android_toolchain url = https://github.com/SwiftJava/android_toolchain +[submodule "swift-android-injection"] + path = swift-android-injection + url = https://github.com/SwiftJava/swift-android-injection.git +[submodule "Injection4Android"] + path = Injection4Android + url = https://github.com/SwiftJava/Injection4Android.git diff --git a/Injection4Android b/Injection4Android new file mode 160000 index 0000000..1f8e8d3 --- /dev/null +++ b/Injection4Android @@ -0,0 +1 @@ +Subproject commit 1f8e8d3fe85dbf1ccc1e3ada8dd58197ed242d48 diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index fba2a3e..00b141d 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -217,6 +217,8 @@ /* Begin PBXFileReference section */ BB0543FE1D41F38C00F9B367 /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = "../../../../usr/local/jvm/openjdk-1.8.0-internal/jre/lib/server/libjvm.dylib"; sourceTree = ""; }; BB0544041D42D55200F9B367 /* genjar.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genjar.sh; sourceTree = ""; }; + BB0AB6B31F7559C700B60EC0 /* Injection4Android */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Injection4Android; sourceTree = ""; }; + BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-injection"; sourceTree = ""; }; BB19B4411D673986002F5586 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; BB31E20E1D4FF13400779860 /* genpkg.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genpkg.sh; sourceTree = ""; }; BB5ACFDB1D35B09900E2386A /* JDBC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JDBC.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -340,6 +342,8 @@ BB643B311F4873F7003E849E /* swift-android-gradle */, BB9CF8971D61BAF4004781B9 /* swift-android-samples */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, + BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */, + BB0AB6B31F7559C700B60EC0 /* Injection4Android */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, ); diff --git a/swift-android-injection b/swift-android-injection new file mode 160000 index 0000000..e3878b3 --- /dev/null +++ b/swift-android-injection @@ -0,0 +1 @@ +Subproject commit e3878b355b41fb6c76083cf72987c534e40c125a From 3777c892c9c22910b7faada28744f2d116908b6d Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Mon, 25 Sep 2017 18:26:56 +0100 Subject: [PATCH 35/53] Demo of Simultaneous accesses --- SwiftJava.xcodeproj/project.pbxproj | 4 + org_swiftjava/Fortify.swift | 144 ++++++++++++++++++++++++++++ org_swiftjava/org_swiftjava.swift | 17 +++- 3 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 org_swiftjava/Fortify.swift diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 00b141d..dbc7d53 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5ACFDE1D35B09900E2386A /* AppDelegate.swift */; }; BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE21D35B09900E2386A /* MainMenu.xib */; }; + BB63C9E51F7970F00048D83B /* Fortify.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB63C9E41F7970EE0048D83B /* Fortify.swift */; }; BB643B321F4873F7003E849E /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB643B311F4873F7003E849E /* swift-android-gradle */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; @@ -226,6 +227,7 @@ BB5ACFE01D35B09900E2386A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; BB5ACFE31D35B09900E2386A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; BB5ACFE51D35B09900E2386A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BB63C9E41F7970EE0048D83B /* Fortify.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Fortify.swift; sourceTree = ""; }; BB643B311F4873F7003E849E /* swift-android-gradle */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-gradle"; sourceTree = ""; }; BB6651301F2E39F6004EFD5F /* swift-android-kotlin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-kotlin"; sourceTree = ""; }; BB6651351F2E3F50004EFD5F /* android_toolchain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = android_toolchain; sourceTree = ""; }; @@ -435,6 +437,7 @@ BBC13DB71D48FDCE0035A039 /* org_swiftjava */ = { isa = PBXGroup; children = ( + BB63C9E41F7970EE0048D83B /* Fortify.swift */, CE4A251C1F355B0A003AF384 /* SwiftTest.java */, CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */, CE4A25141F355902003AF384 /* SwiftHelloTest_TestResponderAdapter.swift */, @@ -807,6 +810,7 @@ BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */, CE4A25211F355CAC003AF384 /* SwiftHelloTest_TestListener.swift in Sources */, CE4A25191F355910003AF384 /* SwiftHelloTest_SwiftTestListener.swift in Sources */, + BB63C9E51F7970F00048D83B /* Fortify.swift in Sources */, BBC13DC21D4900AA0035A039 /* SwiftTest.swift in Sources */, CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */, CE4A251A1F355914003AF384 /* SwiftHelloTest_TestResponderAdapter.swift in Sources */, diff --git a/org_swiftjava/Fortify.swift b/org_swiftjava/Fortify.swift new file mode 100644 index 0000000..61d3cf3 --- /dev/null +++ b/org_swiftjava/Fortify.swift @@ -0,0 +1,144 @@ +// +// Fortify.swift +// Fortify +// +// Created by John Holdsworth on 19/09/2017. +// Copyright © 2017 John Holdsworth. All rights reserved. +// +// Currently requires patched Swift toolchain from here: +// http://johnholdsworth.com/swift-LOCAL-2017-09-20-a-osx.tar.gz +// + +import Foundation + +open class ThreadLocal { + public required init() { + } + + public class func getThreadLocal(ofClass: T.Type, + keyVar: UnsafeMutablePointer) -> T { + let needsKey = keyVar.pointee == 0 + if needsKey { + let ret = pthread_key_create(keyVar, { + #if os(Linux) + Unmanaged.fromOpaque($0!).release() + #else + Unmanaged.fromOpaque($0).release() + #endif + }) + if ret != 0 { + NSLog("Could not pthread_key_create: %s", strerror(ret)) + } + } + if let existing = pthread_getspecific(keyVar.pointee) { + return Unmanaged.fromOpaque(existing).takeUnretainedValue() + } + else { + let unmanaged = Unmanaged.passRetained(T()) + let ret = pthread_setspecific(keyVar.pointee, unmanaged.toOpaque()) + if ret != 0 { + NSLog("Could not pthread_setspecific: %s", strerror(ret)) + } + return unmanaged.takeUnretainedValue() + } + } +} + +@_silgen_name ("setjmp") +public func setjump(_: UnsafeMutablePointer!) -> Int32 + +@_silgen_name ("longjmp") +public func longjump(_: UnsafeMutablePointer!, _: Int32) -> Never + +private let empty_buf = [UInt8](repeating: 0, count: MemoryLayout.size) + +open class Fortify: ThreadLocal { + + static private var pthreadKey: pthread_key_t = 0 + + open class var threadLocal: Fortify { + return getThreadLocal(ofClass: Fortify.self, keyVar: &pthreadKey) + } + + private var stack = [jmp_buf]() + public var error: Error? + + // Required as Swift assumes it has control of the stack + open class func disableExclusivityChecking() { + #if os(Android) + let libName = "libswiftCore.so" + #else + let libName: String? = nil + #endif + if let stdlibHandle = dlopen(libName, Int32(RTLD_LAZY | RTLD_NOLOAD)), + let disableExclusivity = dlsym(stdlibHandle, "_swift_disableExclusivityChecking") { + disableExclusivity.assumingMemoryBound(to: Bool.self).pointee = true + } + else { + NSLog("Could not disable exclusivity, failure likely...") + } + } + + public static let installHandlerOnce: Void = { +// _swift_stdlib_errorHandler = { +// (prefix: StaticString, msg: String, file: StaticString, +// line: UInt, flags: UInt32, config: Int32) in +// escape(msg: msg, file: file, line: line) +// } + + disableExclusivityChecking() + }() + + open class func exec( block: () throws -> T ) throws -> T { + _ = installHandlerOnce + let local = threadLocal + + empty_buf.withUnsafeBytes { + let buf_ptr = $0.baseAddress!.assumingMemoryBound(to: jmp_buf.self) + local.stack.append(buf_ptr.pointee) + } + + defer { + local.stack.removeLast() + } + + if setjump(&local.stack[local.stack.count-1]) != 0 { + throw local.error ?? NSError(domain: "Error not available", code: -1, userInfo: nil) + } + + return try block() + } + + open class func escape(msg: String, file: StaticString = #file, line: UInt = #line) -> Never { + escape(withError: NSError(domain: msg, code: -1, userInfo: [ + NSLocalizedDescriptionKey: "\(msg): \(file):\(line)", + "msg": msg, "file": file, "line": line + ])) + } + + open class func escape(withError error: Error) -> Never { + let local = threadLocal + local.error = error + + if local.stack.count == 0 { + NSLog("escape without matching exec call: \(error)") + #if !os(Linux) + // pthread_exit(nil) just crashes + var oldState: Int32 = 0 + pthread_setcancelstate(Int32(PTHREAD_CANCEL_ENABLE), &oldState) + pthread_setcanceltype(Int32(PTHREAD_CANCEL_DEFERRED), &oldState) + // pthread_cancel() never seems to be implemented + let cancelled = pthread_cancel(pthread_self()) + if cancelled != 0 { + NSLog("pthread_cancel() failed: %s", strerror(cancelled)) + } + sleep(1) + #endif + NSLog("cancel/exit not available/implemented or crashes, parking thread") + Thread.sleep(until: Date.distantFuture) + } + + longjump(&local.stack[local.stack.count-1], 1) + NSLog("longjmp() failed, should not get here") + } +} diff --git a/org_swiftjava/org_swiftjava.swift b/org_swiftjava/org_swiftjava.swift index 8ee7089..8328b20 100644 --- a/org_swiftjava/org_swiftjava.swift +++ b/org_swiftjava/org_swiftjava.swift @@ -25,10 +25,21 @@ class org_swiftjava: XCTestCase { // Use XCTAssert and related functions to verify your tests produce the correct results. // SwiftHelloTest_TestListenerLocal_.proxyClass() - let instance = SwiftHelloTest_TestResponderAdapter() - instance.loopback = SwiftTestListener() - instance.loopback.setLoopback(loopback: SwiftHelloTest_TestResponderAdapter()) + // You'll get an assertion failure if + // you comment the following line out. + Fortify.disableExclusivityChecking() + + let dest = SwiftTestListener() + + let bounce2 = SwiftHelloTest_TestResponderAdapter() + bounce2.setLoopback(loopback: dest) + + let bounce1 = SwiftTestListener() + bounce1.loopback = bounce2 + + let instance = SwiftHelloTest_TestResponderAdapter() + instance.setLoopback(loopback: bounce1) if true { let reference: Bool = true From d6269701670e5b6caf3b5d2672bcce9205f343e2 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Tue, 26 Sep 2017 11:41:15 -0700 Subject: [PATCH 36/53] Quote unquoted paths --- genswift.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/genswift.sh b/genswift.sh index 5d6d3a8..098436e 100755 --- a/genswift.sh +++ b/genswift.sh @@ -10,16 +10,16 @@ # need to compile with the new-to-Java8 option -parameters. # -export JAVA_HOME=${JAVA_HOME?-Please export JAVA_HOME} +export JAVA_HOME="${JAVA_HOME?-Please export JAVA_HOME}" FILTER="${1:-java/lang|java/util|java/sql|java/awt|javax/swing}" FILTER="$(echo "$FILTER" | sed 's@[._]@/@g' | sed 's@\$@\\$@g')" -TARGET_JAR=${2:-$JAVA_HOME/jre/lib/rt.jar} +TARGET_JAR="${2:-$JAVA_HOME/jre/lib/rt.jar}" PACKAGE_ORDER=${3:-java/lang|java/util|java/sql|java/awt|javax/swing} -cd "$(dirname "$0")/src" && $JAVA_HOME/bin/javac -d ../bin genswift.java && cd .. && +cd "$(dirname "$0")/src" && "$JAVA_HOME/bin/javac" -d ../bin genswift.java && cd .. && -$JAVA_HOME/bin/jar tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | $JAVA_HOME/bin/java -cp "$TARGET_JAR:bin" genswift "$PACKAGE_ORDER" +"$JAVA_HOME/bin/jar" tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | "$JAVA_HOME/bin/java" -cp "$TARGET_JAR:bin" genswift "$PACKAGE_ORDER" From f98a24691dce6b50f1144bcc3bf45a1fe07c0d10 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Tue, 26 Sep 2017 12:12:08 -0700 Subject: [PATCH 37/53] Don't assume `bin` folder exists --- genswift.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genswift.sh b/genswift.sh index 098436e..cdd2e15 100755 --- a/genswift.sh +++ b/genswift.sh @@ -20,6 +20,6 @@ TARGET_JAR="${2:-$JAVA_HOME/jre/lib/rt.jar}" PACKAGE_ORDER=${3:-java/lang|java/util|java/sql|java/awt|javax/swing} -cd "$(dirname "$0")/src" && "$JAVA_HOME/bin/javac" -d ../bin genswift.java && cd .. && +cd "$(dirname "$0")/src" && mkdir -p ../bin && "$JAVA_HOME/bin/javac" -d ../bin genswift.java && cd .. && "$JAVA_HOME/bin/jar" tf "$TARGET_JAR" | egrep "^($FILTER)" | sed "s@\\.class\$@@" | "$JAVA_HOME/bin/java" -cp "$TARGET_JAR:bin" genswift "$PACKAGE_ORDER" From 947b21f9200b9612ab706d0677d4f1f9733d1477 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 21 Dec 2017 21:54:08 +0000 Subject: [PATCH 38/53] Retain classloader on Android --- CJavaVM | 2 +- java_swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CJavaVM b/CJavaVM index 85acfee..6240b2a 160000 --- a/CJavaVM +++ b/CJavaVM @@ -1 +1 @@ -Subproject commit 85acfee62bd8e682fc61881c145cae464254684d +Subproject commit 6240b2a563f02d98a162d4dce856b6c9a7196c90 diff --git a/java_swift b/java_swift index 3a48760..b9b0f26 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 3a48760a5528ccb31d998afbfcb09d291268674f +Subproject commit b9b0f2657ccac9ad4e77969db67768debbe400c7 From af37ec4871a7b35843f163edd55268be1ef4187c Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 21 Dec 2017 23:31:39 +0000 Subject: [PATCH 39/53] api.ExceptionClear( env ) required on retry --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index b9b0f26..6b58f15 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit b9b0f2657ccac9ad4e77969db67768debbe400c7 +Subproject commit 6b58f15b116ce4a7c4f704e3b9f2b0c649542011 From c1e176acab54e66d521e2b65cbbdcb7596a6bfe5 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 26 Dec 2017 17:50:00 +0000 Subject: [PATCH 40/53] classLoader as switch --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index 6b58f15..1d31a0c 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 6b58f15b116ce4a7c4f704e3b9f2b0c649542011 +Subproject commit 1d31a0c46d90e3588a192509390aca022d03080b From f3f5a5c494137105571bcb46836fe7230c7393d1 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 19 Apr 2018 18:48:28 +0100 Subject: [PATCH 41/53] Swift 4.1 --- JDBC/AppDelegate.swift | 2 +- com_apple | 2 +- examples | 2 +- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- src/genswift.java | 10 ++++++---- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 12 files changed, 17 insertions(+), 15 deletions(-) diff --git a/JDBC/AppDelegate.swift b/JDBC/AppDelegate.swift index 2d8f639..70b0f05 100644 --- a/JDBC/AppDelegate.swift +++ b/JDBC/AppDelegate.swift @@ -62,7 +62,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSTableViewDataSource, NSTab } // Use Thread class to run in background to get the correct class loader & classpath - Thread( { + JavaThread( { do { if try JavaClass.forName( self.driverClass.stringValue ) == nil { diff --git a/com_apple b/com_apple index 91d2699..9f8cc09 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 91d2699cda183bab7bd70207d70d95b4e5337030 +Subproject commit 9f8cc09bf732d4f59de432825ef2216781eefba9 diff --git a/examples b/examples index eac35bd..d3b9161 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit eac35bda3173c1581e9e51b3dcf415740e9db0e9 +Subproject commit d3b9161657b34acc5fb06a6a4ad202f448646162 diff --git a/java_awt b/java_awt index 461f61d..9215504 160000 --- a/java_awt +++ b/java_awt @@ -1 +1 @@ -Subproject commit 461f61d4473ed8cce975307fe770daaa67855f20 +Subproject commit 92155048dc15aa151dbd7a6a1a904a4d839c5c6e diff --git a/java_lang b/java_lang index c9b8b55..c5f459e 160000 --- a/java_lang +++ b/java_lang @@ -1 +1 @@ -Subproject commit c9b8b55fd8f40bc25ec2c49fa03a7d3a51b78766 +Subproject commit c5f459ed675d7d4e8d83b12d9567d772613d3553 diff --git a/java_sql b/java_sql index ffe975c..5730163 160000 --- a/java_sql +++ b/java_sql @@ -1 +1 @@ -Subproject commit ffe975cb112f9c89da63b01b9c54c640bf969d24 +Subproject commit 57301634eed0d3b4955f655a60db01fd1bd9bb8f diff --git a/java_swift b/java_swift index 1d31a0c..22f8b3a 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 1d31a0c46d90e3588a192509390aca022d03080b +Subproject commit 22f8b3a571aff9730dafb30bb626e4002441f550 diff --git a/java_util b/java_util index 61005cb..37ec964 160000 --- a/java_util +++ b/java_util @@ -1 +1 @@ -Subproject commit 61005cba6a74e0d080ac1949b2eadab46dc4602b +Subproject commit 37ec96487a008a6a63c5c4a0b1149f4623c51ae9 diff --git a/javax_swing b/javax_swing index 09496dd..46809e5 160000 --- a/javax_swing +++ b/javax_swing @@ -1 +1 @@ -Subproject commit 09496dd0c7077e4425aff254ebade9506fdd28de +Subproject commit 46809e56f891238c9791ac8d7ae74e3f0458b1a9 diff --git a/src/genswift.java b/src/genswift.java index 365b419..4173b69 100644 --- a/src/genswift.java +++ b/src/genswift.java @@ -1,7 +1,7 @@ // // genswift.java // https://github.com/SwiftJava/SwiftJava -// $Id: //depot/SwiftJava/src/genswift.java#94 $ +// $Id: //depot/SwiftJava/src/genswift.java#95 $ // // Created by John Holdsworth on 14/07/2016. // Copyright (c) 2016 John Holdsworth. All rights reserved. @@ -125,6 +125,7 @@ boolean isUnavailable( Class type ) { put( Class.class.getName(), true ); put( Object.class.getName(), true ); put( Enum.class.getName(), true ); + put( Thread.class.getName(), true ); put( String.class.getName(), true ); put( Comparable.class.getName(), true ); put( Error.class.getName(), true ); @@ -144,6 +145,7 @@ boolean isUnavailable( Class type ) { put( Object.class.getName(), true ); put( Class.class.getName(), true ); put( Enum.class.getName(), true ); + put( Thread.class.getName(), true ); put( Runnable.class.getName(), true ); put( Throwable.class.getName(), true ); put( Exception.class.getName(), true ); @@ -481,7 +483,7 @@ boolean generate() throws Exception { cases += (cases == "" ? "" : ", ") + ((Enum)constant).name(); code.append(" case "+cases+"\n\n"); - code.append(" static let enumConstants = try! JavaClass.forName(\""+clazz.getName()+"\")\n" + + code.append(" static let enumConstants = JavaClass(loading: \""+clazz.getName()+"\")\n" + " .getEnumConstants()!.map { "+classSuffix+"Forward( javaObject: $0.javaObject ) }\n\n"); code.append(" public func underlier() -> "+classSuffix+"Forward"+" {\n"); @@ -1051,9 +1053,9 @@ public int compare(java.lang.reflect.Method o1, java.lang.reflect.Method o2) { String proxyClass = "org/swiftjava/" + currentFramework + "/" + classSuffix + "Proxy"; code.append(" let clazz = JNI.FindClass( proxyClassName() )\n"); - code.append(" withUnsafePointer(to: &natives[0]) {\n"); + code.append(" natives.withUnsafeBufferPointer {\n"); code.append(" nativesPtr in\n"); - code.append(" if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr, jint(natives.count) ) != jint(JNI_OK) {\n"); + code.append(" if JNI.api.RegisterNatives( JNI.env, clazz, nativesPtr.baseAddress, jint(nativesPtr.count) ) != jint(JNI_OK) {\n"); code.append(" JNI.report( \"Unable to register java natives\" )\n"); code.append(" }\n"); code.append(" }\n\n"); diff --git a/swift-android-kotlin b/swift-android-kotlin index 63a7879..59db015 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 63a7879f0404b8eec9533d85f0d3cc7f795e9df4 +Subproject commit 59db01562aeb9126d7826b1a52afe9472e624508 diff --git a/swift-android-samples b/swift-android-samples index ca9eb67..e874cc6 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit ca9eb677dae81ae116807aa758c0ae87df90994a +Subproject commit e874cc6a58716863f73016e9b6563d0347df65cf From 3b24d9ad24105d4c2580283711c5aa9a5ae207ca Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Mon, 23 Apr 2018 12:08:37 +0100 Subject: [PATCH 42/53] android-toolchain-4.1 --- java_swift | 2 +- swift-android-gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java_swift b/java_swift index 22f8b3a..1588d55 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 22f8b3a571aff9730dafb30bb626e4002441f550 +Subproject commit 1588d55928b414ce017f8b6b04cc34ac62a77126 diff --git a/swift-android-gradle b/swift-android-gradle index 6a1a924..a4ab401 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit 6a1a924b9a0e59d77ba43694018e8925a09c76c3 +Subproject commit a4ab401d6c5c518f37f3579667814a1b8e83299b From bc5f1af918733c9b51aba559638a884e056cb6dd Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Mon, 23 Apr 2018 12:42:49 +0100 Subject: [PATCH 43/53] Xcode 9.3 --- CJavaVM | 2 +- SwiftJava.xcodeproj/project.pbxproj | 6 +++++- com_apple | 2 +- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- 9 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CJavaVM b/CJavaVM index 6240b2a..707e523 160000 --- a/CJavaVM +++ b/CJavaVM @@ -1 +1 @@ -Subproject commit 6240b2a563f02d98a162d4dce856b6c9a7196c90 +Subproject commit 707e5232a1116ac0bff54d7045a6ab279dcf07d3 diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index dbc7d53..f96087d 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -605,7 +605,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0800; - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = "John Holdsworth"; TargetAttributes = { BB5ACFDA1D35B09900E2386A = { @@ -908,6 +908,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -915,6 +916,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -963,6 +965,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -970,6 +973,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; diff --git a/com_apple b/com_apple index 9f8cc09..2577fe5 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 9f8cc09bf732d4f59de432825ef2216781eefba9 +Subproject commit 2577fe59908d5384c4e43f11d5ac0fe9639de0e9 diff --git a/java_awt b/java_awt index 9215504..a6be184 160000 --- a/java_awt +++ b/java_awt @@ -1 +1 @@ -Subproject commit 92155048dc15aa151dbd7a6a1a904a4d839c5c6e +Subproject commit a6be1846cc071eedf4e4fb63eb463837019145dd diff --git a/java_lang b/java_lang index c5f459e..3e3404b 160000 --- a/java_lang +++ b/java_lang @@ -1 +1 @@ -Subproject commit c5f459ed675d7d4e8d83b12d9567d772613d3553 +Subproject commit 3e3404bcdc29d6bc03ceed17d95e05f0254f7679 diff --git a/java_sql b/java_sql index 5730163..ac34e69 160000 --- a/java_sql +++ b/java_sql @@ -1 +1 @@ -Subproject commit 57301634eed0d3b4955f655a60db01fd1bd9bb8f +Subproject commit ac34e6996f37c0d7f6578d675de5f74d475f771d diff --git a/java_swift b/java_swift index 1588d55..b898d1e 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 1588d55928b414ce017f8b6b04cc34ac62a77126 +Subproject commit b898d1e2a3440e4d8549ef2840f9f0e97c6289de diff --git a/java_util b/java_util index 37ec964..496b963 160000 --- a/java_util +++ b/java_util @@ -1 +1 @@ -Subproject commit 37ec96487a008a6a63c5c4a0b1149f4623c51ae9 +Subproject commit 496b963217a7bf3b3c028db11ede5cfcbb3540e6 diff --git a/javax_swing b/javax_swing index 46809e5..332fb25 160000 --- a/javax_swing +++ b/javax_swing @@ -1 +1 @@ -Subproject commit 46809e56f891238c9791ac8d7ae74e3f0458b1a9 +Subproject commit 332fb25badd4d38dbc1d667996522b4bfb93dc7d From b8a8b745b6bb9fe57c8c28da8d67edbd3e4bc9ba Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 24 Apr 2018 13:57:59 +0100 Subject: [PATCH 44/53] swift-4.1-branch toolchain --- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/swift-android-kotlin b/swift-android-kotlin index 59db015..bf12330 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 59db01562aeb9126d7826b1a52afe9472e624508 +Subproject commit bf1233084d4524983cef9ad7e7ab885ca10bdc01 diff --git a/swift-android-samples b/swift-android-samples index e874cc6..ea59787 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit e874cc6a58716863f73016e9b6563d0347df65cf +Subproject commit ea597879ebe6fa6229ff5772368278430d614bff From d63158a8f2684541cf3516792dad9df2f752a78a Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 24 Apr 2018 16:29:05 +0100 Subject: [PATCH 45/53] swift-4.1-branch toolchain --- swift-android-gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-android-gradle b/swift-android-gradle index a4ab401..b649034 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit a4ab401d6c5c518f37f3579667814a1b8e83299b +Subproject commit b6490347d4cf54e9221561f4794f48355aac2c36 From 02a99ae3f82a38c021f5bd8547e268f6a90b250c Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 24 May 2018 16:24:28 +0100 Subject: [PATCH 46/53] example C extension --- .gitmodules | 3 +++ SwiftJava.xcodeproj/project.pbxproj | 4 ++++ swift-android-Clibadder | 1 + swift-android-samples | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) create mode 160000 swift-android-Clibadder diff --git a/.gitmodules b/.gitmodules index 3a19311..a3fe513 100644 --- a/.gitmodules +++ b/.gitmodules @@ -43,3 +43,6 @@ [submodule "Injection4Android"] path = Injection4Android url = https://github.com/SwiftJava/Injection4Android.git +[submodule "swift-android-Clibadder"] + path = swift-android-Clibadder + url = https://github.com/SwiftJava/swift-android-Clibadder diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index f96087d..3b75a3e 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -36,6 +36,7 @@ BBC13DB91D48FDCE0035A039 /* org_swiftjava.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DB81D48FDCE0035A039 /* org_swiftjava.swift */; }; BBC13DC21D4900AA0035A039 /* SwiftTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC13DC11D4900AA0035A039 /* SwiftTest.swift */; }; BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = BBCCEF991F3C83440084F9E3 /* LICENSE */; }; + BBE0F86F20B733FE00332AC6 /* swift-android-Clibadder in Resources */ = {isa = PBXBuildFile; fileRef = BBE0F86E20B733FC00332AC6 /* swift-android-Clibadder */; }; BBF280D91D64BC6100A7AF5D /* src in Resources */ = {isa = PBXBuildFile; fileRef = BBF280D81D64BC6100A7AF5D /* src */; }; CE3185101F368D6B002046A6 /* SwiftHelloTypes_TextListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */; }; CE4A250B1F34B3E0003AF384 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBCD66ED1D36A03F00DF5E47 /* JavaVM.framework */; }; @@ -271,6 +272,7 @@ BBCD6EBC1D383E3700DF5E47 /* genswift.java */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.java; name = genswift.java; path = src/genswift.java; sourceTree = ""; }; BBCD75371D38DC4200DF5E47 /* overrides.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = overrides.pl; sourceTree = ""; }; BBCD9F871D3CD05900DF5E47 /* genswift.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genswift.sh; sourceTree = ""; }; + BBE0F86E20B733FC00332AC6 /* swift-android-Clibadder */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-Clibadder"; sourceTree = ""; }; BBF280D81D64BC6100A7AF5D /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = src; sourceTree = ""; }; CE31850E1F368D44002046A6 /* SwiftHelloTypes_TextListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftHelloTypes_TextListener.swift; path = com_johnholdsworth/Sources/SwiftHelloTypes_TextListener.swift; sourceTree = SOURCE_ROOT; }; CE4A250F1F3555CA003AF384 /* com_johnholdsworth */ = {isa = PBXFileReference; lastKnownFileType = folder; path = com_johnholdsworth; sourceTree = ""; }; @@ -345,6 +347,7 @@ BB9CF8971D61BAF4004781B9 /* swift-android-samples */, BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */, + BBE0F86E20B733FC00332AC6 /* swift-android-Clibadder */, BB0AB6B31F7559C700B60EC0 /* Injection4Android */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, @@ -752,6 +755,7 @@ CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */, BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, + BBE0F86F20B733FE00332AC6 /* swift-android-Clibadder in Resources */, BBAD3EE41D5A84700091D139 /* genall.sh in Resources */, BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */, BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */, diff --git a/swift-android-Clibadder b/swift-android-Clibadder new file mode 160000 index 0000000..e263f46 --- /dev/null +++ b/swift-android-Clibadder @@ -0,0 +1 @@ +Subproject commit e263f46164e6e26c103771430f1162af873f3047 diff --git a/swift-android-samples b/swift-android-samples index ea59787..182e8fb 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit ea597879ebe6fa6229ff5772368278430d614bff +Subproject commit 182e8fb2b1ce1c9d2916eec9c0c7fc705cd3c416 From 94766e0766a33e54ca6ff8e20f5c26c7d5fb2198 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Wed, 30 May 2018 02:14:09 +0100 Subject: [PATCH 47/53] OpenGL SPM module --- .gitmodules | 6 ++++++ SwiftJava.xcodeproj/project.pbxproj | 8 ++++++++ android_toolchain | 2 +- swift-android-kotlin | 2 +- swift-android-opengl | 1 + swift-android-sqlite | 1 + swift-android-zlib | 1 + 7 files changed, 19 insertions(+), 2 deletions(-) create mode 160000 swift-android-opengl create mode 160000 swift-android-sqlite create mode 160000 swift-android-zlib diff --git a/.gitmodules b/.gitmodules index a3fe513..9931b68 100644 --- a/.gitmodules +++ b/.gitmodules @@ -46,3 +46,9 @@ [submodule "swift-android-Clibadder"] path = swift-android-Clibadder url = https://github.com/SwiftJava/swift-android-Clibadder +[submodule "swift-android-zlib"] + path = swift-android-zlib + url = https://github.com/SwiftJava/swift-android-zlib +[submodule "swift-android-opengl"] + path = swift-android-opengl + url = https://github.com/SwiftJava/swift-android-opengl diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 3b75a3e..2867f80 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; + BBA81B3B20BE319300C7ADB4 /* swift-android-opengl in Resources */ = {isa = PBXBuildFile; fileRef = BBA81B3920BE319300C7ADB4 /* swift-android-opengl */; }; + BBA81B3D20BE319E00C7ADB4 /* swift-android-zlib in Resources */ = {isa = PBXBuildFile; fileRef = BBA81B3C20BE319D00C7ADB4 /* swift-android-zlib */; }; BBAD3EDA1D59DDBC0091D139 /* TableColorSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */; }; BBAD3EE41D5A84700091D139 /* genall.sh in Resources */ = {isa = PBXBuildFile; fileRef = BBAD3EE31D5A84700091D139 /* genall.sh */; }; BBBF387E1D49A344004142AE /* javax_swing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBF322F1D49A247004142AE /* javax_swing.framework */; }; @@ -237,6 +239,8 @@ BB8AC46E1D3F217D00BD5B0F /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = ../../../../Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/server/libjvm.dylib; sourceTree = ""; }; BB9CF8921D619D1C004781B9 /* genhello.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genhello.sh; sourceTree = ""; }; BB9CF8971D61BAF4004781B9 /* swift-android-samples */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-samples"; sourceTree = ""; }; + BBA81B3920BE319300C7ADB4 /* swift-android-opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-opengl"; sourceTree = ""; }; + BBA81B3C20BE319D00C7ADB4 /* swift-android-zlib */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-zlib"; sourceTree = ""; }; BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TableColorSelection.swift; path = Sources/TableColorSelection.swift; sourceTree = ""; }; BBAD3EE31D5A84700091D139 /* genall.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genall.sh; sourceTree = ""; }; BBBF2E891D49A0C3004142AE /* java_sql.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_sql.xcodeproj; path = java_sql/java_sql.xcodeproj; sourceTree = ""; }; @@ -348,6 +352,8 @@ BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */, BBE0F86E20B733FC00332AC6 /* swift-android-Clibadder */, + BBA81B3920BE319300C7ADB4 /* swift-android-opengl */, + BBA81B3C20BE319D00C7ADB4 /* swift-android-zlib */, BB0AB6B31F7559C700B60EC0 /* Injection4Android */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, @@ -761,7 +767,9 @@ BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */, BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */, BBF280D91D64BC6100A7AF5D /* src in Resources */, + BBA81B3B20BE319300C7ADB4 /* swift-android-opengl in Resources */, BB643B321F4873F7003E849E /* swift-android-gradle in Resources */, + BBA81B3D20BE319E00C7ADB4 /* swift-android-zlib in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */, CE81023A1F3693510069563B /* MainActivity.kt in Resources */, diff --git a/android_toolchain b/android_toolchain index f9e6cad..76847bc 160000 --- a/android_toolchain +++ b/android_toolchain @@ -1 +1 @@ -Subproject commit f9e6cadd8e0a112761b193339ccdec1f8833e7b9 +Subproject commit 76847bcd23f309109d408935fdc47d4815a478dc diff --git a/swift-android-kotlin b/swift-android-kotlin index bf12330..8ff293e 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit bf1233084d4524983cef9ad7e7ab885ca10bdc01 +Subproject commit 8ff293ec450abbb4098c3e5ed16c888dd5db24aa diff --git a/swift-android-opengl b/swift-android-opengl new file mode 160000 index 0000000..7ba7b06 --- /dev/null +++ b/swift-android-opengl @@ -0,0 +1 @@ +Subproject commit 7ba7b06ba9ba5a6bd48324ffc151de0af9665f11 diff --git a/swift-android-sqlite b/swift-android-sqlite new file mode 160000 index 0000000..86cccdb --- /dev/null +++ b/swift-android-sqlite @@ -0,0 +1 @@ +Subproject commit 86cccdbf96aeef319d0742adcb8c70a536c88976 diff --git a/swift-android-zlib b/swift-android-zlib new file mode 160000 index 0000000..f2b83e7 --- /dev/null +++ b/swift-android-zlib @@ -0,0 +1 @@ +Subproject commit f2b83e7c40bb8b0bb742dedc5a331ed306d67ad1 From 1deed8f28c486afd95eeff2a3519fa9ecbcf1595 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Wed, 30 May 2018 17:58:04 +0100 Subject: [PATCH 48/53] Revert "OpenGL SPM module" This reverts commit 94766e0766a33e54ca6ff8e20f5c26c7d5fb2198. --- .gitmodules | 6 ------ SwiftJava.xcodeproj/project.pbxproj | 8 -------- android_toolchain | 2 +- swift-android-kotlin | 2 +- swift-android-opengl | 1 - swift-android-sqlite | 1 - swift-android-zlib | 1 - 7 files changed, 2 insertions(+), 19 deletions(-) delete mode 160000 swift-android-opengl delete mode 160000 swift-android-sqlite delete mode 160000 swift-android-zlib diff --git a/.gitmodules b/.gitmodules index 9931b68..a3fe513 100644 --- a/.gitmodules +++ b/.gitmodules @@ -46,9 +46,3 @@ [submodule "swift-android-Clibadder"] path = swift-android-Clibadder url = https://github.com/SwiftJava/swift-android-Clibadder -[submodule "swift-android-zlib"] - path = swift-android-zlib - url = https://github.com/SwiftJava/swift-android-zlib -[submodule "swift-android-opengl"] - path = swift-android-opengl - url = https://github.com/SwiftJava/swift-android-opengl diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 2867f80..3b75a3e 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -18,8 +18,6 @@ BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; - BBA81B3B20BE319300C7ADB4 /* swift-android-opengl in Resources */ = {isa = PBXBuildFile; fileRef = BBA81B3920BE319300C7ADB4 /* swift-android-opengl */; }; - BBA81B3D20BE319E00C7ADB4 /* swift-android-zlib in Resources */ = {isa = PBXBuildFile; fileRef = BBA81B3C20BE319D00C7ADB4 /* swift-android-zlib */; }; BBAD3EDA1D59DDBC0091D139 /* TableColorSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */; }; BBAD3EE41D5A84700091D139 /* genall.sh in Resources */ = {isa = PBXBuildFile; fileRef = BBAD3EE31D5A84700091D139 /* genall.sh */; }; BBBF387E1D49A344004142AE /* javax_swing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBF322F1D49A247004142AE /* javax_swing.framework */; }; @@ -239,8 +237,6 @@ BB8AC46E1D3F217D00BD5B0F /* libjvm.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libjvm.dylib; path = ../../../../Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/server/libjvm.dylib; sourceTree = ""; }; BB9CF8921D619D1C004781B9 /* genhello.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genhello.sh; sourceTree = ""; }; BB9CF8971D61BAF4004781B9 /* swift-android-samples */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-samples"; sourceTree = ""; }; - BBA81B3920BE319300C7ADB4 /* swift-android-opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-opengl"; sourceTree = ""; }; - BBA81B3C20BE319D00C7ADB4 /* swift-android-zlib */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-zlib"; sourceTree = ""; }; BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TableColorSelection.swift; path = Sources/TableColorSelection.swift; sourceTree = ""; }; BBAD3EE31D5A84700091D139 /* genall.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genall.sh; sourceTree = ""; }; BBBF2E891D49A0C3004142AE /* java_sql.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = java_sql.xcodeproj; path = java_sql/java_sql.xcodeproj; sourceTree = ""; }; @@ -352,8 +348,6 @@ BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */, BBE0F86E20B733FC00332AC6 /* swift-android-Clibadder */, - BBA81B3920BE319300C7ADB4 /* swift-android-opengl */, - BBA81B3C20BE319D00C7ADB4 /* swift-android-zlib */, BB0AB6B31F7559C700B60EC0 /* Injection4Android */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, @@ -767,9 +761,7 @@ BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */, BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */, BBF280D91D64BC6100A7AF5D /* src in Resources */, - BBA81B3B20BE319300C7ADB4 /* swift-android-opengl in Resources */, BB643B321F4873F7003E849E /* swift-android-gradle in Resources */, - BBA81B3D20BE319E00C7ADB4 /* swift-android-zlib in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, BB5ACFE41D35B09900E2386A /* MainMenu.xib in Resources */, CE81023A1F3693510069563B /* MainActivity.kt in Resources */, diff --git a/android_toolchain b/android_toolchain index 76847bc..f9e6cad 160000 --- a/android_toolchain +++ b/android_toolchain @@ -1 +1 @@ -Subproject commit 76847bcd23f309109d408935fdc47d4815a478dc +Subproject commit f9e6cadd8e0a112761b193339ccdec1f8833e7b9 diff --git a/swift-android-kotlin b/swift-android-kotlin index 8ff293e..bf12330 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 8ff293ec450abbb4098c3e5ed16c888dd5db24aa +Subproject commit bf1233084d4524983cef9ad7e7ab885ca10bdc01 diff --git a/swift-android-opengl b/swift-android-opengl deleted file mode 160000 index 7ba7b06..0000000 --- a/swift-android-opengl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7ba7b06ba9ba5a6bd48324ffc151de0af9665f11 diff --git a/swift-android-sqlite b/swift-android-sqlite deleted file mode 160000 index 86cccdb..0000000 --- a/swift-android-sqlite +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 86cccdbf96aeef319d0742adcb8c70a536c88976 diff --git a/swift-android-zlib b/swift-android-zlib deleted file mode 160000 index f2b83e7..0000000 --- a/swift-android-zlib +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f2b83e7c40bb8b0bb742dedc5a331ed306d67ad1 From 62a2a58e706574b5dac64f142a183701c9f2472e Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Wed, 30 May 2018 18:01:46 +0100 Subject: [PATCH 49/53] Fix submodules --- .gitmodules | 6 ++++++ SwiftJava.xcodeproj/project.pbxproj | 8 ++++++++ android_toolchain | 2 +- swift-android-gradle | 2 +- swift-android-kotlin | 2 +- swift-android-opengl | 1 + swift-android-samples | 2 +- swift-android-zlib | 1 + 8 files changed, 20 insertions(+), 4 deletions(-) create mode 160000 swift-android-opengl create mode 160000 swift-android-zlib diff --git a/.gitmodules b/.gitmodules index a3fe513..3c18f58 100644 --- a/.gitmodules +++ b/.gitmodules @@ -46,3 +46,9 @@ [submodule "swift-android-Clibadder"] path = swift-android-Clibadder url = https://github.com/SwiftJava/swift-android-Clibadder +[submodule "swift-android-opengl"] + path = swift-android-opengl + url = https://github.com/SwiftJava/swift-android-opengl +[submodule "swift-android-zlib"] + path = swift-android-zlib + url = https://github.com/SwiftJava/swift-android-zlib diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 3b75a3e..4df486c 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -8,6 +8,8 @@ /* Begin PBXBuildFile section */ BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB31E20E1D4FF13400779860 /* genpkg.sh */; }; + BB408A1420BF101A00B57CFB /* swift-android-zlib in Resources */ = {isa = PBXBuildFile; fileRef = BB408A1220BF101900B57CFB /* swift-android-zlib */; }; + BB408A1620BF102A00B57CFB /* swift-android-opengl in Resources */ = {isa = PBXBuildFile; fileRef = BB408A1520BF102900B57CFB /* swift-android-opengl */; }; BB4AF49E1D4C1F80001DCA63 /* java_sql.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBBF2E8E1D49A0C3004142AE /* java_sql.framework */; }; BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5ACFDE1D35B09900E2386A /* AppDelegate.swift */; }; BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BB5ACFE01D35B09900E2386A /* Assets.xcassets */; }; @@ -223,6 +225,8 @@ BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-injection"; sourceTree = ""; }; BB19B4411D673986002F5586 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; BB31E20E1D4FF13400779860 /* genpkg.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = genpkg.sh; sourceTree = ""; }; + BB408A1220BF101900B57CFB /* swift-android-zlib */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-zlib"; sourceTree = ""; }; + BB408A1520BF102900B57CFB /* swift-android-opengl */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "swift-android-opengl"; sourceTree = ""; }; BB5ACFDB1D35B09900E2386A /* JDBC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JDBC.app; sourceTree = BUILT_PRODUCTS_DIR; }; BB5ACFDE1D35B09900E2386A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; BB5ACFE01D35B09900E2386A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -348,6 +352,8 @@ BB6651301F2E39F6004EFD5F /* swift-android-kotlin */, BB0AB6B71F755A5A00B60EC0 /* swift-android-injection */, BBE0F86E20B733FC00332AC6 /* swift-android-Clibadder */, + BB408A1520BF102900B57CFB /* swift-android-opengl */, + BB408A1220BF101900B57CFB /* swift-android-zlib */, BB0AB6B31F7559C700B60EC0 /* Injection4Android */, BB5ACFDC1D35B09900E2386A /* Products */, BBCD66EC1D36A03F00DF5E47 /* Frameworks */, @@ -753,6 +759,7 @@ buildActionMask = 2147483647; files = ( CE4A25101F3555CA003AF384 /* com_johnholdsworth in Resources */, + BB408A1620BF102A00B57CFB /* swift-android-opengl in Resources */, BBCCEF9A1F3C83440084F9E3 /* LICENSE in Resources */, BB5ACFE11D35B09900E2386A /* Assets.xcassets in Resources */, BBE0F86F20B733FE00332AC6 /* swift-android-Clibadder in Resources */, @@ -760,6 +767,7 @@ BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */, BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */, BB31E20F1D4FF13400779860 /* genpkg.sh in Resources */, + BB408A1420BF101A00B57CFB /* swift-android-zlib in Resources */, BBF280D91D64BC6100A7AF5D /* src in Resources */, BB643B321F4873F7003E849E /* swift-android-gradle in Resources */, BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */, diff --git a/android_toolchain b/android_toolchain index f9e6cad..76847bc 160000 --- a/android_toolchain +++ b/android_toolchain @@ -1 +1 @@ -Subproject commit f9e6cadd8e0a112761b193339ccdec1f8833e7b9 +Subproject commit 76847bcd23f309109d408935fdc47d4815a478dc diff --git a/swift-android-gradle b/swift-android-gradle index b649034..ee17299 160000 --- a/swift-android-gradle +++ b/swift-android-gradle @@ -1 +1 @@ -Subproject commit b6490347d4cf54e9221561f4794f48355aac2c36 +Subproject commit ee17299c6ca9af66048131e002b6607bfe8e78cd diff --git a/swift-android-kotlin b/swift-android-kotlin index bf12330..aad0486 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit bf1233084d4524983cef9ad7e7ab885ca10bdc01 +Subproject commit aad0486b31ad9cf3a63af8ff7f0c31d187c189e7 diff --git a/swift-android-opengl b/swift-android-opengl new file mode 160000 index 0000000..a9ed0c8 --- /dev/null +++ b/swift-android-opengl @@ -0,0 +1 @@ +Subproject commit a9ed0c8331f93d78792a29f686344092323acee4 diff --git a/swift-android-samples b/swift-android-samples index 182e8fb..e2b75de 160000 --- a/swift-android-samples +++ b/swift-android-samples @@ -1 +1 @@ -Subproject commit 182e8fb2b1ce1c9d2916eec9c0c7fc705cd3c416 +Subproject commit e2b75de1581cac8f16ca722f7ac0a2b730334098 diff --git a/swift-android-zlib b/swift-android-zlib new file mode 160000 index 0000000..f2b83e7 --- /dev/null +++ b/swift-android-zlib @@ -0,0 +1 @@ +Subproject commit f2b83e7c40bb8b0bb742dedc5a331ed306d67ad1 From 3b2bc5c181d37fed3d3f73a7574583b8dd574572 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Wed, 3 Oct 2018 23:26:08 +0100 Subject: [PATCH 50/53] Fix zero length array issue. https://github.com/SwiftJava/java_swift/pull/4 --- java_swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java_swift b/java_swift index b898d1e..f6745e8 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit b898d1e2a3440e4d8549ef2840f9f0e97c6289de +Subproject commit f6745e8690d10ca01e983ceeb1339b0899fa8a99 From 57d5e6ab505662573b2c003273b8657f592cb7bd Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 20 Dec 2018 21:03:19 +0000 Subject: [PATCH 51/53] Swift 4.2/5 --- CJavaVM | 2 +- JDBC/AppDelegate.swift | 2 +- SwiftJava.xcodeproj/project.pbxproj | 14 +++-- com_apple | 2 +- .../Sources/SwiftHelloTypes_Planet.swift | 18 +++--- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- org_swiftjava/Sources/SwiftTest.swift | 60 +++++++++---------- swift-android-kotlin | 2 +- swift-android-samples | 2 +- 14 files changed, 58 insertions(+), 56 deletions(-) diff --git a/CJavaVM b/CJavaVM index 707e523..18c3044 160000 --- a/CJavaVM +++ b/CJavaVM @@ -1 +1 @@ -Subproject commit 707e5232a1116ac0bff54d7045a6ab279dcf07d3 +Subproject commit 18c304400b1043b79529d7987ece858ed46aa232 diff --git a/JDBC/AppDelegate.swift b/JDBC/AppDelegate.swift index 70b0f05..17d44f3 100644 --- a/JDBC/AppDelegate.swift +++ b/JDBC/AppDelegate.swift @@ -114,7 +114,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSTableViewDataSource, NSTab for i in 0.. Date: Thu, 20 Dec 2018 22:02:13 +0000 Subject: [PATCH 52/53] Swift4.2/5 --- swift-android-kotlin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-android-kotlin b/swift-android-kotlin index 0102d0d..5514cf5 160000 --- a/swift-android-kotlin +++ b/swift-android-kotlin @@ -1 +1 @@ -Subproject commit 0102d0dc7c6156c5d2ad69119c2c80466f8e2145 +Subproject commit 5514cf5c8da9609793470b384d991ffeb7a11281 From f274dd250db437323209a6a0a7398aa6df7f0b16 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Thu, 23 Jan 2020 08:02:47 +0100 Subject: [PATCH 53/53] Swift 5 SPM --- CJavaVM | 2 +- SwiftJava.xcodeproj/project.pbxproj | 3 +-- com_apple | 2 +- examples | 2 +- java_awt | 2 +- java_lang | 2 +- java_sql | 2 +- java_swift | 2 +- java_util | 2 +- javax_swing | 2 +- 10 files changed, 10 insertions(+), 11 deletions(-) diff --git a/CJavaVM b/CJavaVM index 18c3044..654df50 160000 --- a/CJavaVM +++ b/CJavaVM @@ -1 +1 @@ -Subproject commit 18c304400b1043b79529d7987ece858ed46aa232 +Subproject commit 654df50b44ba88e7382f6f5cc8eb2aa5179f544d diff --git a/SwiftJava.xcodeproj/project.pbxproj b/SwiftJava.xcodeproj/project.pbxproj index 6eed6f7..d9e47e6 100644 --- a/SwiftJava.xcodeproj/project.pbxproj +++ b/SwiftJava.xcodeproj/project.pbxproj @@ -18,7 +18,6 @@ BB643B321F4873F7003E849E /* swift-android-gradle in Resources */ = {isa = PBXBuildFile; fileRef = BB643B311F4873F7003E849E /* swift-android-gradle */; }; BB6651321F2E39F7004EFD5F /* swift-android-kotlin in Resources */ = {isa = PBXBuildFile; fileRef = BB6651301F2E39F6004EFD5F /* swift-android-kotlin */; }; BB6651361F2E3F51004EFD5F /* android_toolchain in Resources */ = {isa = PBXBuildFile; fileRef = BB6651351F2E3F50004EFD5F /* android_toolchain */; }; - BB88CEC821CC388700B79BD9 /* swifthello.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB88CEC721CC388400B79BD9 /* swifthello.swift */; }; BB9CF8931D619D1C004781B9 /* genhello.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8921D619D1C004781B9 /* genhello.sh */; }; BB9CF8981D61BAF4004781B9 /* swift-android-samples in Resources */ = {isa = PBXBuildFile; fileRef = BB9CF8971D61BAF4004781B9 /* swift-android-samples */; }; BBAD3EDA1D59DDBC0091D139 /* TableColorSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAD3ED91D59DDBC0091D139 /* TableColorSelection.swift */; }; @@ -646,6 +645,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -792,7 +792,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BB88CEC821CC388700B79BD9 /* swifthello.swift in Sources */, BB5ACFDF1D35B09900E2386A /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/com_apple b/com_apple index 4177c26..5714c6a 160000 --- a/com_apple +++ b/com_apple @@ -1 +1 @@ -Subproject commit 4177c26dcf086f9eb23252fe4f102487d300299c +Subproject commit 5714c6ac1b99f449f9be416ac4abf5aec15de62e diff --git a/examples b/examples index d3b9161..fd5f6cd 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit d3b9161657b34acc5fb06a6a4ad202f448646162 +Subproject commit fd5f6cd92cbc692481c739da674a507e2cb459d0 diff --git a/java_awt b/java_awt index c4b371c..f9b52c9 160000 --- a/java_awt +++ b/java_awt @@ -1 +1 @@ -Subproject commit c4b371ccaa474f5ba284212ca86c7bf32474b907 +Subproject commit f9b52c9422fa0a438492480bbb8c0adf8bef31a8 diff --git a/java_lang b/java_lang index 2617a20..6db935c 160000 --- a/java_lang +++ b/java_lang @@ -1 +1 @@ -Subproject commit 2617a2065e53fe0a1cf1151d3ccf40a435a3eeb8 +Subproject commit 6db935cf4059165652ed7e8830958db76edd0ec2 diff --git a/java_sql b/java_sql index 87d8289..0222816 160000 --- a/java_sql +++ b/java_sql @@ -1 +1 @@ -Subproject commit 87d82890f73a09bd5cc9e37fa0b7e51476c037c6 +Subproject commit 022281686495e5236ada276d66f3847a38852782 diff --git a/java_swift b/java_swift index 6172ff6..0d62467 160000 --- a/java_swift +++ b/java_swift @@ -1 +1 @@ -Subproject commit 6172ff68d6fc575f3f4b9adc2bc8e1362f1b1dd9 +Subproject commit 0d62467b08ee6f123f1a505ce152ba9ed67be977 diff --git a/java_util b/java_util index faf8e50..812eb50 160000 --- a/java_util +++ b/java_util @@ -1 +1 @@ -Subproject commit faf8e50be4ee3059d4f6da6ba7f0ec7ba2bea7e9 +Subproject commit 812eb50d52eda0ff78b755b547472c49678491f6 diff --git a/javax_swing b/javax_swing index 88a7763..ab7f4e0 160000 --- a/javax_swing +++ b/javax_swing @@ -1 +1 @@ -Subproject commit 88a77637287fb385e741b2c3dc7d024df07ea594 +Subproject commit ab7f4e099dd6449818ecfa225ff2f9317d114323

MFQae{9U2ANQ1UnQRLj+L1*k!Ye zM`<-lHwx|7FZA!TD!LaP*Xs&NN9G2d`a)|9Z1jUY@t^J2R=UrN1tvJ#fzw}ib+;MQ z5Ib%i?loXvJDP15PQ89>YFFC549+*vAbuCv;|VvP2b{y*+9(OhN|??`Dib^*_aJjV zlo>+YPZHK!Jeal>5aOn zt7ragqt4)F1-yUtSaF0Oa-RYv^q-zFOmDb+;tZ%hPxk2Uq_4+=?jBAVTa!^gVfGjvo|ZQY93E=53nuYu!egT`K~FtWvrf z*f~3`dbiq)G!ZV>Y*u+xUF=)<7;Al&d#|srlfRl3rmfgqQi3|piM>j6*G(2(S9mP@ z!4|VR79UT0=}lInjgSz4K~soLUhWYN2F~{~T^UHS47Mlue>>N^)*&I?;Nfl8w>r2Y zRSS7d1}(?GOkv(|g;X8{@L0VCj&n-%>R%v`r>lm1p6xd{8&NxEkvuK9)TkgM&wb&y z;om>g&&a6PENhlE*j)HZ{MH@_n_mw#bx9p6^9y@s=>A;KyXt$nm$W&Rvi$k?8ulw) zhWa+i>`%23>VBqxhcU|oshXP+3EebHa`MfzGyZGgk0IqK#SLhZVjqp8=t6ym!J1(OTqoBfg)Gc3p9JWiv8`ZLIT zpskioXB{z`UM5+w27cWZUzU2P#3C}K&N=_L6qAmAe&=RHsp*%vkpIJNLZ%ga0y|xF z&d^vu{smcqi3j5bqlH0w^r|e{;?h_Ox9bj%2Nj62i!i8#$Sh690Zp6?CS4NKo8n7! z#Nf|J#RQ{jY+Utt(PIkb>zZUo_>Ny(6f#!?nJeh66>ybC zVJxF@DuSuSRngiQxXJ)wMHGPpQbux+H2mH_!)P;#)2M>DiAlBCMUdnp!un$HNH@DD zCEXBjcC5^L`D>jdy#>+MpiO2SnU5m;ewFhgS_Hxl-qvF$K%i_}Qp=G-V>jXD6{733 zyW>0t8c-obm6{MS{y_ZGff%5Mi?d6Oo3ROxFkTuDk?!=AiZ*|j)CN%yz{Zxi%sNBP zI$(zyt8DW%aG&bj>rk_@hL@F=nKth3lvI}XMss$<%u3hAREnoHa=h9$_JPC4#>B_w zC^>Y$7_L|kJao#F6BNAc0T)eBCehQu>I2260YyX)kYK-@D~U$Ilc;U97jERpojzu) zdV0`|D8?`(yDk&EO;l(cB7u#IvxKB0Gd>2g&y%3WkyxUMFOh=?gKho`D#n``eqhA4 zc}cZltHL2C16Zw;Ia6#sw4}H*d5fp? zkK&@@Ui;t5$ot^5AiiA5nv8fZHhmkQzz!jLKg;Ks4A>f? zexfB{yy~*6tJh@WWJ%*-Qcu&HDT&bRNU-tp!!F}W8J(X2U6qlDuB|Ic$F*_A)K>P={GyksZ zF%678x9kt`{DO!BqQ5QXaTZuR$SFJ;wA#MO2}gr!1LTpL`4zzj@Xm-=udT+r@4_MK z^&z zP)~&}XRYMK__S(@1!pi>taYlPD1$%RiZDGKnRj{m)=4>#l4I3{9o#lJ^WkdV`lMRM@Kx!zhy*XxtQ=83Q33teD3zwp={P|8(WyMldb>8G)>fd?EX*{foHcf6>Z9t-f@vh>yAY zmE4E9#JuAn29eKf#EiPSg;zNA7nz(!Gja&5J&)*P|2!Q?d)Y$m=vG~RH)y)WE+(+jM=A}B3U z^18`qeP7O6@!t^y_*@UKv7CO z`z2EZ@He zxP+hW(mm~(1nV`*VA>iIVH#yvUzrax`rW*oM!Gh~&qw7ysGAynr80-^u{(T;n*$m> zAez3pCejXPnbzCpey+mbQ=7AlqNKs1SeN{=Wj{__5f?0nr+@NbKxu{#>`EbJ)Y>BOwB21jnZ<&-;J#XnV>5o_p(n$+m-$JDgE z>=C>U?J=2BrU3ii%!AKz4X$fyI=-EVpmn>ic>CJdENI{68Sj7@NU)KU0V)4%2!9VW zguqWowiZNw(Y(@e0FIgI8gqfAzPlhYyv6?;4k%pG?m45T>g&2gN z)byM7Oqpf1w_%Xy3}+QszJID1Wf9{3OrfLL3>tkUPqE zqQv~KvBuzXRh7lpP4m)R#5v^`B14uT|6=upIEnkO0%jJG799aQK_Pmm_Mgi?s)Xyp zVzN3ct~sM|heV~V9u>Un7s;UEe%6In5Mrf2{x*Md-$x^Sdld}p#f4>4LwOwR? zPgkbdy@X}B-$z-7o{2Xbyz0hUd{hxduT1tA@l(!OIibIyW#iE$u54j()u_sN}lJNE|y>o$zj6(B%gJ7z*2Y4%BQ0C1YOXtp5yQ57&|Lavw`^~ z>;>J0r`s3I)0{bkqQ2GK`RR$gz&99jV;OrLx9OJO>+*WmyqNvUh0;OeN}#;e!c>1t1!jbz=v@bY`E!q?vdg%^tiY%K=H9Demc)jYmtqzsin z+aTzP1^qt$`I4N+veokeN)4A23!tuzT)Zje+Et}^GXPoXQnKE%P!x#t*(CEqb8ijP zD13{N3)Y)onkLgq)ufqe)*a^cYuuq_o~1b_ohsP&-D?{*dz@@8qUqWw4=TJRB_yC;~wj6<@2Oony`v)8);>RgtPb2wg#VEISi zez!%*Bdq}UQ=o{mZr=y;eNi0L;EskTL@_Cfv0M>xOxuNX@}FjV74Bg%LSRpbL%U8G$ zk-qQv^eNCB#T?E}$Ohik7@qwJ+`HB+I6R)vAuCwTdZ?1>zMq2i1CU~wwINQ*|< zJuHN55(xIrd|ZM=YVU(Wp|q~-3wK3tKNcMEeWmL2x62o>5{HQP$NsE1p!9_KKz8Vn@L!!+E zzofOPW8&*jo{u$nSkz~Nvy8tHJi78?mWuyWh`<7@*w~PE1gkSV$1dQ-aRkxh|ICU< zY%v}vtiOpnsT&=`leI^2{o8fIx0I}@IM|(PHCf_AxvaxvEgE39Rp94b!r*F;nVBo& zAnL23sTmK{$(TVwY`}4oRhxfxN2Z-Eza|2rlhmx3E;X{RA~jVgojN`dMoIbtY&i2`Hy7BcL+K z6QYSUXpCb6l;Jr&GC@1=S{Y<%Pho@z;pKGh+v}f9+49(X5Higku$hZ5e4~TYNrzJ_a)!C<| zsQJ=FrCH3jG0|d82>bNhA0xo}%D=9eko0rd5iXl16I$S9V5yGddhu(OpxRk`i*7f0 zfHb5)ce5yD`0~WbG&I@uYP7CSVlYSQ(Yww4#fY{H4>sLqof-O%BEgR(q57wnZJbD{C6j)%=^oyLZm=vYF)cw%;vI5G>OJ%gQwYt+(xmVw z)V`O2_B9k|V#-r)F?0keU2ZPc<{MUyK(dxK8Aoq0Z!d!?!EPQA4md5=NF+T@hub=u zm`Kf(g+x^)lZpsboXmE%dXj{B!u3D_v$5R0>NhdXj+Z%I=7QkM3Q0(b#1a}Qm#|*Q z2J$?jM}I-q*6pG;hY?Eb`pZFuMPLi;r}kFM3o&yJ5d2<0N%P z=N@buy+g^^R%9pae!?vqABB?OByDx7m($>eeCC-QS~ZGW(q}AGPa2!NaTHHHLv^NZ zTZRg<2C~;ivV8`puQwjkMZW#`qg#x6yq}Kqj#d));;*vHBHoj&>*pY($g;l_>^8`G z2Li(`irFGjd^gVpNMTSBW`0g42<5ylcAQU&#jpu6){~;%8ze|n)KOHSJT#~pQ;QdU z3^lAE2Xxlev7zeA?qbhAt9LRZ~^OGtgwH~m<>@-w`kG%KK$Il|9p)x7uDh_!& z^GJG2lfAP;Zjrye+^y#tImIx<5zlEPqt0Q4NxjM;OzJ{5hnFZGL_QOEb0TV9O6jV3 zp|ez;>>b2@YmtbewV<zOK$4Vh<`nKwyv`t$pKD~55NEs;9AOsAu1+K zA#>R+RCMlOnUetBrje&kPUKR#R-TJmk)_a)Q?M1%(`tVC9p-{Rla^{wQH`dBje=_s z7AQ^fjOCJUC?^4p2~9ciHoNo-#QoY&CRk)o;gux45w<64(z_H!W$3wds0GF;kKuE3 z^q^iMB_)({qUwabI01;|b0l?Igj|8q%8nb8s69ATrge>>y%?6IO z_F+ybCC|fkrCEF6^bO%^s04Rs^68`0NoEfq&Wtf60Y1V|ulhgjiR?KG5|d1FB@NID z6od5gP<-%3x6wGeAW)p}I0Z%Dz|5u;OjLFGk|aWR;VTr;+PGF>Cpm<@^?VE@f zw0zGg$V5khO5E;oy(X8;(Aqi(tVKSqOJs3Pm>6rK5I));RMOd513~c`trCEjkrQs| z8pq!i?W!@07%wBCN0^c|6`Riv+|~7-ZS;$D8Y9AvG3!J8(gd!nBxhpP&-wI=B%~g} zG?_o`vu7i~>D#QU73X5c>kZ@7K+VJPl~A+TR^)P1W*@-W2cn_z6KR>vRLXJNTsP$s z@s41K{{~B8@J*?K4o(N7Lui3wmpbNvN=K`41xBejQm9-I z*KSwYC&mxAf%cB8O-&Gc{E-2nSLGt*P?yWB5Toktwj2)6b#57<2Ei+Lg*0X$i&2vy z19Pli)BSY8=qeA&Cv#|RRH>IS#sC>=y@w8%KM0l)RksKu#{>MU8@NCtiwUh%lVe-Z zi<&RdRjtoi=Mmf?D)^%q5wq_Z=h9OxGwLG?VP808fmH-0st&W`9yR|!%59Zfv2?ez z#O?0qry5jGn+)P z!wNa}d`H;`u1RP`YLw6Rx0F-UfQuC*$)i!_V_Z{M%ATC334tX^)RiROCiuTl$_w1t z;HRKkItKy(vMqAa2QKSB%YFx!H)r7z9;4u5eaz<4sSH4TOxBIW%kNAbasTK1&yR@W zJuGfx{@AU~5doec%t%NH+Iz3aH~!*5Eu#UgyE{_6nIbTo_A9Vh9}P5H)`^RI3UnKe zs;)DSkB71xIWDHya_4U^`w-UN?2K!z=By=gh2;u z>h8m_V+5yQsurYY(XQR-x9&S4xdYAF;tl~>8dKK`tS!YiY78mI^f=*?+W{>|fzdH> z&cwb%myHO4#`}f-BWvO2R>9GggY$>?AL*%OE?_nRSHr?_s9L^=QduLq3fY$Dfom^qplcm(tYHSyvhkza~S1? z1BWwqn@lEz;{L^;5@^Y07NoCBLl)KnB4}1*VD0)Q=XvhF?c+2EVr!8k!J)E$HFXJ! zai0s82xIr1kEV4K|RyouPF^vz5efw zXWlt^`w&y0?r}aRsY|C#Z1NoR$|nbwPdAd5?nx907YYEN>K^KXQoHslG7(?3%o^1= zm6d<*OrbI}^rkgBp#3))_KJ+b7ps|$ywWY+I*dPK*|d!>?)_V-%Kay>iN*M9UB|8sK6qz_Jy)>%;Fl6lvCFmB!O-5Opxc4z{?gH z4}5wM+TGvQEsy3HU^yU29z_LKShugVY)@3{`aZx5-qSG|F+so0s_ z_uT(xYdQOyle<4orNOWRPPkKqn9E{c$WHGFLxdS~OZ^_ZWGl{a3Z>KHC`N!++(ozL z8CZa-@x}cx`;Q0{DJG?-DLu}%GbH=7>3kLh&v}|dk$V6Lcys4lMOt3a)v|}JjaUZv zC+&O?5Z^gi`3L?v|5mR77r9+?-XgKuESkHc;UB)WawEAeud*5BxI z7Vrr?ZC-LxT{KsM@#p&?p$5cxqqau4I{<1N`~4NiFfc2xWHnVFS}M{?%tqIC?bz#} z>PmS5!E@a#**uJNilJY`7obf_I0en55divyHR#P1wO_)dnT$II%%!AmlU?v6p3g;O zx+tY^Cot}FA!Xob-{jtvBHW)Q7@CDYn*^G2NPj_X)D0R<3rCdd0YdvN8>gHE+yQ-x_ zH@51Hn_R$PDy^MfHgYK5=65)Rh&cVUFO79cob~`oZioP*C>S}00cH4Yf@aV*WVD4o zuVOh@WZHGN5cfe{S>56BF;KnZ-;tO-A963|A5@*MZ?O`mnYv{ODI4X69h zkB-$h)zPboUno=lP7svVLBlFBdlv{+Y9zp_W9@&zHPpTNe6p!DK znpf>^8bGoYRuXlR(vBKStbN(F@AjWTZ->LASpYgM0nv38GXda z1jhFzlpda!>%Ebgv53?8>BNoXfHaDbL4sunfY^9CN=D9ehPHC0e=9 zs=ZXYms~P6si@PlqVGgisywog9Wb8$20(9h4u7=spV>oG*;%62ksOTN)zhXL>x+CA z3{6>hqWJ7+L3FRki|{F~;!uLe9m(b)kA&f_OSa4B+4=hxaV`Rgm_xr+p9o3pDKBWT zY6D4e%p#Y@XrISUw>gWD%ydj5CUL5>2DOwenZ?DEqAhBQpc%92X%6%f0oiP_D~Q-3>{ZCaV}$Q2wwNvuf72ORwgK_q*Xna>1_p-`e9wT+Rc?KehYUB@6ZN- zyeS@6Ebm}Z$-UD>E9fmeVeY64dZe2oxaMW@?qC6`M9#iCQ7VShI zgzLL4N-aDdC7_H$b}S4irQ_U5Lao6UJE(G;fWIjGmHZMrPo7< z<20?&VVNTlU4Ew>?A!;06zl-jK?R^yx5CNl%pLi>Y)k0m!zCPqnBi7Q0hj4mnHd12 z$F8|7HfwDeRBDXamnNH>`sPF92Z( zgY|}2YcP83noBv+jNCs{3573wmn?s!@A1_H)Tny2_w97*7ED|V&U{+cdy9eZ3QV7V z&M)Joj>B(P%b678SnK4AmmuCFegIW4iQP*8@hHZ##-)?}>(=`P%r50JbMsbfIJlfl za)>%!N2ZvbZax#%*=PFgBjI@N52D8hrohe~#xoB0;n7UdrYqg%z|_>!C%f7LxLo!c z3nmC>pdDN9jnzyty3G)-g51hN5$uA`pF8S|W`+4(j}79LD1Mdzw9YPSkbR{&K2uUx7u0fR^fHT;M0)$KbS*C`oXz#9t#D5xz6VRM}fVZ}i2X(v) zQ7yv^#}vlVB6~m9uR#4Hg-1)R5Q=QjtPtA^R2zHH_aBaU&g@b2;Ya9(s958#leC^j z#()8ugee4PUb8w8yLd=IHfk0QU%e6NN_2hog*~bJV=~J5f)MXV$4?u{_()GDwo#BS z92!vf%ge3AWZ5zF#96e=9HwU*p&RusS6(`CF|DspvqQLp6_(tkaKU zB?uEWc|ZzB!nVTljd%G2{wNUkLT(X6Notw56F7{*dx+7+vNMw&4$4LFA1yS)zbPYb z&|l8FOpfc}SE#bOL|qgbH!)J=aI#h3_T~kh05D$?%w|Q;F})rf{uy{!j3$12lISR@ z&Qs{t>~VJBvl_jRT6d9a2LDBOsc+H~N0^+BW9SQ+*EUdO!x-&JE|Fu?4(;9wbf5LM zyIYCS9kKbCsG6h~(hbS#~!)(V1)nfxu1zZT=nJ{L4M z0+8YYQcLq~)g}^|Xjsau2F+yf@d_P-`FgiSx261x2J<&-t;d^J1+B&pG%N3G8IWKGk5 zYO`!JJu-a1X7wA*-ykkHu_CprQk4X!>}s)lh>f_&)BF|vGU_zutD7uj5HEZQia+M) zhNRYofDC(l7r)EN+we0~yZSFzsh}>Z=o#qJ=JIam`2AV(zu9ldr$(@#zpd#Y?|GPb zoYhL5)_OLobtg6IiO*@Ce4vMytf}IVl+|8XDksAr^T2G z)lcSdijORd=`UrIU+d$jRW%NI?~1|qx+lDymXgtXLH*V^<&_4*{y}gHl1cTT&J)bD zztLM?fdldxkEh7oDUnkq$}4Oy;D)Dbwa;Hgc8y(de845X9=b}mLE3?kaiR7~7@N~n z$OwXNEF48yRX$>vt2LgCP1k?2Ma<7V0EOV;YuBs}Rf-rna*0e~ z+JYKXR>FuV*273+K)+gpo+%Y)mbAk7NYP4!Ztl>Paa&w7RCf9|WCJTVe+cjxU!kBQe!Gga&HlR76 z1tG}Rtl$L)BV*Y(^#F}cD@OjJW11nSRc0zTpq2Lq75%_Hp9zggY-W(Exq z@~7wj31)r(#(pO9>58UpEw+-xp$3|IPd20!6BK?BLG&4009`Bk$M#r6#X)&22Y|_e zjBSE$pg*RpjE1WLE?D`^mvlNOEc@HcrBEA%=&)gIW#A2P?RE+V$SU3wi9|dROacLX zZWXpl3|EG#NFu6HgW?%!`6pPI7oeNySuRwxgI8AAOo0p2PB|7e+^)xJ<#$F=b)=w< znv9H-BF0`TnUWaY7VoTA_t%62WLi-LzYi;)B2V%AKV)|3`6en`wbF;c?~(t2HQ;Cf z>*aWgI$)lt2tp5W-q%18g#1mAK#Z>v>bsUH3aT@ah%{=9-_HWyx-2SnxY@5DyBZq$ z*zRE{nuCyWKvm={EYM~13i$d&EK3F|H)X67{i$R3aMFZjRCGm!0p+)%1F1A#OTw(W zSyq({uQeMdb2;`g{CUm_hgFWig5{53LRVds`Ec0}oj=S8XJ7`*lI!+_C_Rf*cGQ7k zp|_H|YZiS|W(DVHu_2zf7N$~qmYDz;xB=ltJfdL$-#}pp;>@M{cyHP2)VF5%i=Be?#~y#}hX;+^WWB&WpRw9gs{X((b9EOp|C4{FXr%?r`n9zH!_a zpC7%BdY>SbBX)WaP$Bmb*(AO4IC>W9eO>821d)5(?Um5iB^G*(cDC!MlYC{PlQ4o> zJ`g3-YuEP#4h`bY$=PVv{}$_za;aE6(DGFUyP6=nS=3$-TwBbx)?C+}EmEr0s6mLf z_`_SW1^*~V+glZh2XD>XeU=}6ZP)Qx&F z^80l8c_17(bn-{|^UtCS&lg#oz;&m<@nOzg?Y2t~v zzS*%yrQJqaGNjpeWK^y(ER?g+uO5yRR^tk?QFlL&K7P#~+e)ExfqxC1*K`yuhCT{-gZlO5HtSsJW~B2RQZ2>WZC$+wVNO;JMFkR25hM2m5i4KZcGYqVsUU z?Zl2x{U>J{GDYCL8W3prj~X=7X*F#wo{DX`)15n4%p~A%xTb}p#M1wYnG{b&-7r2i zqOYr%Y)8wr51RCvEZa2OQ(FmY(X}P>aI!&P7_kTUh#~(2;+h1O$3QYD;we#iX%@dm9#^=fc(^glJCuUFp9=E91LF!Wf?u zi`Td>nd$sfAWivA2`y9tSksZOlMMXMjUKW)e3W5w$eNj@?GqgzYNpvn^g3pcLD6xc zM$9$uM>MjOl7$dH#nOz$PL%)T^6peh@s8K_=r&B9iJ*Onzzo3fCgL(5jaxaA>{d{3 zG*X~^$eMxG3P5!H6 zDn5$4VMnE9qE0r-b3f}J)>g2OYzBfymC#91a9KrZQx6@vFE%P96Ad016S;3?A|~Ug z(|OZLGiIBnCgq67gXcWjcg<-AvXErMC}f~}Q1~rB{1b|}jFX>{b@|0j+# zI{!z?44mg17O8%B(aLcARl|1$d+|ZZ-XXjejPY0Zi$^qCj^5T!5E_a7%oXwb!<1iS zDR}Tz5o(x85QqUg%rd^K|5+jK+X|=J>ZC7Rz*&BaTNmflvA-HYBjrCm5)eV=_YGDC zfx5RUf2Dr81+=FXu^OOYkETc>YTeS~{IdOdg}5LQu60W+ZR;ks`m=#ril3k~hA3*( zMWl~DMG6u0jPz{WB>pPpyACL0ytKIY+~^)=CG14+L5zdM|4e7tL*KeDjEaa3dTcK+ z!&*e9Qofn1Ic$$pL#>+Pp3cBSxjG00;BH{beup(bBqHLkoL4bikW;w8oJs#8w$i2k z=ge3XO1CLGuC1;{IT5LEP^u2W2U z#U(3x9vzp{j;F0WWjHgC`~RmdSm_os1-}~U)V0C$e$rFSzd$MNw@b~I3iu&aFND){ zn=DFnQ-)EI>p1rka7Ry?z@El`7v2nnsD3o*FLI(aDCr<@>_Z}j>e8rdLRlx-g_a6g zap0-;$I;KjP(pA+z7}vJNWaQpvlmE)A;&F^pm3i!c{jGw2tp2@$!+HJUz~>F zzXzg#YHOf(3;F-F%$tLI9)V88UR}@l0nFJXtInJ%MhtAw^LwSfP8Rk*5M3EcJN6Pg z?i?A}E9I;#@7L7t+!mdCc9rzqUy#l#r8u3I-9J+6AIC$}Z;zS(r&Zx# ziFXq8^ZkjuW6F5{$wg99Wc3_3NkntK~P42SpRf9F!hFAAz{iv%Cm^ndsFJ#C!HQA;ujZ zFEpdxQiY~C+An=ml>ZGu)bBYCB3n5&7Dv@xYHn}E`Q|IgN5{9u(<1Hxo`YuR>kxRZ zF9o~wQ=lv3d8&ZvhC%>C@&m@AtCPN))mpxswxjtIV*_7$v+;a7O0UVvn=Xvdy~npX z%49MBe@rufI{Tx01ha2q6Hbd|5I^*hh5b z8yUk}I)QYyAyDBY*%}yk*Rp{sc&>NgZ%nFx0GPQc0loiDCRKkYlTcb%lVm1q zs*sqQT%uU4dOl>G=-KeM>sj4tPFb4ls=D!K3vKj@AEQq#Q+aiIkT(){^M6muWRywM z1U`Vp+^H|j&p2zrpyKD2XH%;|O)zPTfYY4D308VFB@IwWKa`zXl2=L5obzHrJe|NX$ZT6iGI2z%gSJdO__BD zJQ4>%=G8d*tMuaTTeNl#9|okHU;oyrHkYWcxspS#uX|-QLJ5yRLNv%j+$2I^y7%jYt(E}O{G)WU*GBT`N_`ZWer6T zZ4g|YC@W(&D`m^2O4f?rbhZSxirZdH+tv~eq^g=J z*c>QasFg|*$>+>c{GPcyy+9um|OP54&L&4Ou$A7SuH9fM* zs)Xy8c!2N3bx?_&mM2zaOAy;3y~8gxLQY5;{WdEY^<_`LxS?s?Umz zm?U+|n)_5=`sAwoaGLzS2Zc}7=ACk)Wzn~sYA+19R#`m6Mq}uDP7EC-7`I-Mid*Gq z#$91tK9o!5s$sQJy>#2Dpn|qTPhEaD-*)$~@zQzHnT}gP5+xm!e(qpi&1eVV#ce8I zH`E=Vq*U&@nK&(2QE@L&6_pcjx5MAPT#piU`NLqbygsBC2oe}h)4M;)V#ySBR3|@a zG?hJkVo7l3L2$<#!;*`KV9Jb}w8UDc%yzerIk7*bny`M$LdA7=XEO`h5|oGY8X7{X zUawJi4ovP^%dQ2-FJr>58y0&gn<7}s zg*^5kwqNQ@yPRKRE{dOYY%+U9mv+_tT~e{AhjFyx$-eAUc(_{OtZjftC5{=}!9Jd2>L z*8DNjUB~iEpd6$5_N!g-lT~3?f!(GWjeXHuEwc)Co@+U~&%+XOl6b9f*e!sk0IrVm z3m#3Udob%2dvNK&9P+Q5Ly#dxF|(C|Z4-}m7$2jZcl04%ZhLz&i&lQL^1)Wvk@p`S zA%x5BMx`i=1Rm$fglTLOKe);!kYy0FXbC?w$Ku!zQ*Lh+)?HONQaV^EZ1bo-9E!gJ@>8qCo=v<{3)AjL zghoi*)M`J^=7fG%)$B_~C-Y<`(}6!nt3I4Ed%Sv#t)BecgE&0j#+-xxKSX_H zSR6gHFz)W|?(VKFPH}g4EADQ^-Jw8nC=QEzaVhTZ?ksTk?epFH{g@=jlYMsP|{LLz7yr7B`2<>SI`R)F_&dg zmHY+YD%4AkK61~dPz*2L4$-WDeqLA7T4KVjBJbBgv6LQuvJ9}WSSSex*2`3WUcFqp zPaLf`!O3L-Bq#0ws7#*39wXPS4-hSIoa;u<80X2P6_1skchksPEgv=T@rlP`t#bHN;V_pyxDD zv}wR8)Jdt-Bcmraz%( z7L`1et#Y=K%vAfQDXi^5eA=T0A(KWmi`HMN`Y1br8mSte)iQ&Du3ERQ;@nQxs7X^J zIbytpDsGOt^l5ycM2k2-T0GIjh;8bb zh8;84{Q5)Hl!1!tWeMMgNbxVL@6)039|W-jar7C%FkJvRn)s#b>+E%YyYClTeIEO? z1?Tv+mySU>xDLK=gPz}?BXho9OHY!HIUmE}CIEGhFJi1EaMgxW+Ds}a<9#hQA@3vZ zg~L$xcH>$mY;)D01A+*pIm{}q_aGc$3PdR`{@8cQLOD4F-wb$;L>|8Nt zW%vhQ=eS^xxdl9Ad@0tt>ATt_4tRjhYdh82lNFMRS3ZZUyvcjA_cMHD6b!Z1RT$dv z{J8TCu?6O8k;(;lIH|nb$ob`9-c_N(`cWr;_IJO0&HI#itihjNW8wgubHu-`_;Qn2 zxpanDV=vJzt%GaykBtA_Y$DyU#0sPm3@)+IkH7hq@$Qfc8Mr?EA+mE9Xmuo z6;=iyWbE%ig=bXpyS}OORu14-z~_1Lc@_Rmkncxi$M3-Hagxi`Z3~ge7x|HgwqXOE@w-F5bTB%K2i)_ge2c3q)b33GQ27`CkT6EXuP zw+$aBQ=bXhv|FRF{PR@Y6*78$VCT7Lx(_o;8%46V;3R4*t9^aFyf>9-1?ysrCl&Qa zjcC)G7=;vDn_uv}dJ?-9^C2$k369lS{3#3PPhzchSWdm2P#|9a73TjEc(*_wXjff^p+C9iaJ8GCof7?U}e6_mi36 zmGe*5BczM$XyeM&uS-$+p7B|X~WXrt+i?!K{VD=R)je(~fizg2T4fRBEB5;EmSdbxpAwTsBg|kG zD$Xw+T=?(&Gw|059}vfVXix7$^sj4R1{LDSHuDG$nB+#BJivs)_o(B!4SM=T*?@3{ z$-#Kz;z&|-VXDY}Ob0)x$;r37D1)epyKY`9pfR1}g+h(w<9Vpm>rz-#AJ+#m`5kMp zz=y>s#Y8-48^x~gW?gBVQF6KJGi||p^1vWwL3Al6uiXgM9nVFkxlfbXZlf7Sp$yZ{ zURE3n%a}Eo1PaX8`pecKD5;8FH3)BVc~?K~A=_-7XM_Gq!%|UF_OVu#E>Bqj`1j2! z`L63{E6Hvln~e-9N54!srb8pSwe?-6pLs3)ag)qz2-tnE@4p;psz?Iav3RpIO=bi7 zvAo7s0|{@H@lifYZFU;s=09XPltO!C#~jLd>&$bzcUelGa^_?TSO-R#2I(waI*tC; zq&}I*!!;n7AI9i?+LB`PA=r}6|Kdgd-le2{>@1Cf;}Za57?Kehj)U36Q7~W{yw!lJ z#jBVwu&JNG&^bN+zyQoMM8P4@ijI6Y^e4h`tDm|4(Vq+w_+WAV{f%GS8aQRhw|&5N z?iPgV0|Ij=!_137T)c(Gzqnx$-z`pc+sc@qDs5fbgh61ZwM&~>2Pw*taZ&rkxQ3or zNq8&%`gos2s7afns=oo~#S;GTXxJHG9pnYtL0;e}0t-_6SYXEyTA060Z|xVA_Rc~5 z+_qfZHgN#T@K>vc((xDyl1!xmT%@7M;_8*yT1+KX|-2J`17lJ$<`OV4&= z=Rsq_apO{2pHtPq+3giZ0wI9qb8#Yr^N-bN@5Jxv#J+cfYkZ(%AC5@qR{o2L%nMRh z&oo^D`JP=tpH%_*e4&5D1jGfWf?lCtgw1o>06w4sE|5P`F&wWb!I$5j;Tkby$1MPo z2OHIxz(#G>S)8`^6?s`bilC{&I;b4zk~&jX44#9){s4k|%XUS{#dBg{>=`tNDA;?z zb7DS&EUneVIbT9DzZQwGUMp}+agMcdr!1>;eNZ0oAWLfpoeh>z5REC0W+9P2xGt*$ zq$a}>-uSC?w;;Otr%cptctPF|gx_}k=`3%6k`rUOZT7N`lGam0|6~&G z!ncA42I^fR%Ka`EbTv|chQ&FkukgaP7Fo_3C^Ln6Zj=Wp5kdw^8h{2Rg=(Y5jtog7F!k&tQEg&@T|&Zf3(48$75(1pa|`Kq4f*Ly2ka#R z_O5<;4(5LjUXtxcoj_*rGfQ6kbuD}9x`ri^Jl%)t=SKC9tCQjpBu(}Iq@C|7L9mth zp@Q2_pcqBl8d{=5KJ<^QR+)3ySNWlNIMErSW$l=sn$-Ez0o(Q<(W~fGQf=h`W0Zhx zHT1XO_@1A(%|0S;!C6MJ|4Sf)3HxV?Ihf*Fv$u;b^Xe!zR|GM>WZ2!t$Pz_<-5VK+K<1 zw7*zbh9{Z)lx;70{kzTFFEji<;!%IoZ$vKhl}D&WwGFzeK}rc7!gboCpnZgm(uQe= z9F39>-AU53df%W0?872;JJ|Dy7&qHL8*eW=1Fero;?jnj9Xcf}N^uE1CGNK^HdaT} z+!~Zk`clfakh=2vm0yc&p5o>cGtQT!K8>Tc=T@Z@d$3~|fof+G%<6G=3ks;k>L>gc zvg!|!E%PSu=hWlT8Er0Je5kKy(y&{Ee?Gp~k8{gNMTW0&61L0l9z|_?2P1?$j&P5t z*Ps_K!gb9M)cr|Tz_c?w+fe~_$l10*o@)*FV9H&2Q7`^{R@N9`R6S9gVb#x0Y@HM+rAT*G`NXcODW^LJJJP=2y*-J z@;RWZea0jk$0lxHB@LpOA`)d(4rkUWkK1!%*#E^qLX%_az%P<9FOsjyn5#|YaxQIaJL|K;(x@D75XOnk`Bo| zcriV&CCfN@WMU8yN$^feku@}|V1Hp*Jcx)wta=yGFt$z;_qPD!-4tK}P*ndEDQX?; z;HspkiYM8iskYqyG^AtcS4Ms#J4KhetD=e}=`+NLfHBx12!^()=ph@lz{J3Ly*(;>LH>ytVXpSIU_T<9ijVfQ9gqk%gR^nkK z^g=>bFO>^eP5&tx4!Kjvhkb5gs4Cg!3~g`iu6&iB3`+7z##8%>)RJ$rKwr~z|Spciyn6= zS#&3yPdw^cUTDE@A_5>sa(phNByWZiAHAjaD#DUHL=Zha#mU*u&<}IXQji|yJzE5EL3M* z9;TJ~K@!dC1~Q$G_RITIg4K0C4JE5uog8%=b#>0%SRLj-npk=wB>-VGCH2mcEIf== zqPCA%el1u?Y_u_KLF9`=OUT{WenRxTrQBlmV2zHLGxc9Lv2MlD^2#vT_9JD9ZvS`2 z!QIfrHcDuG8!Yc1Zl*t2LXPwkM*IYZ0c+z~E1gS?YUW#~;u*4AfjO@81#vGYbt4WN zoGOcnJ)AW-aY90*hHSUigorX_H8)#k=Xy?PIV456HJLbdB%(pwd;T_nr=561a7LOI ziKbabt`3_0E3t-Mg^zr}R^cFlqGk2sn9uj-o6>oUf9^slP&+Tulg>&9un%29mlhIsTp zCcbz>80Wggz5MH?-`lO+6ytC7%wlA#)4as=t-|){?YvPkX^!Zzd*MIiwBL4x0 zGN%7QS1n)8-w*`VKU&KABeA=?O6#?D_G&=P_40-OMmztUCBi>viCur?%YpIF>@&LA z>JtcllcIY3Pcg_@ZfR|ahZsbz*1+XHp3aW>@Ljo?4|ipQscpQ%eXKJaVyzk`2qxql z^r?V%gsoo_8-l}1N>rwK7p=Bc@#$}H@uK)53Rj+s)Xh{~d-^~VA?3jh_RXC0G2u9~ z-RBhX;W2C*ALo#hB4LAIQArmz_1<;~e=3v+gu2lq7+6V=M05a3Gl-ij78Qi7#ED!( zgt|RaWB?5ndd^2MC^1&q31?Lp=58;h*)YI|&QeE%bg= zM!horI!rvL(Dn;Ug8=Y|CS zkD~;AH5>O7TS@QkI;Y{5cFwSIJuNm8#_da|>y7if!9?e+U!~l|pQCXDZ*UUI)S&MN z;eymwt7*9PjJQJSKG00cPBps*-XFCL&5YByRSUI3hX(B`GMj0hgWi~&|oRxdz&P75A?m{M@ z7tl~B0u(p|U}D3D(Pu3Z8h)zE8ZrxHyB>LmlewGkb;!{Nn zs)XLhnt~0OkmSeDmi6(qI#J~Hlr)S#89$P{?^AL49^)qGBYBy?kGsYYUP>5UNE$EG zIvn@?%MZnS6w#1!I9?%Le3@%3C#X$AS+89u*Z?PtJ~gQED4`+aT0d&EP2zPrBlxfs z3bv5WgU+C9mLl70tN}g$=UZR^tu}gJT%d+ml_3--%dm}wVH0Aci1tQmLg?l%*|ZH= zQ+iOu2F3ZIS9tc+&qpW2w)ebKSGX_Dwl}jJG~orJ2vflT;J%*(LXh4UYnhiraO|N^ zwBfxJEy7vqA75m*9RFMQf#O8DV!^u{ed}}HuUH{|EVe~-YP#kL^+liH3n35ji2X9V z1TQ_}4t=IQi*F@uwf@aL^JbeG={czED(+wMO~Fc@vJ z{cxyTH^&|a1m$y*U(RkF92*haUO+;@@avDA7-_n1EcMMQbXiBNbkn&3f|~lIq899u zzY5rn`z~g!G(_5(oz)EQ=`iy2D2RdVo-^{ufIWJ0Osb$+8_I_mVoq7|-08q1td92jl+kQmXqI z{_NO@wiW7B+7K`azhW3EA8tEf7>Q`t&=!kLcSGPsNdll$w-lsmB<{0EjkIsEBZa5- zu8OIK+r(vPBu-xWVVHpvGVvX%F}`KgUKSKKG#b2lSI)!nEShw9ePOdQZy6eJXE1Lh z24FBWZct7B$N81Ek$8iiKV{{IaSL=psUZlZrkQ!M-4QkUy^X0?9x3xeMOqW?z^rj& zJt$`amx59w6V{I%MGVl9##gT7811av$c<5yHM@rWf!K{}Y>s2)Lc)Vd^Syx2`xG*= zlzFQ({uNU!W1xO21lJp!i_QOO`lFNJ10U9vIU`UQOO!lQ_sKD_2NjfHrA3oO7;wcS z&Lt(a%c~qYG+iJ>iNhd%Ek1+mER*Jg^XteUdK)n}A&&Lh&=lCtgYSQhTg2D?99=@8 z8XSt+9aVcMj{Y--B8cLX#l_1%^^2dlD*_d?hCbTRM?+8IJIM!1OdVzsQJc~8rY)6A zFCHib(Pr>M?k8*s#$y2G{i<{tX~`ev*^L+=PNMI}GOv237`Ceut`IL>@mkjLs8NJr zIazl2x-ZmhW6UuLn#K+vRpV}C$Oq8o@82OZZRTTChS$F#Hjm^){S|aGgE0__+o2PR zv2-dsp~g#si+*xyZ_FN}psNxKGuGT_ArcsnF~v%JGkgsI>1FIL(3*m>I*c@Pj27~rmCwf4EnAO zI&^j~tT#%|0k+{SB|p!OAP`Cft{)b(;0!Y5*6VBL0`vCPd!>lc1fNcUaIc0>4E@?Z zfu&k#G@%{^k(cx?0F`V~2%n4g<+x`+zM4&C_FB|Z3eQ^d{E0>r&)PIRn8sP+@Pz`Y ziRUpE#KspMFebkpwq2qW_8(;tmI8?@SYrbxifv{edxh~Ia&QK<8AJ=)t+fGZoPkmr zt$PJ2=zEI9WJKa>=okA}4Txd#k$niT##ISVT@>jrvMpTsqmaXQ*`z(EdOS&p&I zv2#*niP&h5X1Nw6%L5q_y-fhAh3!>1e@|bGm*bx9q^d8WzVQQmIT*C zNQ?u{rMxYL(=k}zNS$q|?v*2g{|zNF*mAmroR6FzA12#R)}tUd(LF8T-Dr)ZMtM8T z{&49NG(3P-9LX)HUvNaRBtKIATNh4_M+p4MvQl=P+5Dj@>U-?oXL&mx=<(JlYB)Ix{85 z%+Cm)n^rZalNI4cqAD-QcoG8Yh5VG)6oQP*b2?wQtHt<7K|vMh2cC-AZdj1tt_B9XYtGS95W~Ed&wiR- ztqznh{04Sy7`%^OaBX-$3g-PZ3xSH-L*#-BX)LBdg@%uad)Ab?NjYi@A;1Plzafmq z^XStlMw80*AObzyNv3`wl@t~~L+F%@XVXzaQcm5D2gwT!qJq=R(u&g72S`6I$NQM%{^PlUjOW&)1UC zqAC2q;Y`vJL%R!dA<4jS^&swOz~#w|d7OBln7~Ce?Ke*`>Y;$#OKSj#^dQAE_nshX zG2$%F5QubR?&B=!T^4`;@7hc=_qlD_WhbD`yz;v{i)z4{9VU0JT4yg$M3X z8UhBKnu~R~s^s)6nPQ4B3f<0>Z_Dln2IWK7Yy@8E3HyGW=?p9>QV73hFIj2{$_PG4 zqNMUGjCe2EgoG)8oULCN$_FCY{Xv}u9|}CQmw6@;gAJ~i|L|uM-%mIDYIHWZ3nVkU zI|IuSHg`r|g8tvLr91+8rO4o+Gw{%CaF!`S;$ps8iub$b)){SFlD^WRnqZ;ECS8s9 zay5;4tBlPNf~DflpilmT#hn+l6H^Tns(ozjU#!TafVhQkP0= z@LJd*BnBo9n$|@^lTl_^Rgi<>(-swzxP*h@mj}~~;t6DaCGrecNn;XEWQQ7!3Z9`F z#S0nMW~3XEMKd z2MH805w87W8%XJThv<6kaXyRQ{5T)YJte^*=z?-~2qeLvC(`J|z@UX_RD&`LPY8j# zFp67vSdHBNYDr)SUJ}J%;8^wIMPO&$jxr)^D(1B@!U+-y=Z(^wZUGC^Jo-t>&hsRmyboWk($ly$z z-&u!d`OhA|6yo~Zm+h`+{P^C(jI5ill_6`;Yl=MiaPKrx_0wl;->5I59D!nD;gvlqz% z)1^IWD-O%3AnuI5`mR1(<>_EK(PSfpY1}F(7va#gx}?5#*C)LntPYfM3Xb) zr=*oTDHhG`+h{Y@;=5lfDYaE`3yByBwl7^YSkD95r6zD$ww5bt><^_nCSuWP(LJ%> z?@W`Qbrk&+#kTn9)MT2Nswk$E=*@t8%I@fT1N5~CT$SH{b3N&P$+cw5Ys!xCzhrf$ zgmA!CAq!LAIIE;}#>=-b{6bir8WT<(WYJ0!B1k=(sOCNvzz!#GpPJB(Eh;S*q0$=t za(MePddGi>a+6nZ%+f@Bus%fH&Ot@1Ty1b{h5e*@Yd8uRZ_WptaPs2AjrxIQ{TRH< z?g@Rf@Y}KS(OFqCJ~l5ET<_#?u z%vMzNdJj?BH}X_Pi#00ElfDGxj{YkI8&9HE>G$9!{8c?@T;tmTQqAu_sZI-LgFIO| zHKfb0Ut6G|D+S)Neodbury6EV!$R5j(|)$7`EVNk{wVwUSt&^O4n7BIF{U40*w*&h0sB&qCfZ4Y_hZ8D6P+#Wq_x3yY}1ez|QbwMHjw^vBIC!ocVR8?dzN z+Nj=`x6DSPLa--!4_1l_!-xC}U0B>EQ+a4>iGBJF+HuP%9R}$~vx=#(MLmX*u-=4O z|2Mx=d(eqL;C@H7I)Fr0-jf4f!d;8vwOeuDp&x$jk$gQXtefK*WP&~XbRuIj(hytU z)&_wl!SD+SnLiNy(iKh>;Qf*mPOH%+qd#EhJxnFU&Pb`s%%3BpE3(cghvJZg<<@hG zMq-BWeE`}?MTCQ#_&&dv6KDB{=$;k33HS{n2uZWv$E$;VRA z$iJ_h%R`EW1*FWOM{OPq?;h0T~9ep@?p?!1KSqICmK|jtj>PPNI!`&>)MR|S8JB&4Z z!(EP?jJAnGYL-UtXr~pxU|7}zMwX`G?h+5{P1L0PJqVSa0vLoaR;0TrRm{nVvU=Di z+86TPa8rtKLJAO>-sL~%JwK$DXne#_m0p!!w*(oQ1nJ)|9sDC7CijS8#Kmby;pO{) zvBe8&$dz>svQDM|q&Cqj08+KA2hH~(Xd6yJd^eqOhMc3fjZ^PYt62sjt9ai+eMSwwBPQ%?4VSp4%!YxK!lXrCMYS*CN zg&~E!HR}y%3*B?xhCHxyL*B3VlDbU!5kt@3&@^^Z-oC**I+xKm+RF~X>G+U(>f(f& zWzLX-26Q^;8MVmLy!^Vw9Y#{xBSuz4#`9NY)&_asXk!K$LL9yw>dl$h48GAr>aykx zzIspAq&)5e>RaPNz@Rwjx2CzEo*MOuzVr2pJ{JEYug`KWiH6D?QQmbVy+yh#Kd31{ ziz@J)HHlE%J6d4?v|?VBG3rlZXsW8r>XI=j4=kOO*LS?b$XEjm9`LZbw1c|Z>>bT& z%X;&XZ)lqFh(T`LY|$kp6ncwch+zSK?U2 zo11+Uy&hyanX@N6JPq{i*wo%(@~(g{MLV+BmO~{&2uPwK$yBnqj7&hfSM4E=IWW!~ zK#leb%d`u6+;W*y6Ji$KP^irbxX^gAkmsczfFr4BRL=i z@zJY+VOfb~dA!3|&|50X!%se+Y}`I%0z7@C+ybROu3T!2XgjikQ5E$rJf%_i`=|qv ziGB|u!;glT25Pw>c1@QYO_#Vv4@X)19T`L8<%4O{VWn^NwuuN#z`qVeuwwk2zaS7l znQ{Z6%_pF7T!X{)jmdGfNB=bocZgv)05rdw%$ zi54MhmCk@INi1~4cTpcfz*%TYp+1PUkf}We56?|=c@!2#fV}>=lNI@p|F;yaJNvHZ zm-;~<_fcTU)Tiy`*BxvswP_1O!iBqoB-o}2_4F4lX3n&6fJTOQHq+f(h^krs%it{U&%)vI{uMSVSZ-Gp z%Kt0&Xd?+0jedg;Osk`Vlt-k(V51bO=ygvGO+4ZpyBRUzQ=|T~Gg3t4-&8N%EPKxc zQ=&a>HkW0NT|=`T6WNc@#MMVNIBx>2o2}A!BR>Fwi{`1ioyTw1v$Jz0JW<+Rm?%+3 zzfKnZOl+h-DS1uIW*@c0vAVO?&brq*hQHD3|MPQNg6F_@z;@A`1vXA_0D)>Ei41(4 znQHjkgGy3OBm+LX1=SEL>Dq%Q@APYCd@K3qLGCAf-lywS4_Wc8(NuyCc2cTVvvJ@%~Q;Xz^Oj3E>p0QN!;yGX2@DIZD8iyEL>hJi zOC{@L>A!U2AN#|-`3}NrckbX9<@=)wT>2gS{%}g1C9RN8RSQ=pPLsQz4(6za`=Pj8 zp9t1m3jX3O79TKMaFg!_$BwU-7)*_k(Nx7(V<0FhUT0^WU>vR0jX-??9bB=#sy4Ga z21?h6aB+|5SbmtT&P|H^kaT~(S3PYJUy~IVDOO??N=jGSKw`PuZ3<~ zE!V5{?>JbMJzK+U5D|rp6~N4=p*}8nfD0Cf4mO9eM6(3nr0d15~aexr0|l1)EKj_s3P$7NJwH1oyyou_VqSgKy&n^mac>`Ff1<8DQuUx(?cnJ@` zRkM>SK$<;dn~+WS#78p*eQ@SpN71ct^}tM6m6$Uo>F9!wrKN%X zAFh7`l)m%=k$UK6v#00M@GAG3mgAz3p)Nj133~CE!Bhc z+BA+t0<|N3Nc+;TqjyN_RnJ7*0z^Pev>_VR?pqY%MnGb#&XeNZag`#sp!M8;;#UwY zVnejILYq%*z*t^c*lvUoug{5B;p7+`N&Y)orBp4t%WUP5cgjJlVgaORQJ zz)wpPt@orIlRAs#BIw3%cNFI-r{e;YCSzhCJFQH^M@O{EaruG68;zvzi@;rNADuC% zO}B;?T!jU669cgIFU7X#^TN1?e7-%|j9#@`b%Q>%3xE$Tn7(#``po$L!FmBSl7j=v zIH4^^V>b+2=3@z0@x`7!CjB9$QMqE`j>Dxdx$!D0ORp^Xsn+ieCHqxgW#`$VLO`xV zpD$tMN2a0FlGES=0_e3T`aB<-I`KJmp$CnYmR)85tXQyb>7u$79}n6_g!q&0j-MOJ z*VYn7Z)Bs*9>Q1RN#Bi`D{GSdg{;|YqPxZUX`^eGCxRrFhhMB~Kpbxaa81UfVi$@S zDjCExeK}JgJMHecZUB=SH*H?{>FB5OjD~(Km{HyCnfKBB6@;Hy>1z0N{A1tmtW+;1 zIH%O<1OrE?S)(jR7wAA0Wm=Lam^>5dx@%ZSlc75)HayA>=)X(4Shq2Y#zt~ZJ5A_- z{9{|=5X}tqT%~ATs{A;@T2TsLrd@iB*bu9k&jhmH%W&<3yW1)?rtHXIxI3L^XuhM^ zM2cLtUzu(!$6xA2`BXEkY-XHGquLA6>?06$Z>PS0DLD~g-gjMsVaI`l=x4#b!TcL3 z%wXSy*eo1t=Zm4iy0pQxkjEXF%v*eGRl>GtDmS&e@AJ4w7tNQ(e?&~RRkr_)>ZnE4 zatM~L9b!ySH9wi^U7?K0d*{ZWH0R{9Vm(%xZJr4HM-NJ_*_&ImKWlHx%R(_Dbl&iE!hgrirf&C8&! zQehg4ovNwJYwKVT6Z0y%#p!w3=>)&}vHJ1Z^Kthgl*#F4IrWsw-#FcsvFs!*I=@D{ z8qAMem!gDqaS%2mg=MH2&8s&j`W$4TcTe}56)nC-Vq*!M;dJ5e?>7#3w(gw)Vgyek z%}9!jQkI>^(dd@eUWV~w@kW`II=qdp1I?adD{u22oJfoVHj}0j41rL}P1z*x^9TB< z^B>qQ{T}MX)-IM$-egYHt`sQ);BHQ|C!?0is85_P>S2DiWW>_?+1EtuNJoX{d?st% zf~I%bHZRrzmLxHl5v;#)za$((3r!hmHV z&U|l1(ebAW_6aC!di@$AkVd4tH8b_wM=OJzCjus3P~DF=!{i&_gG_otTFNtHrxdQ% zskX^yFh4!*P&dXU&} zIg~MslfJlg0z9@Nr#Q+cCHk$!F#T8o#Bo+b*Tw8 zxZ(CVEGZ@xI2KR*uUNCD?GXOqo}ADLWDX(Ycu4L&x7IWrHqqyC~ zHgl=N=JOygvj^QT6TH-_9A5tHw;Vkw>1CUI^$S5+9(}9}=>eQD0JRGkgbdpd;)X1r zZ~m*UifVdxVMzmERT1|BK-}fHg*P&-C4X5?>zff=MJ(4fK z4#46Fw|u`~4ppL7nN|hmgZF|BEIyfP8h4!!N&}{ocZxYB>^~u|K>KuZa=8cRGoAUj z(TA>;kRDLz6<6@yUh?pmH0ShfAjtP`*pRS;;{+<;GUIw&M@_D`$Ac}AJ2!s_`-owA zz!fk!ydx(StW;FIx&}NXem6&_ZfU2Jyo|Ezkuc4f!oM8|TSd(Aru7zxd1RYIVN~$~cowcFalaD^YGGS7>`+gsF2T*f|9?Y{5<{JP_j>U0j0x&J`#D#$B%bmn! zYNrlZf62cD`>JFfTU&ZP3udlPU|`++*ku309@_4SLUCx;wMP<@^@qI*?Jg~!g+tg? z&Hk_^%7rj*kzvdcvRF_!+ho#l9cI;hm^AtWe&L#c&C}AbELXQlFbb5Ji=HFF@(;eF zOrrw1_8C-YGmcKEpzokuZN4yCh0XP$68@m4h?Er)89^kuZti!{ZU#Y-`3|?Uzs6&6 z*$VB;b4VAeKew`N`gpkg=&AR*75JNM9CbE76!>p#SdjC+32Kg&h?jnUzAe(IJqC!5 zm>IAIqBuKpUi0TG$jl1=0Fvp<7Xwk|R33?*9sU zeVHOy=7OzDoH}t-EMS?<+RU(@A>6 z{DVqop4YuRu+_IOF)_NsR$Q7_dQF{%Ci2aXDZp4b|ad1j%_2AfSGSWb4H zbuo@>@mC@ooufz}DHh#cxP5+^IqWUZ zp`6=hGu?zb`rL$T9>ueY=Hb3m=9TA1)|>c}Kpb+1=*6=W`7o>hQ0hgoK?EInq?N|ABTv`eqfqc$vO)6*`Oc(^mIa~!#DqNF@r&C`ExT| zQQVZJTxK@wftOC$%CA<%_Jq@)-R=8&P51rKt;U zR4ID#qNUv@al(RoirDEQY?Hp*5mK&m(^hfXv5Q+jVf@3g5lQx1PSZz$jt{*rdN~JU z*ewW&Qip&Lu5&A<)QKXs55Ak{jv#d==%;1lXr^E$Ac|?$-VK+ZVH6p9%|;f znuh4APs=8W1_Q%T=#Cmn)H|%BL-hP>T-L0aiK(#4X9=+Rk&vJr?UUcjFuQ|OV?N`$ zrCM#0f;Ui}wp*OOsY5Qq#I{(`0pbTXTaM^~bdf2m9US}J^}g5A4*pmHF$2tDZ!iYm z!Shuwb39g{y?ngQakn?WvKOe(=O;PlN_Hn0D<=RbPLpKoNWAkeXJjxhw=mpLlXts{ z^G=AjaMbj2U3|vA>IH;ADrqL^A}Q+(3blxT)g66;{q|!sw)CnXpNtni`_X@>XtF#1 z_T+?w`4g5XGjy&R6(V-41nGuDp8Xfjv`Ve8mXFj`$7=RwTJUc1pG}KkF`d$$CqPHc zpJeY~{YSUqTpCV@`B*R5eP!B8RrU$H~ z-UoEOA|G=X*3D?jQEypN2g=Av^le~%GNu6q8CUAn>qB5a1=AFIa}Dg;73xFEKi5)$ zkc=xyX+U^-c<5GKpl@3B_1k+W%>E-2{rj}-N;J=f|Y(R27ZXrw%maoK78X_4?Q+4Yb8bM+~;mR|JXn#!pM=&pl#0 zLPPb9VL2R&xrJl#Y&7I)jB5HH9t4hLj9!Z8@c3m_#SC=rDN8UNhmLvCpMcDjla8}e zCg9OZ%qM_F;lrI(87&EXM6V1n=a-ZThWtxC1Y4arKCjXU(uK{wekdm01{bOu`|$gH zK^9cL!!purN}K|PzN1*zko3hLm`d&sZ24%4!7ceB89z7%hlohjK!A>>*x<#$=3M>< z++)eNxGuP1qi6_Le5FsvUf`Qyeom|T9?}(>MXrcCf#pVcmHnQ!rYg_t65bKiveWSm zDnX=&&S3}z!mq{WG>cpd``l1ACGYT=T2JyFrqMq^GmC8aTiEkEY21^R z3n7f*Js2KQ*ILLd>>xX#j1k)k+pDK*FP}Vg{HG?K3(f6dfsBa*7_<%s+IC>r6$}uWnB$_ zn)Vu3$I&ig3F2kSh57D92O>j?rOZgUYO8Wse9Z;xbdIb+drp*XnMch<@Ybau&s|2+ zB|dxHXB&>N=Zx!c!{a{!uLwcD)of_2HXXZb!nMiUuK(zBrfSB#xkxU4a|z|{0S4b> zPImA3y?J)ELcj{X|EoK`3)jX9XCP||C`ZcDmr0l1YePWfsYazbY$Gnp<-qGy*={>f zs^M^jtAE{p{j9kR3+Xh_M(q7Jy0zIRgQyfce9xZ$;$KE}5l(^6|5cku79(n0l*Sat zVM7n=4ObwvDHdc(WHloF&kcQGyX_2eR%8u>4P%c3k}Nz($#EOvpQ0ws6temVd4wA`90h*R z{%t!59d|Yd@^g@y5bI(~QeHAvBSJT~=8Bx(?Ow2-Q6-(Sn2IxDyr($ZPy~F!?pDEHFODan_E+UgQVmjE- zAIk0VWJO1wtGBn+C=)kbYAw3Na4%L&9}j$JA$Wz9dSb0f1g)R|?^V(k*wNkApoX&- zTG|=8XH_*TTy&04F#0t@+G2|$j7S^mf)49i4fjemCl_hI!^F^`uiKrKP?WMoBsnV{N8CmpJ3QP2w^A)k2pPTvFTuAGcfla zgx|IlaxKdz4PWZojr9^estBl-E$n!*i8UCcYA4fbfW>PxRhQNA$@JK!>bv6{Va)y%_SnOvgQzyC zIMfYGp`YG|NaV#64K6P&^TyI{@6DBU%H-;x?67vO6T#d}aax3D z!fOq!jvc$`{9m$-z(!}wK{kw1U$+)enT+z5vH;F~yG*aZtOG_-3^)fU>!FB_q>%_j zSvSg|OkCk9fj7q3Dn*hy$zx}HBNke^KV7nT1IpMEegrPRkqU>u-!V=y1i^{G?K`;fc+Dv&<<4~0Dl_$ z6*j_+wng-dynXgHe>A=j#GQa^@ecoW0hHbdquQA}rXhB`_8MlWo7AR4dSm3KCv);V z+JY0tftsk*)=WZ}r=3t*vS_}(wRy^UFm~b-4M~cFdL_jXjY2_+A~d_r1B=35W>*VR z1H6X4YX!Ta6O-u#`@FXU!W7eDc#Y9f<3Z4=ysn~TJS6WDC?>fxyuO=air#^W%@$0(x;%FMn`O zbiLSA9|b1YSQgh^Y(IIAP8)-P7 zd|e~1V+X8Lu5!$;h}d{#IX=)*(dGXV+#S96#%BrW&I}pFZ=f%4h-?UANw5!AxDkSH z5*x~2Y(dF*szsRMMD2!CfneJmx*5*r0^#|A9Fz<{v&0>|K~#t53{L~tBlow7B{!$+!9+gI;ZoElU?qbv8)7ki{-T77XvhIP#>6GK z`pp&DRRHxm>-CL2n@bol@3M0KL?2xwlZ2*FslglG7-Z8aEHswxXqu*6dZp7T%~@wK z&T{IFR~oD>R)bZ?3D#+sT>&=Uw^m16j`FIfi%-(noKK-;+zgKjn4j=1lVN}g2%DU; ziYNG*l~j*%i|)kArz&k0S9Rrjm-MO*JS_$8XmRxoQ%RU!)BsK+y5a0QanKb_8xbAx z`ctskH-Q?@fc>0U6nNrQ;A`iymESG)bim5+(MYCM+wa;KE;65A_a&q!z-{i*RCF!j zsXLidR6W}>?3&`(?X_GfpyY|Ld}MSTRW0cqGr<$ReMhfd@33}=h1RO%u&3VvVg0D5 z|0w688vBl71`r61#cUZ%VQgI^0ypIcG-fMzvy+e-! zhs8gxI#ElyD@@8%dZ&qH*~v^}P1L;NV(!tU zfKFTb(yl?U!Kq=>$ha?OqoA5AUE_Q*O|m;e2oQTdZSFkjkkN=c!D$7WY>mIeD>_X_ zOPcfiEj%n>JI!6I@E+Ff$el9fRk_h&#Cy*Zl?;k(YQG(NTQ1%Nd?mx|Z~LxSH5^or zWSI^!v2w;=biZT(CWb*;##LwI?l<-=Yf!Z_t~f+Plo;C9$uN}vH~yPmC`YLA0Zk(n zfU}rD9e*qy#$9NXM)n3A=p&$|qN_wP#paIHK$4a%sGd*k{Fh$Yzv;jz2#~fJY?bf- zobaW_zzqcF2$LMbMrFS~OITyeSG;#HXU7u%r9MdJ#;Ee=i3{lK`C0Lu2diX9aSq`q z?7A_3hbt4N+VUkjccY^lRR88hv7>tsf$wFM8tC^r5tfM2li(;=xJS7?|3$ANY23%n zj}gzr|0H4j=K5xWqAeRMj}hWi!2#rP`YT!2q+XYIP1jio(6J?74djbK`(`LXpsvat zOZv*W(lV0LEeX-^<7~JiF;o1U!l~+F)Jifb(uS)FO#xr>ZQfvIHo51$E@$}{D?xNz zG|`w?vuGrh(2?Rf+sJfMYlg({Xh=#-a?1TR&C%8j>KHFX zJ+U!GU}4szOjuR)m6QTa1$hRh&F4#|ufr+gDL;5y8W(bP0~h%Wrp5E!>?5q(Q+%&Z z(gN}4c;NmF`R+{q=ZIR8pg|DNl9aF>ziFy5R_{9r$-)&^=*U~lH#F_u;6g!!17!2S z?H-D@6KZhvJ+OxT$LfQ-Je!Q9XzSX2VMlJlPFVsT|6(f|nKH-*lYG}RFsXrbQFddZ z9agfvs>q;Rs+xMIQRs29qEtC?fxJ@9!pSmX$*lamxmZ9^(tv`wQ0@620aY+({U=-g z+=xN>9EGHwoT2}34sZ4l6?LYFA|Tz#+oUSvi6olAV$&0}QNJYT41;>eG{MV4di&B- z`Ls1p^vKPcZQJ#Ts@Sk22L)$&NlX2tQlnxu4V&=);+2UQ`1D9%8<9KUT9Ak46ducO z9^we7%Y&1;(iPNCI+=lGmVU8^^kY}eophS z_xS#H%W$@-{V^hP>pWqNF3LV_JIcX$EW?<8cfv=1LKS-jvGc-8b05L zz~CUeC$#$OoO=M@#8l`xx73I_^dlkDO? zk;nfiVN{NK6tLWVEzHw@K$#E96z{Oq}NNZA;iG+qy~e#hCm( ztM_Q1bfHiAUPUvDs7|6%WQKG8+L{X3z{?v)u|qsr56ovkfUvLW#>Mp$m*#jbyjRh) zs{Ci?L}36?_-?Psisf$`YbY99E;v-MfoPw3 z7zhyyh~)VMLm+i^VJNYRP{;yK>Wp$ckFUCA~*E4Yvv~^Min)`7nEGaSpM_+ z(l1Za+){&JGcyF(BDpZ<5L0fi+~4uB&a0`&FQ_==bGF{){}$TsPJaeIg4fvnH#x1; zdWKUqD9(fOr4%(N-pz#kYNv1$KrDM9wBQa~?plc$V<^^r!n04n7qSFlKs#m{_WmC? zFWoHS6UForRsk=~46oo)DMHgP(5`*OB-C9s@e5$=vWVTo%GdhxH~v;oZ3JZ#o}-8w zvLqGEmMQ#p!4j76%cX*jetUq?cMmC>6;aC}Ja7dLTIAYMlBA*dN9!z^DJUp+^oq=C^XB?pM|S|C(O*?8DZ>)nHzz z*yl41@tUQS)gSWS!`|tCvt`RZKOPP5+`-E0@+cj*oz3{3!pip+OB{DTVRfG|34OJE z*!ymj?(F@~PVEH{cEKgrj>}*CnnU1s6fb|Gn1pWcu?l>4 zw!Glc(gq}(6RQ!u;sV?J7my`QzNAyOEAYvv-{JyTSyE3lHo|&YQtUN&1Lzjq5;$X5 z?sxB_^e*XN$soGL)k5NpYXx)>GE}&{8mBwo9f+e3%#-JpN6Rv>8CIMC4S}O z)sf!(A=AfO%IGRAC1`16Q8JoowwNV_fXgN`Ok^oz%$m4a3QV|DDS@}ZPxZf6l`7VK9g+5ZI6Rzq4tdvYRq6_WuEN2iRvkP(7b)ZZ1UF3yCW;FZDQuCdb-ie@@b zgkw7rTdIpb3r`U8C|pQSxanN&^=^-i{5EEZhRh~s@bN_m(-|<(*-$-@M@|MmZ#>Yf zU=}=yzG-A^4E^I@(9L>J-A=GKmn!x`)ke{ff zGw$_CKDFukhgp-)^%`<|eOXQ1^q-AP^3|+@Imab8yHVl{U;5#bUsq$(Jz_4RDDq_G zbJ>0E@qOccnR(r3I<+tJ{M9VV2cXV{8Bh3&1MW*cc^!z)07H2|c)Bi<@~8m)gyPf~ z)|)uuSy>p}8zsUAnS8NwY2ezj^Hf;t@gS+$5}xEI4h~RHz$y_(GCDI*)32^#m%v$nlN0CZ3R!(bdqoq|sQ462uz-Tam^Iu6; zRoXp~KZPlM$>oDI2S}R3AJ(J1)8{nHIrU6Uu-?@J_$VT`MOki>Q`FcWWGSW-bJ)7i zfJht21@g#jB~V*(`cA&EJi62XMGlog$<7(mD4jl_1tZrce6sKUqlNL^g zAI>Y+t*Be)4O%g~w~AjJUWrYZHC`>BTm?DtpZJum%WXcm{d-@GzpwfqlvgsMH=gkw zJZ?z`4iNo)4g`FH26x!wbfX8iG~Fg2xN=`n1Au(YAB%9s0`xB|;jLJ3_AopBQ9W6nItbI=rq9`bPU?qa}za4KtN%Bv5tYQ%R; zL_Q)SLl$hlZMv2%=(PlH(#_&0!#Fk^;Xp%{$xm2D(1)7h|NcWLR0@%U?BVmTx?AMb zrxkOA#V;@Ivc9eQl81g2*bPEUJc4l>0)oyHwWMR4XHp=q@zd=!8K~wuAZ%;$d(tTw zu`wFFjMw5nVjB(5#!^oT!oFri-2pnw66;4|eSx)ewX=&=+;mLGp@XM@Dtln`!X^KJ zf!nORo4G{b&tER_=PB`v9Yb zRd+S{2^d_4HBSw2isLhAz(=kLyo({`BUoGQNS>|@oc2sm=CZfk@$2X^h^lzzlD~2` zR6@HHq^Ly#uq21jSO9_8MoM;f@R6>WdC-Q$#fy|ziE)DI?M6YN_GQuwttMEQPv&+e zF6G|zvsi4x(C-3q+e zEuVdD5R)DGVdj*xcA&eKPH#&}IvdYEU99V66)yS)Um89E?B5P9T_7@C%HjgQNOS`O zLI=@liN%n*k9?5cU$z~3A^Uk}6?k3AnDID{A8AB{AcFL7+jUl!w^AA6A$*srJ3k#hKzJ>XBB~PHc3`w=k zPt_L4@vFApcbug7T7Njv5|xr-^q&M24Ct#-+;la=Q1p%b2@<2z zT+B-2wp_fLI>86!uw$OFg{+%n0tSDnWzgw`@epxm%HQ}fV?`dq)mV|?q;Tt`P2QMF zc=bI-0tY+(Rb<<#=}V*fh6-k*?51o5v=aHJfry6#= z;;T_M@;0yH)uFl)K2{IC<8X!erf({tja{Hm#zuxyl?p|jL-67^{~AKOLF037tfHRFemlN}pUtSFgyzPd&JFZ>?*sg)!Z< z1SN+=ckb_{Q3)srdM0B2CStZR;_rk789(tLfi-!3y5x1yAmX`${C5J6iFvpCPsdlM zxvpe(U!fqy{r!i1*>e)B(~CkmNOE zjkUv5_=Jpc#EW8MWzv>PNKNGVr(X>$n6|0S5wWJLxRC8h#@LXf0|fUR({9v%WlF8>3#sil3Wl5; zhMfhs4*l(0Y2a=`tdIA;k2p*5mcmncjGXC|~z@ob&*t3_W?vT*x0|1gPn<-R%iEEbv6yu`oxP3?U z2DMN^c1uf)f;E(O+u0wH1>9ioM|2{q(B?k)O-h7e6Vh8n6?a z_Qk5v<*!!o1bT&+h^leyIUsW3TJXd*&uG6OGI=Qc22GQg{kt&4H>Z;l`x46hBSU~N?VkCjE2(6Fb&E4XSY{FkD_Z%(L;r0|>L8QxN&t5C;!{%b%cYd{}U z2mk%F7+GpVt7FBnWLCv7=-!M&tEZ#<5*Er^A{ry_bZG^zcAt4UH>yIbS z*bGOU`_bm8wSdXyKYA6Sv?jIw&xsIqsI*)FeR}Pa5?JE`)GsB5_bZ}Fkye&arb+4W zDfb_O#&w2CW!10g_gVIJ03lae8@bsh3$*}^Jp-z6^_|1~O7#L}NV0;n609VUGvR7enU=x^uYr#Fvo^Am#{c4mv_l5tqDsaw= zgU6dhHD3+ZVOcAGnr0gqZBvc1r9sxwEaN0~SwGM4mK1G6GnWn0@i2ed6L7V{Z}ILB ze2s*&#hLdpCNkog6MRWjeu;hs9!2DFuz2t~9iOkfobi&em49QvYp zD*7S;wIiB4KC^g^VTXscBRa~aL#TB=+@=r(4+X;7N$Pt=q!sCu7p$Wjy~9H!w3T3_ z8@6{NNdD{0;4~NkUd(A~)wxBWb=Jsk*H3MLJEU1Tk3EM(Tq9AoXk?sP+2(P{c$ zTQPHX9sJt>Dep;!&R!A7-vDuPUHf$-6wVepS;wy)&0p)-&41lU$J#-|{fxF?dp<$# z#3vl0NyuVWxM5z{iFUdGgT{H>StXa>xg372Le`=A>-sd+vN;CzU$zD9^sDC|b4T&+ z8gx0CY6bq$0&1`g)!f$a{G~Wq8^g(a87mh~ zqzdj+g#Buz;r^(#(@y9oeiBRi5&h25A9eV|BOy{NQHl-z8eqVMf$%m&ePoR*{0)6{ zvu0wT)$D`ZKk7*}H+@NxPj@HN59__Dmkye&ak^tlNuJr13_@W(g!!uo@@Tl1E@LWI zT$JtzR5Mb^ur9N5Y0@4`;A7WN+z>c~e4Q?~GTv3I;(z%2K80fbMm?etsA8nCXcTdw zMUCQdp+NVwtYd;QaZ+gyzc^h^=|9GF_6zXQ$4^x3Q~6CeEvG;a8{2TWd-B7SDaAjr z0{7Yf6GWI+yuL>siw(D`kB(qW%-wFU!uox&?L^&RpfW3Be<5aWgRY7|DyFeg7I7ULnE@pNBcu=GDnG6DQfkj)7CCYp>DHIwQGe!1j{e9 zArBTc$1BPwL<R<0$r%+Nu(e4)h&MDnTTH!L&^lP%YgIpz?uA+)Pqf`Y zjQ_GyBG6L`vek=iT%ua~OUxj5q=j34jFKySTHV2fJ&y8K)(g#~X;^M7j(jRFH)*i? z6vwhVG>&96qhYI?aJdF~xdf?drWD8M*^_{8p5`!`^baK z?c3Fp*1Nejf5$7?k#GH+A=Viz_`WRy&B^DKn&Q#Qe@$$g;rB{@efJCWWuozFU9`pc zdS0+4_*(GFf82_B{esGO)3P7xM(1wep+%kEi*+Krl`-|oQu*RIP}oG4OaUF`sP$qC zV}n=SzXMhvycgeAdIvjeB?r!R`I~*3Dx=s+{r;4?QSDWSIdD@!l z^Kt4L;6rxi8sc-aa6|l_UAW`^p6-_H?X`GM`d4_e-<}5EQqR^4Px=dQm@g^hW0rv9 zan#-*fs~Ig!dAt2-nN&N&(tZv=au%(eoH>~aWDuta7HUhw6{@%+#6(ks+3>`)-J#7 zKR!|K14f>nk{r?A=op6&Gh{Aajl|mVmyi5UWXTcM_p5>(oAO#Rc=%4ARXvE#bG}kZYEY>8Wdu&j;?O+xkRH zZE{c4z6-~`YGTyZ6mD&O z@jtjV&U^91?{Bwz@b7qGskv!sd#Ap0DUIYlc0!-{(7A;>BIi@BERIQ$KGg9}qf}^k zcW&xGw1gYuHlkeoo81EEyUs%gN3u*oR=LaY-9bUq-UVz#yyvw#>&f3OiaCu-a49NE z;9o4kEZ+?g8vjL5QoR-Wt9WTEt3m6i=oKrW(cDJv<&+^03F~mxFe0Yus!rd7@0CDH zRzHo;nEELHIi;f>A=L&c)6?%C8(=sfI}Z1`qii10J)^65iZtD~ilG{n?YeKkBAP!g zzyA&Q8|2`qUD2fr2!K|;~-zF3phOy&zl@?B2^*71+bBLl4rbI)XPDTzy0#ay> zu4G7*z9IXsq_DEE9P>!%n1-*k9P9%?SZN7;y7Dm+)FnT~99uBr2qP+o7F*zPXr8I0 z;p}i@3)w6>f#10`TS-Gssaj5(?5}xvmQg&tMES6JxP!V;bZbimnsTr|W$!->qv4b#`6KIQbAPS}6$Nv1V|n%J!!`*7 zVaeXz)2*cXIojSD=$^ofrH6Bg;4^XxCAk_T;4uClKmJkIgz0CR`>{8ei%(}C29z;$ zbXrJSgE{v?Q5hUfx8Xzc!qRAT!SL!S+2T}G6&32di9u=pbQN-}(Ua&LcID5o$v;ft z$!^7p!`$jERkxYNei0g^RKK&7@+vuWzzS0O^OGdsaxRfgC8IGH2HK1k39XJN&<~aq z9#KP4@#jU?Y*Z60b>;PIzn%Pge*(x}HtO)W;h;(Edg32wx|f)eS9otrTS);YW|{t> zW!sU?l4{t@lJ_2ylouWYEOd_siQyoO?H?Q8=3ZX%k#|%G5^&JqW#N8@JMl7l^=dd_ zwEltn2yEYKHDm(yzm<0mN=?l3yKR`l;h}|X#o_odO97MkLuR1K$-(eHJ}c4Zuu7{D zszkzlP@vBI40IBnp-`)U@Y_~70ew6BW?ikbWOxLKr`1AtRF&2LB8Ekwpe3}O#pUH# zXW7<5!Qo27fzFP`6b|SpksQ1Ao1(A3!rUr%is{ilgte-KmbI%RvMD`ta)+fJRqbaO z7*H_&lc1Eqh>xO)RF4)$MI(D030_KaT6W%`F9|s8zGxw~03Ck#BK*+3 z43~mhyt^Y!pyA=QA_6QJxucAy(0X@EquQh+`igG`_%NlDq8O#Lsw0?E*_UaEcDJ3L zK)og6Sz3B}PA$<#_ujEi7x-rey4(^-uK{S37VAr;)i5xnwxS81Q^Ss!+ZDwnp<2y!E%BtY}C9-nZPU&C^`r zmeUzT6iVG%SY273L_HN#xK*y5k#`eFe0yyi-6Yi8xZ!mSFP$IDxJZ%tX>BPYm8-Cd zXvbWjz&P}T9%2}g4&N+bz9Nf5n*7+xYS&CFiFfgH575x>i!K37&2QI$i|va@#2YX}lj@Kw|vogCip z$iRj*SFobVEUYM~kotQn!KcA*%wD7^I7lyfK=F1!w$ABm&G}lC`OrFEPN)JNArWyt z>2_7DwuX6-{0E0*50T5MQ)D920^rfbfviZ(uyc&Q8n@m&?2rA^^-o?peC<$ZNadZg zt7iCslN5>nRSv2ZL7u>LQa?yX6zkGhjY5#EAyHem!B7W1VA{u@uKNB|jl4UQIG5g# zBSl#tgE6%FnRu_H&LQHY+TBT7JGpuLQ8jtK0h-Da^$)rxteV2BrDb*T^)!5tQe$h7 zRfnHaw}^OasAn7UH>pGA$U(2o^g3C~DoZ?KPxsxvEpY1T*5B8_z1OL72La0334BR9 zEyS3lBci|&3BDUpjjY3Ew0?;SMTaL1boOYl49&xm3A^iwJW6yF{pmb8=b|0?M3N3i z!>d1l?wSHhcKTL&auY>ujD>{yk_laL6d(2|w~1gV<2qkH=mX1?;9$Mlk{k|leBzE8 z=#`h$q66UcWSeI6q`)prD)v@#yA&xH3JFfr`|tQyp6xCfVjSV-!ZON=^0#1zZ!PIT zH@U7M1?zlZgM`MYyfs8p*}okEcs|mg&b#DgwG=Eya2f}0p{SAwf!a12^?!6+s7L^$ zT)4&y)Zl(Tvhu@6!YupJTkFIqbZyj8)W&Hg&uGIpNquJJuTo}XDRddn>w#=P)+*=B zWyEP_H&T0^pnoOTOH|f8#n$2yx+K@uCPV;I6pg&4j=^H-zJyE6U&CH*W#vsKa4B3( zI&v6~bOmks1M;B?UJz{fDAbf9I|XYa3gQhRFjwpGeS+Jitg3u$1$Z^BWQTUEID7D| z^I>*vvOGxeY%>mR2+`!BRIZYtnb*yD*QO$4dmU@=t)q~RZU2Q1LfNJb(zuS=wPC=8 z4sIQWAK8^G?%j9k!>>-E9N8uEqzrafvKG1%6CT>>X0!}S-?N_CJ%udp(ZbPOztIRI z!LI_g`%%Ae;aivGbX?4vxSF6HyG-Fq54Nn?ack!cxwfH*r|!NlV_dpg;f~~A1L}^h zGr8w$TsKj!?F74GX5f5>2ip1YD(+qmLmI=^k*VH6`EOG=d#~yZ`jLy*zEp*p;*Aa*-NvAU<`QdjOS+)+{rlIc&6i5JV1FUW#_hZ>M$cr@^|B#8mi%*_wqTp z^slAWYYf0#*QM0WURm+hwkzZGne#{-1vef?+tAhq-@rvi9^h63(Un#PmaoYZEM!9< z*A8QTR~kItR&NrDPKTZ5dx|{IjS`jq7g*);DDaq+w@!lBTs!KrR2@UnPj~gqnT%<1 zh-xq8X8ILV*yuy-Y7A^hYYbeRndvAbn=&n>%>82a$e`bn`v#0(J$~Wk1@rUS)g? zm_j5ItzYCcgnn_x3hHDZiMG!ZPZ1+62BO9e%DS=({Z|q36+Ckm$eHOem2Ox-weI=C z$^8@qDceoApok$dL$Y+}oJ2LDxYNk}lpI(3u2oN3+Y9MB+g=mrNeh!m))RA-qc*v2 z@-mVosdeShcCxs4?HrI9q|~7>1d+ddy&g=$6}DwdW=Kc*vs1 zK8q1)D5dk8;c;DKlF-JLeTP`1?ZLQ%$je&f(Q6sU(g8q4UASg4;t)A*Ye+sM8c{!7pXsGXx@giU-C62hX@*0yYy+L>Y1ru&yO5z%pN-c7dc3J3U!e|yvY2JARa~P8d{is6>Vms9zT6~erke_QJMY( zZ)>s>377(zF;T(Uo?M5F0$NrwU0xlKNxNX7$;qlfZHFk7q2_t z^Bnh(2Md`h0RPVGZxn30EDEdet{Gwrl#C3nDzVp(C6o`4I?SaR9d+!;J%?j8MWdRG2vJfFcZi;owWT;We0+G2|J99h`t*m=F5baC*VrcVr6 zMv=clGK?c5zN_LP^jU1p2F?$yBVVQ%Eu9CrFOB4K^2*p|1s~pimc=zUeZEb^E>6w* za1>pYpN5ZhkF`1tBj+DJC#N{B5^xa5-;0)WslAhSZ8SP8L3RAL+Fcfq&tuN2T2Ud0 zygEF@bZdKE@15{Evts;#gCo_xHec?{ybTOq7i#w{*In@#m2gAu#nnU^eZZoNuf86+ zCl@f+4@GXttLP##!~-}(?LS;_`?E3NceAX4d|s(0c6|q3Ab=sCseD^o;GOBSpOYS+ ziT2g|YMbwLJDo<{vf&OQ4AkDGLunk|YN$c3@paUjd{Nc;{!{4{hC0Wj|L*F#`M(`U zLvHPnVnXPq#yhEk?;`}7zMu_sKn^Pd@ACpGVSMlR{yHz)Rz>%fI#owJRv-<`_e?A+ zqeJWh>SujF&SxaOGw~GX6z}G@Byy0>B@3puMmdBlswa3>E!F8?aqYnb$Ac6PIn`=sG@C?va_S-0EZk)lof`JB#3d!X-}Ed zxwZqC*K4!NI&RwzcK3AMfo=X#KC?SdfY#zZ$duG-hV9{2ptiYUk>`h=2lY7o?{)rE z(N!y>If#n|GMzMpcH?l56Le5?%x+kzV}ZfZoT@`(ESA07B|rei)3n-<#eW&0y0#UlU`z zbla)UEH$&&14$C$wvXL23_?wj#)H6Yg~~j!MWlCL&3fG&!e|)_#-~~;L-+(~I`?m|4Y_0U_)+=epW>VO%SRk#kCfz`o>7`-?YwIT>YjrkHpvf{ zUSQkY(5?MVunDC#2Yh?S%$Onk%58l?FB>F86_z$BtK1Tx7In+T!x`RQ8Ru;Rwq{qaIDtq9^-*n-mYdheF<=Wxv$Pam3%(t;NxYYiV555D;g zp(fpmN2uC1^&7DrvDSsaTCKLN0MnZv{TubX1IilDo9UU2*2-mx1{FR{y;1oAd`d#V zvN)XRCvKreXUe5qF1UfAA+`SGSW8SZ=|5nAtt$zZmcYhiQc+x6xTgU!KkmS&&YLJm za0{+LWTF5}_(mD787?nXCgwhK_sh)GwP)p4GH%uiGvEyZyqL= z?GTHP@?2fa=G8Iupzp!O|4x_6UFR)d+?{%Ww|7HLNrPwvv>0ODv8rwhMzY77F7UFn zZn{Ed_A667H)c$=)MLEyTRHLdVI1*{xE7s&Y>esKFp*bOUd%M^q>q76F!`9mPZfLk zg7u`d;`{nrwSk@9#v-z`j;(@w)-w3YBEKHPkHHnD2o!zU*h zbU+lyhMY+E5X%?k-3vNL(KdY@D$Mm{kD{n`lyK{=H5o65I@M#G={rW8?|b4Z)UW8J zxbXmUPfcU3Lj!6D!cH@0n`*nzTwfA;`A%o-)mcinuZLMICnV7Ve$qBnS%3Lq zii*^<#7#sdy$Maej3B=B##_G@t|3vl>; zoQPEdI1|OYli0E^O(#CnpOl0N6zK5hF7+?%4U5H&^YR9^HL)VX1%2%yI)HZv;oqf@ z>)8ir2bIcgi0VZ(CA%MGF}C~0Z>wD|Pn6b411GDJZ?Fbo0B>p+@x`0UD!1?<;V0YW zbG8B>=x2}fQ zPExq3!hZoc?mg;#nQ<$PyXCP-)_!APvW@SaO_Cxs!%Xv5XZ7?NJidyISY4~*1T?;)DR%WJ+5ip z<%@vD&Y;CYRB)ORKzR7KGf}&vdksi-wkiTd4!1C#kF^)ex;p3{Em~7$d1{Go>Lt4j zP>5z$9xSSl(?7P#66+b&5WLqV`TD7h3ZdV~JqfE_l2tv;BcAyG-S;#NY0jk< zH?ttd(2Sq6-k&Cb?t$mUf_lpWzZ2!fx)f{2pffC-9mEzosy}>O$o`^Zh8% zC$7$*?YAp}-Dt!=fg)}<3Y-Q^SULr}T?81V7zwV8h%A>R>nS=Hu}Ikns@_`H>UXZ! z?{dnk1P0Z%$&CL=O4d`oMFlmTRv*2)2&z_fUQlr#Z*^S}zZ+38K7k7AZKJH*fZS=7 zcnl19sX@+_f)i)2)0jemvA?8)@j%tRuwdKit{nd4_fm!6sgQ;Miv7U6nqxCbKyVKM zKrYcCd-WS?;Z;qK(b{*X@=m6yx?J@SU$$K*Xjg4)$+n*KK|xV{twY%n9O>rXl1>xy zUSjEU{kakD=K=RrLs*f;CxbjN#dUp(xY-W*TV8BpJ}XXg-?$ign-gSt>MoaLg%xWFCOd?4T#Gu15TuudyRC2& z>O5N1n(K9vyVU_C1G-nfI%>kgst8DQP8X&nxKCm>HB)szniY*V4zv@NtqNG#)6E;+ z%K%lJjljJ&Ux)Lq7B{wQ^U0Ijdw@X^U0T34ADH(n>Z76J-13Ke`y)p}O-`pKW>z8> zEhG0wNq=FEC)G%!H8%Ib;;wvbJlcW$Y``zGbwE2f%LSi>`9&R0s z?VLXq3Ors@oW98N^KpV{cV8=t?JQMt49wBEGfS^?cqLT`{`lm&eF)N$&w(g4l}KcLy&Uo@KVZU&n*I4s*P| z@VI$(;Hmg@d{6381aVHOw88wQ(%tE*FLfV0e#&IERi9ms zZQ~eDgJQDoy?DQS*kYOm zp}Uk&-uXE|<>TPATky2@K$-ETeJ*Ty*JJUMvYoj)zZ{r`R758%=GQ4AR=Z7+TclVHD+y4Z^pR52*?=R+2wKAKgQna3&4rB zj)lN~S_2A91|y*d3D%YosmPk<5spj)&WTUOZ6iHgX4DJrbGAGK-hMgeHYfgsGlkrB zc!P6kVgyJ3$I@4ZwbeXtm(rHv?h>T97AfvpT#H+AcbDKU#i2OG-QC@#SaFBqgcJz` z^5*%y{}0K|o|(Dt**(`ua&mTNn?8G_{{Aq-_u0+O8x0296%WBSCOJX)hTKAQaFmI~ zWcKs9Be6y~I=y)!JryS{jd*vY^JB}B)UTH0^Xm1|ee_l)3vNvT*a=C?@prR~TClt* z&w1zs&1?(R6X zxs^^LRgNM=j4_T%hu^~5q~AgQ?K(oqPcs8R#E0f@U{}$qAltsFDZ%!>+zc-lVaIp< zD;}u@cN_OfchBQbM@@n5D%wPS68EzcfT+4Ju_}(n0gX<%Em`oavO_2p=w^Vkxhf(AFK^%OuT5vnXJpQJa1kmESU< zz15;J{y0z~rxP(CkM_;XSs3TPw~#HO^8xd7j<>G1z|fXGurgusnkb>FvthB>#|2gyudV+ZD}PrwMX8fUSpcURYs^jikHTv6jVG0 zm|`m+KhZ0l8OiwS5OYmGi#IYB2F1iaqb!ty`r*MuEdFuR2F7sAsXwBDpiPK0wl9?7 zJ4H9yoQ?|8VUW>8NE}IVD2Y0t$n%=^tB`~`glz;+(wvBWhl~QCpN_>7wI$jkzIliY zd&b@~D!MWL2xdBR3F3%EcKb27526`{38UnHn&!d-rtbq)TAq;xyTu@|FpjaPCxDDp zD~@6+0OUl(ar-umq!|0rc=YSXM6-jelatiBxwtsW?E?F4s(K%!AKgOsuhqSi z2aR!FxkrE&#pK~Mfl)~=#W@ZHF3U8t^%P%a?&RuI_q$?CTwNg=mZj#u+ZaxTQ~w#! zJ*m_e3@oVQNe>%yS{b^h$k0eWX%od9RpAB357ueKY_UiX#Q{TuQR$OI0mZ*X93{aJM~Nl*zC#9#;Jho{pt%-6U+RZ0{Ua+3aZ&7dPx4wARgI)c(HR z_Q)?0q>-g9cf55@F7-8MymOVT<~RCLca@8$yf~j`tFBQ zCbY*)oE*niziKWzZ=RkLV8uaAegLq>E=vBeK!8z#Cz!MQN*!TH`5;5fnJj&a7RyR0 z_0zt}B&&|36*ymdtN4vpJ?&4jYe2Dvx+TL>DIUAU$wXYaQS~QU&$wU1cJAYrVN%R! zD^`LW)tJMFF)fnKJNUWMG`DoL@B45rSi(;mwunOS81hKE>~NTEQB8+0YCS^`+4#pk;>el2)osMLMfJ_wrE)NiVa+C-aDDUUb8xFqJcmf*H0>wz z6jlun>;C{-`pe6>*=<8c*ILD;?I-c#qAAmCjTD$t9Cj+zZpP3c!`%MI9?X0i!w=(zLlv*x` z-O&Dikw>MWz+KL)CZJum`ZYkeZH`gL82+)9M@sjp#As^qoekY1TGI8<=IX#PO50Zz z3{V7Bpolu1H^-!%00)|Qy0{jP6`jNW_>g&iVY0`UDNp>*3V0wcYvb+oiI_$$tP!qc zbsev{#?}N7W$v@4;v2_O{y2Kp6jI8cdh9>fb>0(8J=$~p@K7@dS{Xrzx)DeQ%Mksr zr;|&B*e_S}aWkuz>lPWUSP1c{72naZEFBfjK~z(WRq=;M`wxDaEypxY)M9mG8`X3+ zr@pUtvHnX%p*O8S2nLUO-{AyOOyE=x(1#5&-gOudmouxqPq03S4J{d|C6t!e|Wj*mwvJz?hPOHZ&q?S@JZ(OCCu;*sl4wtjjVH~V&j^c z--BRQh2pHZsPPvPR6FXD(!%^xvC}xi&aC2`sOT!&;Spm!^M8JG)%%>MwpxAy+g&-pRa8N`nC8-vPZxKJiawSz-ZAH1<2`+J4|K`0{jFZ^veDqB+&mWQ6&}ybeLIfsWIIfOM`e$MV zH-~W}>=Svn#g}dkV$aN+r z7q?Apj-i2JCOs@Vy|@?X8c5d>gXYw)(`GeGE!Tszl1sG8|^1WYLER)Zmqdxj4uUbZ4(xYuKu4g zz$MekSv#h;o%RK3Yh`!QDn*r&6*wFQkL1`Z#b6ZJJ7TIEiU`xzIy`M!8+Xy;X5uU} z1~wV5QR7K8_xsQPGX6TJJ`adASY}5;SBzd=2jrlPOS)t-ScWx!^PmCCI&iKq2OO0dJ{=a>MjxvO6ro1!NzvpugGBh~&#y5A! zv}2I)q;O7MnSn3Zifg|8G^pktnoTR^UZ}spZ1S)%!ag|(ZJzxVDwD$_(XJIn_|`-^ zj(3BpUQ}L}66d7FY`^!^)SX@&$vSCrCAOF#x2 z7#qo3AEbfjG^FgSq5DCK_8+G0zR9+V9vHq-iYBv+i~L%>=PRfkclB>9n~^hF)2zto z``RSjJB`^|M;ya`dtc?OYo6pXaT-gMHY1LPFkZQx=bD@A$9*H$SsYO)WtCdA#%tmx zw_vMMb7QXNPQNATYxx-Yb(k!9)xTzH*j3!&q>EB5>tb2DWe|%IX7W>*ZuM(58c(Nr z$m*gT54~6q^vl*_LP+OUj%So7Uz-OcB5HvHS3fGU1&M!Wpe_~Z>xi<4US(`%Hw!i)O-C3-oCv;myZ0RNJ?Sq45|$u_)@>>5`2&ddKyGVD#SfEqx8%tI*)F2S?e`Je6$f>VfiHuXv{QA0-n5 zT`j5MpE^9FU;0(ar${<0tZwhYsY%n z#%N~=dT*&4dEnQ{-E=B%_S7L3O0?&K*^CHANFV|}LCgDluSzB@lfV2eksMkM&RX2< zKfcs~#pRoD{>l~Sw0Mq>HwfY3zX0y@c=#&8oqpG4*REc)g=4l!-e0@pu;seEv?Yjm zAH&6eZyAD|Euq$&zDHw4sX{F9BUP^wEIaSw4;5od=_y-^LMm9oLnu zev9S`yQYX%&)laIiv7py0EZUiqJ zVEiq$R6%CX22Z!gzW-wv19jRj?|ob1Smn1dQE%@9HNLeV7NH@;OK>3q(mbh|SP|_} z)`)eNsiuD8=(zNYQ!q__CBKV8I02^hZ%rry zW1v5K+@cZqMiR$C-tymcv(+1a@`&(Ie$rA|JdpVGb8<=>>ieyB6wL6gs}(h|0YBc3 z8pqY5-$na%*7w${u;6NP$4A#8Mvz|1n4kNR-bV{6)6dcs#i#s9gJtF|(dm0P1 zYLO4+Hp3f42Xa3*#V@Z0$fYUPGCabmR@<8Xx?W|Tw&TdfTYJ8ADj4|dr|(;s7%t}K z%M=N+q(_G1PTSwP>tZ1%PL1$Oc)i2o=TdJZ&G7!0UPS-ErTPS%4*~{;Tm6bnyv; z{R<8jj=>Ez%6@*{(CbjT>k#eL%dHUT_a5C3DW#VCp)DsCPJglg|GqSdQmytoG>tTZfbVsPojWpq zPKux=7C|XjN^F>&M>7F;y!=p%y6Lx+q0stFG))R+QEOq(8IA7R8-rZ}-OtjN2?87e zlQGjAf=BYUoh;1fp97^jaEu6T?J-xm*-~mN3i3PmS&5zKf8DgxXunZGb~0ELIKi(3 zWGDomSsKums7D-{-#wNoR*H%W+IUtRHKlx0o{^_M>Ec0E9SLB^{r$nDYpUz8sHRcm z{ingg8-gPmloJ5zE;Pv0@SIxbw^yX9d9R>-Ky>;N6eCNUi3ZHnsey%vAz)X?b7&fw z6C}lNB?MnFJFOFnAlT0C|EqgQN8}>PtiIfa_)OKjF^6=l)28LCJS1OVmDA}5rsBcHz3KnR( zX-25K5(IDKQqHT*p?G?1_xx~}ndHOHZkETXp^S}Yv!_12(fA8}&prOevP?oqfN_Xz z0vUG#8F50*sJ5srDc%e*^cIh4|fm6bO!F(A)BR?yg4D8-qk9A4vXTt=>rzR znuAEyVc3sXkQs3!hLbFQAUC{5Divv7YBkfbJQnv|MJ635yy!_%{ap~t`}*w1X(;0L@(%JsFRq^)4BC zDcJvd)i!1UpTTYr#nBh zF-yGtgAn^QvXh?T6GNF;UhU|{mH72&+fNJGcl1&BE&FY?13p?_cV8gt(AK4761FtI=^p0J>V^a9wB%ZebJgU7F1gu{G*72?9CdR=|DKNE7yML}s zH##4VDEgSHGd?YoeCD2@oONHIrxi`$={|kBgo#GbQYU zybeC4fept@9Xa%8M5lrexFRKC%wf=7I6?&F_Fb>BI$q0SOMjgnP-dOx5U0%&|9CQ~ z=W9!J2;b6P#ONO!iBtC9k8$7HTt|o)lfJ#ZiJfS4`p9#K;}UB07x$<$eB}p8zpqv; zn!fCtx))@D{#Y+=G|iya=wTB!C931<0c-g{h1#Zc!MIX}_nj3VSI4dC8_O4*6tV`) z3=!y=B{T+XiyVT0kS9EcyGC~hO=)F(vnDRWEIj06+qAzC-!%F9=|qve7kpLE1n1i| zb8V4TZ8i{rf8+WR0l|w2#%)}I3KYwB;wI9G#UfxilGmiLMV~N{pW8iEegNAH1xr4d zH7%_(2dGMCAHy)czA8b?f~~?(86jzA@~C-;ZQNS#Tid}EXX|3o2ja^t7mw)KbK64E z>VfcC141_anUS(P5oUSRT6ViYT;JO5L#Z+%ngB#h;RqJN`l<{aQ(*5&tBx4NMdd)ECgEtIY%S<7ykMP=!({s{#4M`oX1Axdx3{H1LZ%HW25ynTWIc$ zrZA{G?)YI<|9)|Ae4E@I9eU2m?)Ql`O{I^D5V6y zmN>GD1?k@s(bU{btnM^)2!CnUQdj5!a~(#n7>UbHx|>Q#IX%*_a zP5|VK$cgI;ZNkn^#)KQ`oCw!A5e$}*!i&c>mx}0ol!G>phfb_7icuB_zOXMlO>s;o z$8q+5e>`z3?gli{U33aLrJ(Cu9C5D$G)s#;#o1(#Vi}PKW#d!LV@q_$%$b>ftl+FB zrP~SKaGKFZTp=%X7FBuYp6dC8{rRLVNvwLkyQRJQe&n`sm@JDV; z+Jjl;eBojEvzFYs5@W@G8A!u&_O*_yxH5-7`Bi9Vomfa>tWOMNLD`9kWe@N}Sc!H= zHuQeSn{tNZro4B2BG!e`DQgKU0r`42J$hB;jb--u!u`DXRcTa3tw9PkdFaAK$D!GWvAyQDsnqN2KvX4t?@KxljP7C?cVU~Gn`kn#OMzsoRR!VyoK50ULctW0;wq%O7Pm)W4NY1 zT~QI$TW25cJ8>2}jeDx)rIEHWa_ss$6%48fy3QyolbJ3(eHco+pN-A)8e#@I$;BHB z)iHnh3iXa^_RN9u7@i^z_ldzR)1cM02F$~KX4YKhID7|Q?yF0tuH#?T#v;6D-n=85yCn1il5aoxo!$6$N#Zx+@08`wQHPN(t1UFnB&y zrNekMqdYfWpoUY~(gfNH>WfvqT)7)vesR%gw9!ANVn`oXRVE`SO5#`9JTNA9`2)JF z|BmVOG=BeFO?KconJCluaUK!QpM0M(0TmH%__d2sO$zZoRuF6X{~VOd!o;l%ustG= zDh>L$ne_JFXvJgSIzv^snlC zF=G_?r;M;JHectAbK$kwJB2-L?>5iftx}NJ5Z5h5=H1+05Rvp> z0H`o8-A2#5ccL8a}af9HRh7NlcvxnKd_6qs#3{CjMy~SOv)lg{MeNv+(Y6J zX%w$e$fV)u3S9>@RQp@g-=o!xlI!s2pYQ%H!)agXV(=>)wyza+cPX_asJGvZVEP{{oU zlB)RK39S0NPR^p*_DL z{dc0a>v!Zr#8ekd_`yo+{VF*RxaA@JZzdPxhHQ!_V8IVy}Pla5lGvRB(4zIc~x9c#*aLLeS##gCoQF zF@gvF9ZlGwEjKtPj2J@dV{)ogHz;&n-56(UD$s zrk`4uy@5e@|SOHM(DVm(Qzp8 zNK5`V>tabcdlWcTZD8;*WeJy&Sx!sQ!Wb~iG}fWS^`Rw8|1;mO0(n#Af*91R(r%`% zwf9~rF{b=oJADh9Vs>Ps9E*Rx%Be-rZLaKRvcx@RffAA$?y1N*;nfJ zO!=Bkxv#!2rZPu!pT(A!;Ehn6>yCwZER8n3&iJaj+?|Tun>5TC9{ck9&S}NB^AdFn z1P*m~Ndrc5#QTKQNDj4nR7mAj#@NWUZ}yzx*gmTieG4KfdUHOkowYLMR)+uPm~&`l zX7I6e+eb5lQ3?Cs=n7YVANkCpSB1!u#~M~G4+|waP^EjMEe1reny6zSdRwiIxu-3N zHmvx;q||FMC@WoUQ?64eFnp9dtgmS_ti2gn;HM4j_A)7G1G1+?Z6Ss(bqw}`wy&-p zcl*VF550zB_?ah9KzmlXs;zj)S}+ojosCz4Am+BI^}XrAFO~ z$Ur#GHrp<~TxGZ|s>I2w!Y2m+%TJ5C%Mj7PY=bP>AI@I!Oba-hp(0qed)8~cgX zmcnRL_Xav%Cm~~#VEO*Q@F3yWEX1zo-P)}HksM?1Or_=;KRujnsn^#Tgbmb>8%>=e z!l=#JZ{uND1Ag)8nPPs4V$WAr2tNq`n?R1^82p zwz_!j4f+}!yhvk)BjJl3-<~Gv%Qa>tKTG5+?;!?IzBXJ$Awsc`9=pWK1T-ov1-Cba zBo3gUx^=!wS(6+X`AUj@S6=;Mx6Lahdf&yKifwPVXe?vWgyr?~5m07%9Ib8P z+?{f+w{qg0sFRgZG25T^qOnb6v=ly+m#811l;Ph+u{;v~kSg?JQCt%)WU@Ye_w@ZY z;_+uiFl%~Tq`DI^P`;p-?{8Ek1(7*AbSGJ7wH;T_&aZ5O&drNqo~M&7N%8V8{*f?G zbj#OgF}oD>Adj{CSHijPSz9Q{J9}wjS=0}zJ78KZzTlcgfliz7+i#`)H z8H))<<^3(mpd>HtAY1&^pi{}87iyY7I$QK^+J^KE!p+Uas~lNuNgJc{Z;n~DyKZoa zw^?j1frT(fA79&1L$f#M2WPD8O}xaiMdC+?n6{eOjpjFf^JGZ}bEgAtigD_9wE$7UHEaF)DhKJGg(ezK%I@DXH*V95tHrSEQ>&rO5 z2(?7x=tEN|vC3U(h>R_ogU-Gney*Pk!kQ*ucZXdYcald6i) zlq>ViJ+HmnPu`>0@-&vEd1LWU<%=7s_A#-jdT0^%o6&jW7>_DYFml-mumfJ%xN=em zbN9p*c|ny?t>I%WR8_wFp-6M(`yNJ`t9ZG4QM%Dyn5&v1r@i$^C!^U#F>AU8chVNg z#=>{HpR~Uk;iVeqs~1Lpe__t8E^jC*O6T!fpL-BFxp|?SeQl^)TVLe>cW&{{37-g^ z@Sh0nocQ!=&xq(9W^?tZ-#aTrJ5~Cjt=lFAC`__q^}kR4Wb-d4IcU?BrWvwX9#~F^8&Mzn3@^Gw|AN_(*XM#UH?q6X=4Ll5i$>;z4%lml zGp)a>nfCYkov<-(Q{3>3hvE%Ko)F+G*RUAjwAZL^vlJ$3y>}d{TVYAsG1j&S>|;C@ zn3hH@-J2Li1blpl640*J^g^3?k7pP&MT87BmS)?0PmcnHnX$YWC-n5L?i%Ql8i=%f z-z$30TxoYH3hZ>3cDO^gTy~<&-xImo*&>e`TDT2|+G+xKRjPkxk~t(oYEv{Lrg*;W z2F~=@O#l1b&MxvITPIre2O}f=cc`=>wXjY%FA}+yGRLlLMwW&y(MR*=QtF_6g3g!X zw?K<~ya%3GYFJhu1H!Y79%Q6h9*-jK{)rioLrn#Pq*e9wnpjwTHN~bFA4EcFTE%1i zH}#5D8_>)1w=4i1^9coU(UDX`lW!#KLxM=Gts81#276N;t&ZoN*kGmHAAQ z0)%k`*f|T%qnijBXTR8ee$<(rCj=f|QJg=KW@|68$tv^+ZKg$a(F<~K0jv6)6Xsq9 zD&Kl3Xa+wk#hoj&-PGCKu%=N>HNHhFh6Y=qvTyVTus&htKbJGNerXf~Jh!cI1n?G^ zt|T~jwAHwFc*)>5){#-w|=a4ncF(tCe*^}_*zK=vtO^-kqk-~0)?zw zC{)!hpJugu*Ew`j=R#~B=d0a~&z$Td=!!VE)~v^EK&jmv^Ye2h4Qyf1Ru^ zpN~eo1dfu01-}#vov@V|G-`a6oTRsRpX^fBc|8es{W|a7p2#i=LYo-`tC)_3|0<8 zBqvwf&~gBi=Mkwu*FFulb5`MB3G6#hsTyotRjjoKQ`g?UyHE}{Ym(oAT*gG@fYF3# z$#vLeu5w4*kH&}#Sa?RRD=}eML@HtTS*n6}9I1NXies5Uk+O4hIy_fp1J+}Hk&@Bk)4Y^CxFS0O2GE0hX3}{b{_Y6BlTSTiQZ?Lh?y7<^hA=q1h-rq4_o)Q5yl5w z(Y1?3%3fuibRD;+kF%ICru8T21}bQ0`<~&M*Col0#Gc5~ub9VbeucvB3b|FqSE9{n z*zWJnlGpC?PRS^u$z2L^5t2Vror*e$Lr@ZM5#mZjHx{%t8Uoct>`dk~A>RifvOD@=*+Al## zPq&b9VYcU#XY~Yj<`pWw?b{3g(7vOXN ztP??UYD;kgwYn!hU4y>tVcJ3h%`<1qK00L^X&WcBA?>IdN4G(qmsfWkCiKt3)%!A* zV=aJn|IibnIPp9F}IEbuDs%~B% zitU`A1#n5^b}rjI84zKW0!TYZD(Q17c@jyurLf(h-y^f#u`0=dz9qZ*{c0Y$DLS#9 z52XmK(w#Dnlw9iTe*a*+>s{>;bp<>%{(;IiChp2zA5jis=>n)7`IM>|hF{}sKs zW%2&tkdNe5C~QVUVPTr-bX2ryk%3ggXvLooaN2tJaNs-J`T%4%NPO|L_d?^EQ>eLY z+jUK)Uwie;^y&R+U$)!t^XOl7*)dzvtO(TfGl1>58+82Bmi_zsNInTxalw4lY7c=5 zY$}SpX-nEk0Va9H={@!J0M1`UWqblc(t#LlDbITm4QEakutTCv-?7mO*+EG3*}L{U z|4yh9GwxD_GZI9RFSR)R)n^-yM6%urgSf1ZFVWf zP|f0UU)ae}IS}1RME~WT&;eP?a2sdkwP)&sDg@Q}wBsz-dBx{UxcWB&7#Ck+&~fU?#~BP0|)VRjdAR@PahK5efvm+daYl4Zyt+aqVPV>Gg2bE z`~+vO^`nYMc=L`L32ex4r`&G$CLbwLcJkDBlVSB--$U3xtXpq=vFH_p%}WjV)+>c~ z5MS+|5d8Wx?a1Fe0}@jKE0wlToam;!E8?D3cgA1KyCv_vlArkb*k!if&n1+cpkpL? z4GACe?s^PWz#_S1%V8helKl>S_;pziI(#dy%NW?>f1O}El2nMGoFuC2(;vK2jrFts zT5dGLQdm_Pjh%7t=JOXx++QYY&+#WAqgDyipU85i8sP;P$b!zv+Ovc-?qxyD0E`qw zXUq{U;yD6!XoupN0_Z}%g1y6FJ#=4}c2lYsW47e6MPfbH08?8-NFT9HP3W1iJG&bp zq2zHnde!|5kgb;Y^$4^7dGRzb;+b*#1%>U`;|g2p<2@P~oX4jq2(133N;XZhxVM8)0=;2}diOp8FG(*Hz}m`F}h#ezqA@BmrkG?FA-Bch`KQauLd z!o}WI3ApHmG|oQxA_Ka%=%B!Z-S^YtUEdEF9zNXY$-jU$Zv9oEewf?RuODj*ydSfg zMMv7|b~zxV9mW&2N$vTJujrvKcrckk2;R4nr8^~`VDbDFWe7g%<*=1lgqL$GmFmI;w5yS#HI zep)1M72FL&y@O)rem}-ke#Q`8ZfqTz^)0ThlLwlw?BKG9PFj_r0dxSYL0uZlsCzGm zSeuf)m{;^pp$CiZFh3Jf$VUSSiZ35lnU&g9!q3OK_GDZcHx+vkwk3KIuPB|uyCw{8 z#06fvZXfK5;s0(PF`m8KB#J)m?7^J`YSvPVD@2(P(1I)Te7ZBa{9IDJu@dOxi8eBeP$C>e80!1P70hm-myJD9+ZcK0e z`Bv1~b4`w)6IKULHG6GBvg-J^zYI+8koUb^Rfjw~<3jrAGVjF4%v6S6$EwQmELS$j zjNdtlN*>HCJ1aN(j@Y=07W8>N8Mg~aw*iS}CsjpJ#{z2Zwoo$^f4`6icTFsm9r$Ec zKdXdbs;s;m^*=W)hdTp0-qyZKfz|Gu`D+soEZg%oG4wmmwr(1nJf1}-Krt=;Iyeck z%AswkmF!`-tan<@7(VaG;xu>%&<|zzI3To)fL|h?P#2BuUV4*W5?60stP1+%)UAfT zHMUw&8OYX#fi<{AY9r1y+@GKKHqktgx?PeTVMu%lwX0>$ILqu`h#wZsw}2#@yt)rw z2%9N2y*LSZrL{_5&dJeRufM{Z_|`W1?7IYaKd1}CTD2A5##nLY9ln*&Xa14uI=+Lf z5WFTMipI7&<4mRTCeowfU|iQs;&4TF;CH! zFIDS4BJ@A+UL^cr>`L6{&$D+B__>|)x(8&~u3UFrf<0C z>)e+*1+Me8fL0*7mnn4BG9L!tW?^&(Y~Pn+T`2%io|=SHdLOOH$ZPsO1TAIGdEL(=VuIdd?I@db+SflXpicxH$!b5aacXCl1M-$$ z^yH`cN>lDRki;MYCL2!3T#M>o&sFajT))7)E`Y3hDk%4@_1sRJ6A*=&vGC(`6gKJzk1%FaH+a z#Zbfoh0?7W`6=dj*R6$^4-)g3TSQYHwcOG+P}X|AZ|A|MJuxeNpr6_@=R4jGbW=jr zp)8Ps+bWx$vrlnzzdU6#&%Gml6u)vK#X7Q)?WEax)>WS-~|( zWL-t8-RX3_>(_q1I1mm9xzzs)PR4XJu1oiKUL?1jK$7LHpaqci1)pJRI}!N`P4y+*l#}m1nj42`mKXexg@A^@|!M)ja^Xi7B;oS_F z1gqg!UbwMCHr!4bTB3J5aHO5OiLb%Dpn z3zLDza}O-Jlj+#L{0E)5qk{*vhYVMBO(bJ(w-@V~I%OAjBSU_|PCLK@CcQUBX&w%62!g;py z38)A+1L)p@o9q}~LD+JODKacrN_64shy_h$+Er%x?@Ccmr6+k+@a|`8g0%AD9#ssI) zt!6n51OhBNF}!^d)lvu)amv-Z1tY-+!d?OjjdSv|_NO{%_z+VEcmFj9*GnCsPs{-z zR&Y#K5@WeQ5ji+o<|tuueq8}5{P0BKHM{3I@!W44HU=~3v5m+2PG!EnVy(ZizVeYO zOz|VtN~uG9s|D)+WPKvnFf0l9adHVF2^RMpK7NUhdwyM_z%8e_vB(4O{JDo)NcT?u zW#VjyuaNQFDtPPw;=OsDcya*oSM#TOI9X)q{qYR$F^?uZxA8lA^~W0_bp`e&?W1>y z=1YPiHuDn;AH}cc2$SJDMBS^ow*PsVG33F$;>|lmMdcjFb{Jxi4qu^IBLG)mV9@hsfJUg~LmO!Z!1rs1!t0ziu!;oG||na|RyHjyx!QGavBD zYW!ZU8$LY0|7l)SDlebGc*f%|5YPW%k&eLUySn7n_-fATe*;4OpIyuUOeA9HFP_2w zfl2&FGgtcG1U&pV0o4DELgeTE`-yzc3emJ@5Tj;b_P>+Eu04;QGo)hCV(%jSt52fn z^y)&Ow?cA(?`uoEzY80Pfrg)Pj8%oGAO^G!*JF)BBZT?16aK7sl<>QXkq76uBZPhZ zx_F{eiV`sCgoty-ygwwfzr4Tu@#XJF8}6FN(3|&4P>mpdWq_ZI?@Zn4@MSeOa_ytI zegpV;#^!^p*k_V^Xe5bzI9J8chxV_x(9BMgWN8@A1q7F-IUu=DMni}SOfS!1lmx*g z#>*dvMoTnK=a*AYL8G~2M9p8N1a*&9(0*9FN+FNXa00)x!n?y7P^tqS*5)40eCmwJ zO9-BMmP*oBP|S3h+%IqGV~v0R-<+NkSoCurH%nAa3KTt^KVJAKb*zG??oWLnD~tyl z_m5GJ(KZ*6<{4q;%rA=E$Intxlm8Edhz?Fp2iLtyk;8RB>iB)^EYT#{bO^48Ib4wb z4=t+XKeS?XA!;yv=Q!LbazB1V9k3umpfl^edX$m_ZJxf%P08{9HF$U6Oe^#^fxee# zVuH8(8HNZ~4)|?5{d4@&$6nv9pI4uqk{Gdhi`GtlDcP$p0_3GP2CV>J9hG}IFVcB0 zj^hB{fgjRA@0|kjuaAcxw!JO?Tq*Zn$HOk0yHc(X+h;eoCRFsc=GenDW*0$QsC(kg z`4C44tMgK!*~J0XL4J+%7?s%t$OF{nyu8}kw=-mTlF-n&bw~T@;L+rzp;jX$7do2_ zb0Nx++390gBTg)L?St)`)A!xpKh&Dj1HcJ8RTIk3>K6QSR#2L?iHwb{+sp~&z{AVA z;t6GuW$dHv#9&$H0F17KF@-&N9;W}l#tCKU#SD^XS`r&!8j1Sb!3p@P7s4S9n5!mYK#;ELn9iM;Afq(gVi#?NPc>>n+6ewf>RczNfWCI>+(u+PEA84w0+|ImPZ5za& zOZ5DIEPZ<*)7}60^XcYOktZs-WR)c4QdGojU8%&9N))RHiPRR#u**}Pheu)MTDeR~ zlGu|=$ZUx)E343iHZwDqm~HK5x9{=!{r>QF_ByZ2Ij?ih>%7nFyv}*E8k(f-rz4;p zNz`AVwvf*f)u+=oB-yNE#<5l{{EDz}W=rFwe-RJW-?AO6v%Ju>(j~g_rulOZyDF88-{0vQ^K$K*QZBp z@$}bilW3kMD-%AA1Is;4mnsS%6?xc}8!LfLpYF;c8)jQ05yPkKm5EyeJ9@8P(KrPsADOL5OeZ_1!oCt|b};}&9sx_RHa zxZ*j_TGSR))4tLm4!R{|0$_YbCsF}4idBs_t zoh)q*JN_?TUcO{HzB{fy-OIY;WjOR@Q8##mJ`d_B&AMC>4&8n!6C_V{Ia&5Mrh?R{ z{1gLonh%SEjVV{xqeb#8q-W*yClD>{F65F0v|=061t)L?RkjTdP~Uy=pezA z*xj>0Hnl0rlz10@+MefE@qHoL?FXP|ssUfO%(EalxeGv#Lo=sn>8uTqXjIG#YB%Pz z>{yg4;Xy*HY}@0hQjJ;<7cyA-yNc9~7MCDsvGQV2Z-!Icd{tt0; zKZ+jlv;yW0%LXq7TkpLI5I>4~Da>NVl~-Dm=%owHoCC#=unVwX!b*UXHq|`loN<~1 zvPasH*6F~{YnY1V|veb50|#3@`B_W7L!nokQfwod`g ziADYK^oT4_Dp>YmK=bJMOO6aXwr=9(n@FkL%xHc02^TqyhG9%79aNampmEYcwNL@Pf*xJGq-23;ve#V8HQk;SN1%^ zZcWPTMRxt3Q$&7mx<-g}WlW+T|CkA0Y*GsA{=HeD4fF+{<1@ix^Fj-|MafAh}us1Nq5I?gv8X~k4V9^1+8hV5C8l-{?dMg^Lsli%hqd&dLdpTkO>t zFfTdnR{WJjF6Y^565KW*CYh2+%y9zyV5h%0!*dXz7W@zOC_t58kJ9lqkX^ibO}0Ge;iBwqQv4N`6cWhVMjhD03ZSy5Kf2SbyNynBo18)8#L` zn5|0W6ZX<-+kWPd4rMd~Pm-jL*> z9+uGj&wG)Yg4s0Q0k(l}(xtkaclf`^No}n6&5bal>$izFTb8hY9kD0>naz#8z0qG=65NjFay`b3Htfv5g!OOj2H-iT^;D@Zb|h;KZ3vuC zov6H{IYh_^nooUN2|)Zktuk8v8?Qm$UGF^ymCJi4XH4KFgLL!MPBMF0i z*UvKVq{3r)vc|vdW^TC85bHX3)xp17=6}{6O&X4U*g+F(>u$s^<&d813YB^L>Ih%i zH-n9$g-@>#5Qz9plG>yhcQl^LO!Mjpa(Ry%YaV%dwN48&F!WQJ&joGQEz0ba-)x?V z90+mM)~WZ-{WrmB_~20NKuC}B7u3-5IX}PEfHfh-hyXy=;f+esi&U;_%>1TX2Hnpm zq+YFn*11eUa#4n?lL?O%r!ttCe^t^uXR9Iv4b|lZ=`l^kL6d5R^mL#(r8u!G#$#=W z38gp+BywM^3PDK2nu?9SEg_Tot|qe(djhLT|EakEFRSy2(L6iZbOFBhv;zy_(zJoF z@=6kazG4eQ>VINr2Mb~U-4b3llRs^fjO|5TfSjqr#o&Hr^XIocnVD8*NU~eDV(>w% zB~0e$$0N$+{Y#mM=-@f^mTw>t1rlKk2`$L7J#P$!pSgNRP=3j0PCZt&yqJ`?r&Z$I z2bilv{r|$?#@7W2b zEt(G43#Zd*N9=_Hi%ksGzS!x0F}~+=4Ta=9c~;sqP%=DpM^Jf(s@t4n=&vlR!6wgd zca`0e-bAlfdNyWbcUa)c=Y0d=%8^QXe+?aqqO0bKX@LP&U6+7_ecBH}fTsVFz~f$diEM8Bdn|I!O&sldcdFn5v%jt- zhW6rKxBR_0bfJ+BW&iwBWwuC(Hf#3@W3#C#tLE}e}MSYzM7zD&U+IN z>kfT^-Bq|hWJUS?fNqf$X{q2oGu6LB8>}zz!@aer-ikC}WwYMdhea9|TuDM5Ofbx4 zV5;`yj~>Z!p}i12P3L@zRsSQdS^gN#z+69&pT{AJ?>a&|2YAiNa18rv;(C6vR|1Jx z+nIFLv0uh(pCPht7kYK-xRWDj8<(wiSE6p{6sr8Hc*o@(-W)FCjP2 zm?&*~WZa@$_xjto%56Gc%$=z^HuqoUeplIHDIM+9^anD6V9^=q(&pF1#-IzOebgT9 z*Z{jHF$o!=DiXDBcy$|RuOkuQ#XUp{(oKnf$y7aQnLmO1M-eMst)gSiZ?f@Dgv@z} z>*bRz|8>~v_yaLcd*RL9B;JRf4wzcWts(b2t#Ud#lw{j|HMMUKS}H${nn;JxJaQkTRWk-_d`DOw zQztdVpmXN0Dz!VMhUmrLfl)=3TN*@Uxugzt84=gOo^faf-OUwHOUuo|6(*i9;*)oD z^^Vj(nA+WVy)F^r8kIi3-xXyny)>5?<51XA5j0vhkqV>>hfXj|x@1}T@5%})y~A|$ zi1**tO-aIVWB0hXV)j7yQ_sq5JaNeusG9cJW5kn`Eh=w*2Kv+4DHV6Ds-O67>FX&Q zZb(dO4yqJyYPps6AM!na+RBJ)<+FeHHUxN60#y&M3psuvzI<|C15{edH&B=naS?PeeP`u%`a@ix>e#nBSROD>LGViKJIk!icaB6w(;y% zp`Mq`OT(TV`S};IBg4z5Lb;!h0cdG8!sHn!~S7^O&BUxp0-D&-n;w~ z`IlZ7xm#S@hoUPv{y!E+JgbD?9_k|9lb<3iCEicvD`ujz698_>I3S zH7a56g=4T4Js;0P3|S8ZZOdc(kAQ*S6wTyLIghLoH=(EerjCPIMS1Cc_8Rz8%B}zg z8Q2mQLqI&s@>af{a_7E*N^$7nV^gWzUkOv-)7|RAXw>a_>&7e8ATi5nkj>&tPP6Sv z$P)I(A#d&JJR8C$2I-aMovOcqvkn?Fa61O>}H#`mN8SkZp|{OB^sWlG z;u(J>_q4d8MmM&$hF1QPnWeD~c=zbTl=rF}fo*?4w>FEM>`lMQJzkR@(Dy~gP7w!f zrkR$x$ z7)o~^hoLPl(;ktfTHN>@JPhR74JrOTekj9;toYlKu4CvMO+g(=S;b#witdUhBz4$z z7ZRz7j;;*{ieR1$|B-r$0Z*6Fn6RDm?xi3OUKZ_;K$= zCE)A-nQBOfNT~;v&FPSqV}e8T3~7`pJZcj|;Wu?Y%G7cDMu2LNuzUC*pnlcR?-a5| zml=d7MBIN9&_SH9P#?9R^%>fdl6mk`q$LsAE4ht`NzA+YF(b^M*ky(4_?yZDVwGVI zr*%>j6~{cQe+{*^+j*Oga-2#MGy7w-wmQnODPw-N!6`zQIO&ik2hL6wdu}KEZn*`% ztl=bVaFyW$!cJtf$fkF8F~;!#p^IQ8E|yTSv?Nnf-XpCralI@M6%Z$ZCi*!aU9>j#{Ixh>9o zs*W{md~C=2UY~=QP5PIjyFXf*%-0mIfwX?lAz8-$OEL7vZ65YkUfE>fr4&@mC5l(L z9#&2S)G3GUwj6u9IN+K!L-VKGU`Rqp{XKE7$(-^+Hv;*9=dGMb+=m>K^A!)^DJyMt zYW-OoLrXh}y)Eocfh|OHB-4>kilJ>jtPE`5GyvI7OaagzW|mt~hWV%PZ|~(~&&czU zuV^-p{u1x)MwGwz$RYLIao-02v2ymQdbe>1LRm44Joan`zJ~vI4%u=!xeP0HbhTH>U&d8eX z0KGBnN!Yx>u(#GPuUsA5_hbMbvj%#Uy~y{8I_|u!4MS6VxZ5%QaKbu%c^XOuJ z9p^TDv^e$!lv&wxKSq22ZIj?Id1_WkfO4JY3gBxSef_%u!|3*R{kyfu?pBa2JV7Q@ho$Ddxxu zu>@_;8J{q!SFbT zl-}^|UCZ<@iA&q3IGW^^Qav5SUP9FR3G-n~Yy?x9ubs7g&7(xZFVlT6n<>qgo9InH zAUFe9$}EvuWUsu(hUBXF^*IEF#7CLKp=%@;x;y#WgiU;2jE?e1e4~j_j8HZX!-Xa4 z^RxM0{@RxH)umXFbjjx96O8!1F*GP?I8%%H^G(1kDZsyJ7!HDlG!p&)v9aS10XF$| zat6;(!_$xdn zPlmr!Rt*Gm$}MlMAARyeikD+BzxkqZU6*<^RR(5$D z4l^Ze#|z5^U+1SspyC!ZOc~htr@H4sk92wi5$|eq%wrMjerV=F%@cn7-_2S5wZxcN z$3#g$Ef+ISJ?NT=T~)ZBy3ThCCpITm$8p!Tpm}BU6ynE#`_n)65r)nWjgKa7DSw}f zzB_HjUH6!LGHZtr)z2sYr8lyL<Zz0^eQ`pn0|YbeUvTl!Nr2^NKWIPSpzjYq?B9shJ+ zS*Kov@yO+@kgt0YPED=r>=9+u4u<2J+;lvv#x=eTaoW^6mNc(Nx9yn{a;Y;&3rA_a zETvvfy3&%Y`A*Fkj@$>IwUM;EAPghMc@^O>&!xDKare6W;jq@knqe~W?YV0lLoi0i zu{Fa?dyx2gxn`L76O2LX=k4{wh-t9h^Rm&qF9yC1^nvqWEeQ|Zu)(p3^yL^ohPJW( zu6U&>9E6z3=gOi?N!5)f?0LO6`qyyi^K>WJ5AQtD0c4`xTm~OCs?p2A3S_OA?kPQeAwk(5>6Q9 zv4BQbt!;MfRrqv}Ratv1b41fIZXsgrhjEu*5~t!H+T4zNVpxa%U3nO``O&CH0z7o~ zhMAC#iQn}hUQF$vE-j9)>!g|ZQEY^$bY&pV!<2me*-W-*#Gxj=A@hDX)cHX*(v)CP z{Z(X`gtrAtrVHTAQnOi?Q*qz1JkjGzHRjJx^#ccK`2E4fbUmjR9``ZdpH2sl^0!?ly{6tg?I4OV3>@XJu4!l7=z|@l zTsS^+yPc8IXL*!j;msnoGmeF&<@a_OIYvCN4)J|9lZ)9$?6wYZ*z8TY;F*VMx@#wj z*#H>a1cE5Tz-tb;BS-mL06+QysL*?8hbU%mt~bR3!K!U%Ob&;<+Xw#s9y9);%k%k$ zQDPe-R%nWiFC4|2&KA4^>wC?)au0bi{XL+AS^D~p_BPIr87KSl!Klj*!0ng{t7!a9hry0&x!XSYArN)njFy}-&n z2a{eY;tc*K*s!5cxP9hKTA9dq*9Z3vo#(Z1M|Nb1WRu8O`l%ID&V6!`(tA7)WAoN} zy)cLKN4vYU6=TDdU8MM9y>_xqLEW=sBS2z{H>J0CeR}-%*|RJjszchUu#pyDRA(Q^ zQ}KzZ072SnZmlD7YUNq+f}1n_euXc1>nobs7V^+5a@-BF6asJ_F- zNT~mjC9+G4e^miA@lUl2DA(+Y4tER0F-mWJh`p$1=LdfyA@+pme!Dy0>ne1M$XD;f zAy6dJGak}NSa?809M&QBj*=3i47X_0p3C-+lAv$3)>_kz-s)^$&WS zuqgtP2%|v9q%Z)V1aPN``TYOaVu=894GblbVX)3fxBJ12AQXr^{Y7?MZG41PyFrIm z-BxVh6>1e_0Z&dX31xL&ESM6`R)9cZ0Q(hJPcAHv>A3P{d zJ=KCO*NHlW)vl{MOOJJ~42L4-tx!;uE*tI9E0B!b94kX7d85@1mtJPlg8vjJif@9r zIETiIQD{na?Xk}3!IQ;a(?~->w%*8vnsi!tui~5n+MYTV3|6`@FdH0hOvA1kK0vjc z-2`7@_<(b#Q~)-GqW|pZq#jWIH=%M-A8~1vDf8}DZ%Tl#XeiDONvO+=*s!!A%bJ=k zYhcBUHh*2j&kdknEU_ zYr#EN%Ce9eC@n|l7Ho)i2^{SlJA0QorhMtr2QW-Ue|x55l@&wc4K9rWKz9H< zPVff6dJrK~*4MBAbPgOH@&xa^cw6O$dX3s>0q5sgKqCzUFl}%>ly=%HPmuoy#~%Rq zECAikXke42XfYir7@=?6VjMGNPsss#4Aq$l`Vhih&Biul}zldZ|9u} zOY1y@IHleqats6q{%hKK;Rv86C(Y{mcEKTF3lr$QQE5yN;!iTEue62te) znEQaDWq+%%h9Syi?U_u_`6PeQPN_EWlERXpVrzg=4=_SQ&H{lxK-A0Z`GCeOJ5ke- znMdsc+c>N>3<5?u^WFSk1`_2?^|nqOMtuTCLS0j_csnILy^$wzQbF|dPYa&%onT9}_Uwn;-Nspb@ukI$5k zxolVi0%!bv_*tC8eo5PvK4AJXzc=VlM|IO>st`vO_Kdjb()N68dCp(}9hk%{;TnH{ z=L-)M7aWX26e*peA_v95cjaACU{}61e}VMz#C)#$`Mqvy8vVJfA5Q{7P6a2T5Z1Iv z8*hBJ@66;Mz?rJ_*#QiCok zbreP1U)7FD*c-J+IYz{w^DnF|eQdm;k1b2{FuRF%!fd+cB+F40xjNSy8w4y@9hg=l z!L-^7wyjI6!qU8053DU`wt7PcK?}zLvv-A=7nSCv_vRE}Qd1u^`sL-h`u0*_^}VVL z;&8_(l#D!((^v&^uz*EcXulCL5Ae9Qz~cZA>h5bVn)p3%^vjExJ|kksXW4P+V+7xb zu$S-*JY{mfBnMs_>7}*y=O%CUBSn0DJ1I~zm8ka7?Y9?Q0g8qOsZBqu6hqel9#KGq z&*G>wc!9PePvJbd17Ig}0P)B9;?bq1Bx_D4?MPjV5%H{gKdW|_r1b+lh7q6!=jleo zRq9uONM{0qVAS&gfb@G_F(eIMNjD;#O+Up@;kzS~tS#+V^v0xlsk%zJ-_W3{8&(7A z0;_%_LSFh=Z?&m=%HYbzIDbH0@dXsbxl2qf*%Af+DQI{xjK|-z6TLVxliyxS2O6pc z-qF1wPc&o-aa$@CG1|-hbTc6h(fdM^t=RqdpkW#!mTp8^mjz^6gK8ej!_HGw&b9YoALX)mYuSsup*9iJh! zmxC5W3{@C2a-m{l6ym!25u*mCpc661lFPU__Duz6O3tHloPA06`k2 z)U<}YMQ#*L-CILEPI>GUEHpey>E`K-$Xi3Ic^V^fhyJ8ySz180$%JNEf@Spm(er7@ zf)^fn9Os`;Rg1;g0mC@memv)2E~W*!k$KO$r&qO9oRnI&n{==kV*XsYMyyJ$v@OmP z&{u#b=TQ3ex0!6rTjIQ4S~<|m1B_etLb91|gs?eD*d&TuCe<@S1Y}#|9iGaNqXMUz zb|x^cq{<4yeMM98yj~OXcdgUEybD7wFgHh^%wAcx!MD=)M%#TR&Vw2kvF`ES;yZYHa7^H zB&kib`yA(uh=;;1GxFCpXt%KQBi6Lyf5i+OUKTjFa+#XJ7 zRW1Gy_K3Lagk)D37M^gs2azk%=!>r@v@zmXaB9uC@zQMLG1ywl!gTqqlZlL&Q#k_hxTu9teuH2aAdz5LZ*b zxn}I@wXh`EifiOCR1pZKJ#QE&Zun2l7|JS)&UxCKtSqPx0CZN~+Pxs|(LPdmQJd$R zr>??*cu3T~1%ge0;12GN^88AWxCyB4$_&Pl%a^xeEB~}po?RO#t^&}8npqly$0L^mI?oyn{!Go-c@Q3i zya{Z&*_I)m#=kEMS!L~w&viRv&(qA*>9SC37x>`9RGOEzKORM%*60N}8`n z7xGRLY*+ynJX-OCYd;bt&vy?kJ&JiR8ElZCL(vL+q3W?%@W^)^|^@Ka4= z0ZjmZ1@N-(d01p9{WQqVZg zO?}$qFndVYK<2R?j^3Yng^ihpl4#vB<~baTwM z%cjeSfpIHZ{hZge0p+0fcKig}5dM&<2RRmfxHR}QYi^Q`=T^zL|5Ra%&wWF0kMn4Sd7-G#Jq#OAB*a|8`NXX*L z&(y9em;6VN4N^N|Ca~}7!%Q88UC*Z15_TAZO^_RAMMzU({RH+6LqK;NLBWdPN=<4| z%`Zo39PB3tQW}#GSAM^T4BcLvXGe>7KAgvCsCXu^rNO^>=2bLL#=*j;#BMbwmiClN zHu+!OLH|mN10iY^MZiPT;AGwvGyV2&yN2V^RElZ zPgWqgu2-2OdcDq#Bvw7$b72+BA8MufG-8*57?XSI*}`6vm^xpcu~PHp#9hQQc+@k+ zVLUPJpHbsU()LKo89ZtCeAot5u6AoyW?n?uY4D}rq@3*MOu_J?{Ey#6 zkN09c0y_f6REmUr&r;1*8-~Q;N9PifAXh{GH%|RDs~DvmaT)CNbz?i>cf~vl>Tn#r z*XM-y+n*=8*JvGOO6vlysUu4RI~-s6Zwt9ET2Ye@KDQOF{zG#-3Lb_n$r%l8qM>sD z-HM6}9gcq>$`$+Hq}uUJGQv!0>$d>f3H|zXWEdcMngzh07QhQEk2rjY-A3GZ-kxW2 z4ZylQysj}*7x1INE|=pUJ!cpifkll6B+E_?)&w!Sre_E3d5|Ko$**g=+Z_%Id;fP- z0x4;2AX{L0rXo+?6!CzMo81tWKvK)AS^!ZAdE%5 zdaCt*BafNlj3}ZOu#_tnunO&ju}tbIdtog3#SBOEnpRQ0|s;; zA;}F$E%pIIK_|n_epmqQ10b*fk~fj90a-zp6E!y`JqVyBWq_w8t_nQa2S9#4>m{J6 zU{x%XW`VM8p$IME3ux3#Py`{^ha39s8kxex-CvOS#BD+NLJk5b?#H{=pjDFPguV1tf@zZ29koh1gz0C0x$tC0X+bK-E__ zGZewc|05MRk&^9r@zY&0)#7n~!m0?+M%AhFhNiR~r7-}_8VLLCJD%`v(Mz}!^=O`` zc_JII3pfH&mNn^|vNbQm)eZ|R7K2D^eEuOm$OQeS84ohoI-Ukni~~D_%enx#;ix?? z-UA5tK6gS>lumpQPH`a3BTdQoo@&7g$3C!Qy1UCM#N}|F=N zD9+m};7~TDIu}sw>*D~b4IneCLYFIgyRIgkRo^QEu&vStnHu;fI_tB;)m0DY&zqul zSTPiXUBLH%sC=dk7#7q&V1-2;zd8*c8OsP zT?`w-*HD;mQs$8fq-*=6Gypg^Md0J!90TH2(F_pjI)E73A*`J#i2)c6|HC){NcP^H zcL4y4KrziC>VE{Fv)1}pF;vmDU4RR8f$cwbyxg=tI2|y0ae*Ci{z#tu`!~?_-(-Nk zbZx7&6Chq%KzuYG3IMDB2Uzky`9H!;5i?~oxq#rL&Q4f+twei<9Wewt<@Z~lAHP}X zja5f9RiGq!Alqj%5Nu2i&}D@M29vMAwh0^fqU)x*V1y>VeM@_DbgI>mtX1^ z;?3iUwL_P?y&60dy5)~i-70h_v0ojNloN1LYb)&ZkrEuE-LIPDM9eG4WinL^*xWsF zP`NS(H7I13Vf{PE&9>V6qG?MI^AAhX2;3~e7G}m8Vi)F?6^Q#U-hdFLrbmDyTu}G4 zQP4#*pDPY^kVC=I2+{N(z$UqXNNl&X(UqpO>s+<*^o|nHgRg@Ylek#V!-(5@-xZb`7v&yKft ziZ}A!st>HCDAJYW2Dt#VxXck8jTa*V_my~~n-cmSo26MCWm%+q_I+J#)~u z^7SE+iVJNf=G2dK^(iQ4bqV)u+e`}5Nu9!#8xW!!Idl0bgx%49>$OyHU#A!wAofsF zxf%n=Wmo3hqP8O`0qY%HDBb7`uDOBk1GL;mZy}jXEWxsDTdD2I_{Aa=1xlY96u$%ocaZw%uO|bUsEh?Bb#cw&@}FWwzd?) zo}aqH%;_ov;T25HLg`J}EcA1(UEB8*#9qqBxko9EyRo@IH0OFF9es~$qYsZ%kW-L* z)Ni@*`nt9`M2e;$IOt6{Nxuu&kEovC`tpDhEq?sT^#Jncx<_uMsTW4u)ccdg-FGzwmm6V4Or&X&bi(c&TjPsF2PLu z1wA%V5^5j}bNxPN(WYkx>z>25dFwm6U{koY1_A3s!WA)X0jAV%|C(~hd%Ib{9e@3$ zVFzcqPpiV6PraxviUXJYeIqmvh@>m=gnd1kWTd#Ias!feB*C|iH@!qB;mw?DLt2Px z+F22*;wzmjfs*B)wHj$NAit`b{W6oSNGw9a=$T{=xb~t36}{@4?sIbMJV|wOr|#9Y<>RD1pIWDR(ydjF5vIzr z3lRDIkaG_eMwJdpf@h{fd#^!l2Ek#)_f0TM8Iv4~Q^0j2R3-;dA3Kw^!eS!oV*~h~hbmCkB)~_KO5v|Nmb9dC ztMpM37@M}s_%JqUr=)BRPcoSz-&1%^@!z&iQ-_@w{%HI-w=@hmjv#wy^Xr!Kn0YpL zL=i1WWPCl3Ne}g~85Bk2dW|8C2=kxxMj5x%KfVhMw+`ZpzLjs`X}#`jKt(0F(Wx8} z`&%)v)ARfhEUjN2iM115R_R4es>GRJm3f-m!l4g6otZ=J64z-;ZjYF)DymMc1Q+}q z88aMl5<8*|J#-YG3jC1pLxYK_fRTcPK6r;b?C+ z73WaHJU(O_!97(XLe?(A*49jj*S6vu5kq4Pbr*%rUTqb1|70aIBYu6AxEsM?b0r=5 zM(}Tb*nJQY`?n8-d%6sTa5oRD7Fu!$-RB7TT;eB8&)h?wWcHW2-EHOqq#mfl%EVBt z$*&HD!$bxz{{X5GvF4ZVmtyYsQn<&*IWwL%ws*Q!@k;sWBKBJYY(4RsJ6(l+x`8;E zGqU^^^wt}K=0qLuwT%X|k^Ycbc(D_CM5`qIu#B(gshBm52wS&7b0&tIf`kW|!H z#mf+*RnId6rOm2Hm?5vQTZ0*uGiQ}T+Btl^v3G7LB}rdyrfo+9cg&~%baTRHy*R1Au-mk6q+sze zv7Gb*Jg?!R5+I2ay%)8ElCwJr*KjVbgtrpShWt}K8_7V4&gc9Q=?QGb{uVFs}(0#j)NaoR*!Ag zPJg&B>{ihl9*^()f=34Aa#PTa!mpU5 ztPRchqOtEy$SmdcodhyiXe$%Viim#Y?yBie#P2JvZ$`j_X&Sj$PB4>x`N)YtfqQw? z9upbLq|fFOd5O!o5Lg&aGW#J-PXqTL=xUV{T2EclGj4{`3$(t3$V-QJNRfj4V7qxz}gq^x`aB!ag zcY&Tvt%PF;pEF+<7s>S|HFg5cfm*rfCk6h3O@jfDvRO!lPuS`du0q4NOaflgz=5op zA-_ui-?HrWa98f1G-<__NJ!w3pUK>(^Q7nuOJNU1+K&%QTsl+-Q0eky_Ie>0WNgF4 zPzvN%2L?WoA;N!FnQBnQpz+DOvH9FpZG<&C%_9uck_54&2qjxc!$@W#pIaZxUB< zmVZu|KNH1F&EhnowbnsQow?`?`3B{aBI;`%C>9ymFC>_VsVl(PUkk?Cc2KM{pUrud zC7+Z>#<9Q0!qWB;1k4`8T>_U!5}(UvqIcYsd{gRsbT&8NK<7u1d+`!3LluTWw0439 zsmG(WgZpBVf;me&H~Zk?*sb@L4$uoY1v(zG(5U6@s8%*DDM2uOQLHPQ`NUP zYT4>y;~9k?uSg_Q6cgUACUq-{sgRhb9#og_M3ZcwKAQoFag_SE_$&aj`B7_3`bIFZ zU^2j^XaehA(STY%SS9>WfHW5jrMvVtfa*|8ftH;?buNSId;-l-0P5?KtR-2Z9!oyy zqSXoiet{H7jz}`Z2`MIKun*|8OA=gLgc+Zo;^=%KLJ`vDXomkW2iNzC-tg;eO11$c zY#=>?=-jP~rd;m;M$>G!lL|T(otJ+4& zx~Me{ofK#3!cr@(b!n!{$Kj@RczXPH&q`~~awz8>Z6*hDEc)TU2N>3z$WrB(R(aFU zKLqaN>w<*BA|d4`(`2B(Cw?pd?6h1d{2iU8B0X6TC9*c?dU1nH168+rA@FuwUQNHp&j?LdgTmS*>=) z)QFJ&1{vds|J~u8hR1V-gl^s|+Fc{B)!T1^s#?Xc7{to*gaVZ## z5LK-*px}${F?0Hs86Rba=b%YkrtXM(o9?4(CC8kBT4x?d;eJmc?xysibGh)hkk1$G zbP+DK|1j zzPm7T;f29$uY_rwAzqrIL&KO87h%puz!m=76`Z&|@oT&l`}{WWw0>PT#d%CBs*}@- zNgDR5;v(gDsaCTp0)MM*GqXqiQ@`753rSQS+bpRiNv0)-1@aeHbX#a?8S-vI67^O+ zX~b1hAMe&)n@##_LU9!Twf0evINQt(cD^u8ArSA9p`z$2yUw;_1I5z3Y}B*j3XV2O z*>Rkweyr@sUQn17P?#rBSO!p-IZ&7jP#9_nP#8yn5b7vlzdA2NwU7L?Br19Gd?=2# zelJhAYiJp$@HGQrH0BQXhkk)jZ?J6}e0a{N&BT;SpDRt#MQg<=A|+g<<|TCq_HnWm zZn%3Fu|*cf>EzzfWYJCDUa)QRdRMFBZEA;vFfHGaFC6=>)O43>u)W}4EJE^AjSu(u zz?7*t8mZ5}ylDfx+Wku=nRiQ87}m)G@A{dfO7(BpEF7U^V`r_gBbnp2-Z3EBI6Ysf zP5IbKeuCvvoQpK_4hd@BWt4B2A*tmJlpuCRcaS4Y`IoWS3cu@b92?g2<>uPj8TyV6 zf$qA(9K8Bn?_j~#Gg3R3wlr}!=p&p8qcD&*J@ewLigRsC!PpDAt{{#!$Gib<~;S3FI9nfyg+%w2&yr?p72>w?yGqiU=yK4Q6@E;EBnxsJD zAAe%*=SM^lU*6fH?ki=Azz=CNq(P(UMj?u1a#k=@cS}_;>oVf2Qnh_4E|R&}It*x2 z-mH8>JM>Fs@m1?t7nwAiEW7nrhvR0(uOR|ibIrMj_+9&W=E)TQ1Qd5Y>AAF#8zJ@ESOD{bNXPTKES++jh8FtKHcXo8?C^{yG0x z5YTn(7EUwb%Ir~fxnI$oqHQkLhY`zlw_Z;VDe;;O5yU;Oq$)x1%)H5Y?!GV81T6^a zbp6SBfl`@vcD_R8oAbw&Z(Fy~I{ytsx~Gc+3}{ys-fgQz2Xx=HgA|w+IZgYdjWp(A zI?UK#{(VH6y`CcsSD=B~LoQ+}xUmMT_1aQVYe5EI=oFpFtXt1Vm}^Vb&AsQei`y2b z&|IL2oh2^Llw|IbHn5J~tBz1Dt|c6E{uZBpNumvY;ujJI7WMFX4=3khRV@v1HWG_0 z;wHAmKW3O~?kQm#ok=@+{M2;m&Gleyox1S8c8}|GYeizpE=%VgJD0*sij!@Br+6D6 z!xUz1J}D&U;c&%b@N%}dv*06E>>di<;RXtIDlZ5b#9GV&MNDk5dRGg{w zgXn%LZYg>W5cfdY;4`m=doEmT>_b;^_oSe94gb;jY3^QFnjmo-HA`7u#_JQ~N4C~b zAOnME?1g&1=Hxv2;)bmi{E)M(%qiT-kj8@f-x}i$rBCLLChjC`AF_Q2KQd!Mfm@iF zd@Oh4C5x_X%Jo)%-w*C8*;F&;wKxr2P4hL9FowSly+#{@7ez)j5r$3-ISTcve;}@L zc2s^-3mkY_sip%n)P~+YL!&q<9w{!|SF??HV>ST(pZpTaFgR9ZJRu>!r;mlWrm6Q89@Q@M-Q-os@8hh9hh2wS zAo#spi$QA3$RFF`Q+DOl=bmmPlAej565Pfqb%%Ylg&SLzX!aRqR)53Fqg+#9gdG-M zRFh2WhT^gafn1zx&>>|ik5~9{#^xW*HV~T!m8_NhV4k0!pk*$R3fkVutp^0U2S!zf zt0QzGnYE3&X~zBC02LOhQcqgYYH_HqGQQe;D1Mwa08>VcU)4=w-e-5nA1QedDd#d( z9HE+yPZzqVbcPid=7~9)6!~FZ^mz>vnz#(xCcM*?*Pjbk&CAN*4*4 z-n`@*jPS=d;_gr-P9JgwQ_Y3Hgm;=VNKuXN!RV^Y5WBUx05e5arHeZa$j-po)L=l1 zP#kI_?8X0dhM{1(Urm0nFiiWu`v|swT=+bWrCuq;UIpt4$xMd0NS_E+mId_F*J<;= zehXFabRWQ{TbM<|)xX~1Xsk1FEytk^RRoPrrfPW%_I4Ex(Pa@4l=;(9Nc>gkF2d7@ z2GyD8#?NKT+g>9jA!ADuEeka`=F^$gvIoeeHAl%(3^PJj2gV=__U zROjzKm>nom9qn%|hEd&vZLhpZ;A50+X|C{FY60orG?~ba4#xxBuY~2_a$?aQpJhJI z*qw#Phjx5Zbv6%?P;MvknJMR2t;EAv3T%x?+0oR>ugwszDy0l;6Yl8-nt5xL%=ht3 z=zHBN_AP~SwmI&RMZ7ylWuL=WC8#}@<_mY_8REDJD~HEi8}#RUTtK@q3H?xxAHc+~wHpaEqmT&_Q zbvrR?#stP&Irm4Y)?X8JMoTLu&Rgdo^W7avctgH|(gQHU-RnAk^jF)rI+=3kRMJyU ziBAn%n;}F5KIhP$4BvoOIbMC_hYXmObqQ)K)YCDYY}w(Wd)RD>apB5{x5fIb*4%3O zpS*mcr}rxki3(L{OzQ|@jp=FpXj7(AvXqf5Am7Kbn=*~BC}TpE$Hn#nH`x@=qeg>v z!%=$`>csz}>RrH@{QvlW9i#|J$Z?;Nlw+kb8LLz}eBvXO4r8BEsg$k6h8=RQ#FFAu z4y!06rksY^94a9e%3|2&&@eL_+wA^ESkePRn$W zO(BJ`jo@W_&IWa)64JhnzNa%cU39h(BKf-z>*aPXLW1^14eH=Lzz!@gz0nz_84RbSx)XbB6|hgI?wF$jh+0x?azh$ z`^?N@GU|xzLLsGV8yxY>_qk42VOQehiz6}F0i#!*0dtT$TniPyzD0DrkTSFlw7WAk zU8G!iJRVta2bV4qABh=~wTKoM5+{Mp!~mN!m#k=y{soR5a`PF=@_#4zNBgUg_Sd