2121
2222class SwiftBlockDescriptor {
2323
24- private static final String SUFFIX = "Android .swift" ;
24+ private static final String SUFFIX = ".swift" ;
2525 private String swiftFilePath ;
2626
2727 private TypeElement annotatedClassElement ;
2828 private String javaFullName ;
2929 String simpleTypeName ;
30+ private String swiftType ;
3031 private String [] importPackages ;
3132
3233 private String blockSignature ;
@@ -57,8 +58,10 @@ class SwiftBlockDescriptor {
5758 javaFullName = classElement .getQualifiedName ().toString ().replace ("." , "/" );
5859 }
5960
61+ swiftType = "SwiftBlock" + simpleTypeName ;
62+
6063 try {
61- swiftFilePath = filer .createResource (StandardLocation .SOURCE_OUTPUT , FOLDER , simpleTypeName + SUFFIX , classElement ).toUri ().getPath ();
64+ swiftFilePath = filer .createResource (StandardLocation .SOURCE_OUTPUT , FOLDER , swiftType + SUFFIX , classElement ).toUri ().getPath ();
6265 } catch (IOException e ) {
6366 e .printStackTrace ();
6467 throw new IllegalArgumentException ("Can't create swift file" );
@@ -109,8 +112,10 @@ File generateCode() throws IOException {
109112
110113 swiftWriter .emitStatement (String .format ("fileprivate let javaClass = JNI.GlobalFindClass(\" %s\" )!" , javaFullName ));
111114
115+ swiftWriter .emitStatement (String .format ("public typealias %s = %s" , simpleTypeName , blockSignature ));
116+
112117 swiftWriter .emitEmptyLine ();
113- swiftWriter .emit (String .format ("public class %s" , simpleTypeName ));
118+ swiftWriter .emit (String .format ("public class %s" , swiftType ));
114119 swiftWriter .emit (" {\n " );
115120
116121 swiftWriter .emitEmptyLine ();
@@ -129,8 +134,8 @@ File generateCode() throws IOException {
129134
130135 swiftWriter .emitEmptyLine ();
131136 swiftWriter .emitStatement ("// Create swift object" );
132- swiftWriter .emitStatement (String .format ("public static func from(javaObject: jobject) throws -> %s {" , blockSignature ));
133- swiftWriter .emitStatement (String .format ("return %s(jniObject: javaObject).block" , simpleTypeName ));
137+ swiftWriter .emitStatement (String .format ("public static func from(javaObject: jobject) throws -> %s {" , simpleTypeName ));
138+ swiftWriter .emitStatement (String .format ("return %s(jniObject: javaObject).block" , swiftType ));
134139 swiftWriter .emitStatement ("}" );
135140
136141 swiftWriter .emitEmptyLine ();
@@ -146,7 +151,7 @@ File generateCode() throws IOException {
146151 sig ));
147152
148153 swiftWriter .emitEmptyLine ();
149- swiftWriter .emitStatement (String .format ("public lazy var block: %s = {" , blockSignature ));
154+ swiftWriter .emitStatement (String .format ("public lazy var block: %s = {" , simpleTypeName ));
150155
151156 for (SwiftParamDescriptor param : params ) {
152157 swiftWriter .emitStatement (String .format ("let java_%s: JNIArgumentProtocol" , param .name ));
@@ -187,7 +192,7 @@ File generateCode() throws IOException {
187192 jniMethodTemplate = "JNI.CallVoidMethod(self.jniObject, %s.javaMethod%s" ;
188193 }
189194
190- swiftWriter .emit (String .format (jniMethodTemplate , simpleTypeName , funcName ));
195+ swiftWriter .emit (String .format (jniMethodTemplate , swiftType , funcName ));
191196
192197 for (SwiftParamDescriptor param : params ) {
193198 swiftWriter .emitStatement (String .format (", java_%s" , param .name ));
0 commit comments