Skip to content

Commit 0f23c96

Browse files
committed
Dev: add mkdirs for swift generated folder
1 parent 1bec723 commit 0f23c96

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

compiler/src/main/java/com/readdle/codegen/JavaSwiftProcessor.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131

3232
public class JavaSwiftProcessor extends AbstractProcessor {
3333

34+
public static final String FOLDER = "SwiftGenerated";
35+
3436
private Types typeUtils;
3537
private Elements elementUtils;
3638
private Filer filer;
@@ -128,6 +130,13 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
128130
}
129131
}
130132

133+
try {
134+
generateJavaSwift(filer);
135+
} catch (IOException e) {
136+
error(null, "Can't write to file: " + e.getMessage());
137+
return true; // Exit processing
138+
}
139+
131140
for (SwiftValueDescriptor valueDescriptor: swiftValues.values()) {
132141

133142
for (SwiftFuncDescriptor function : valueDescriptor.functions) {
@@ -173,21 +182,14 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
173182
}
174183
}
175184

176-
try {
177-
generateJavaSwift(filer);
178-
} catch (IOException e) {
179-
error(null, "Can't write to file: " + e.getMessage());
180-
return true; // Exit processing
181-
}
182-
183185
messager.printMessage(Diagnostic.Kind.NOTE, "SwiftJava finished successfully!");
184186

185187
return false;
186188
}
187189

188190
private void generateJavaSwift(Filer filer) throws IOException {
189-
String swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, "SwiftGenerated", "SwiftJava.swift", (Element[]) null).toUri().getPath();
190-
File swiftExtensionFile = new File(swiftFilePath);
191+
File swiftExtensionFile = new File(filer.createResource(StandardLocation.SOURCE_OUTPUT, FOLDER, "SwiftJava.swift", (Element[]) null).toUri().getPath());
192+
swiftExtensionFile.getParentFile().mkdirs();
191193
SwiftWriter swiftWriter = new SwiftWriter(swiftExtensionFile);
192194
swiftWriter.emitImports(new String[0]);
193195
swiftWriter.emitEmptyLine();

compiler/src/main/java/com/readdle/codegen/SwiftDelegateDescriptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import javax.lang.model.type.MirroredTypeException;
2020
import javax.tools.StandardLocation;
2121

22+
import static com.readdle.codegen.JavaSwiftProcessor.FOLDER;
23+
2224
class SwiftDelegateDescriptor {
2325

2426
private static final String SUFFIX = "Android.swift";
@@ -56,7 +58,7 @@ class SwiftDelegateDescriptor {
5658
}
5759

5860
try {
59-
swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, "SwiftGenerated", simpleTypeName + SUFFIX, classElement).toUri().getPath();
61+
swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, FOLDER, simpleTypeName + SUFFIX, classElement).toUri().getPath();
6062
} catch (IOException e) {
6163
e.printStackTrace();
6264
throw new IllegalArgumentException("Can't create swift file");

compiler/src/main/java/com/readdle/codegen/SwiftReferenceDescriptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import javax.lang.model.type.MirroredTypeException;
1919
import javax.tools.StandardLocation;
2020

21+
import static com.readdle.codegen.JavaSwiftProcessor.FOLDER;
22+
2123
class SwiftReferenceDescriptor {
2224

2325
private static final String SUFFIX = "Android.swift";
@@ -48,7 +50,7 @@ class SwiftReferenceDescriptor {
4850
}
4951

5052
try {
51-
swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, "SwiftGenerated", simpleTypeName + SUFFIX, classElement).toUri().getPath();
53+
swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, FOLDER, simpleTypeName + SUFFIX, classElement).toUri().getPath();
5254
} catch (IOException e) {
5355
e.printStackTrace();
5456
throw new IllegalArgumentException("Can't create swift file");

compiler/src/main/java/com/readdle/codegen/SwiftValueDescriptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import javax.lang.model.type.MirroredTypeException;
1818
import javax.tools.StandardLocation;
1919

20+
import static com.readdle.codegen.JavaSwiftProcessor.FOLDER;
21+
2022
class SwiftValueDescriptor {
2123

2224
private static final String SUFFIX = "Android.swift";
@@ -49,7 +51,7 @@ class SwiftValueDescriptor {
4951
}
5052

5153
try {
52-
swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, "SwiftGenerated", simpleTypeName + SUFFIX, classElement).toUri().getPath();
54+
swiftFilePath = filer.createResource(StandardLocation.SOURCE_OUTPUT, FOLDER, simpleTypeName + SUFFIX, classElement).toUri().getPath();
5355
} catch (IOException e) {
5456
e.printStackTrace();
5557
throw new IllegalArgumentException("Can't create swift file");

0 commit comments

Comments
 (0)