Skip to content

Commit c5a3d4d

Browse files
authored
Minor cleanups to the JavaKit module and samples (#111)
* Rename JavaClass.init(in:) to JavaClass.init(environment:). Every other API uses the argument label "environment" for the JNI environment, so be consistent. Additionally, make it an optional parameter and query the running JVM to get the environment if we don't already have one. * Remove the unnecessary ArrayList bits from the JavaKit sample app * Import the various java.lang.* class wrappers over primitive types * JavaKit: Autogenerate JavaClass rather than hand-rolling it * Clean up and fix samples
1 parent 912d08d commit c5a3d4d

File tree

25 files changed

+1830
-62
lines changed

25 files changed

+1830
-62
lines changed

Samples/JavaKitSampleApp/Sources/JavaKitExample/Java2Swift.config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"classes" : {
3-
"java.util.ArrayList" : "ArrayList",
43
"com.example.swift.HelloSwift" : "HelloSwift",
54
"com.example.swift.HelloSubclass" : "HelloSubclass",
65
"com.example.swift.JavaKitSampleMain" : "JavaKitSampleMain"

Samples/JavaKitSampleApp/Sources/JavaKitExample/JavaKitExample.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,3 @@ extension HelloSwift: HelloSwiftNativeMethods {
7979
throw SwiftWrappedError.message(message)
8080
}
8181
}
82-
83-
func removeLast(arrayList: ArrayList<JavaClass<HelloSwift>>) {
84-
if let lastObject = arrayList.getLast() {
85-
_ = arrayList.remove(lastObject)
86-
}
87-
}

Samples/JavaProbablyPrime/Package.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ let package = Package(
2626
.executableTarget(
2727
name: "JavaProbablyPrime",
2828
dependencies: [
29+
.product(name: "JavaKitCollection", package: "swift-java"),
2930
.product(name: "JavaKit", package: "swift-java"),
3031
.product(name: "ArgumentParser", package: "swift-argument-parser"),
3132
],

Samples/JavaProbablyPrime/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ swift run JavaProbablyPrime <very big number>
99
The package itself demonstrates how to:
1010

1111
* Use the Java2Swift build tool plugin to wrap the `java.math.BigInteger` type in Swift.
12-
* Create a `JavaVirtualMachine` instance in a Swift command-line program.
1312
* Create an instance of `BigInteger` in Swift and use its `isProbablyPrime`.

Samples/JavaProbablyPrime/Sources/JavaProbablyPrime/prime.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ struct ProbablyPrime: ParsableCommand {
2424
var certainty: Int32 = 10
2525

2626
func run() throws {
27-
let javaVirtualMachine = try JavaVirtualMachine.shared()
28-
let jniEnvironment = try javaVirtualMachine.environment()
29-
30-
let bigInt = BigInteger(number, environment: jniEnvironment)
27+
let bigInt = BigInteger(number)
3128
if bigInt.isProbablePrime(certainty) {
3229
print("\(number) is probably prime")
3330
} else {

Samples/JavaSieve/Sources/JavaMath/Java2Swift.config

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"java.math.BigDecimal" : "BigDecimal",
44
"java.math.BigInteger" : "BigInteger",
55
"java.math.MathContext" : "MathContext",
6-
"java.math.RoundingMode" : "RoundingMode",
7-
"java.lang.Integer" : "JavaInteger",
6+
"java.math.RoundingMode" : "RoundingMode"
87
}
98
}

Samples/JavaSieve/Sources/JavaSieve/main.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import JavaKit
16-
import JavaKitVM
1716

1817
let jvm = try JavaVirtualMachine.shared(classPath: ["QuadraticSieve-1.0.jar"])
1918
do {
20-
let sieveClass = try JavaClass<SieveOfEratosthenes>(in: jvm.environment())
19+
let sieveClass = try JavaClass<SieveOfEratosthenes>(environment: jvm.environment())
2120
for prime in sieveClass.findPrimes(100)! {
2221
print("Found prime: \(prime.intValue())")
2322
}

Sources/Java2Swift/JavaToSwift.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ struct JavaToSwift: ParsableCommand {
210210
environment: environment
211211
)
212212
#else
213-
let classLoader = try JavaClass<ClassLoader>(in: environment)
213+
let classLoader = try JavaClass<ClassLoader>(environment: environment)
214214
.getSystemClassLoader()!
215215
#endif
216216
var javaClasses: [JavaClass<JavaObject>] = []

Sources/Java2SwiftLib/JavaTranslator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ extension JavaTranslator {
581581
} else {
582582
try! JavaVirtualMachine.shared().environment()
583583
}
584-
let classObj = try! JavaClass<Self>(in: _environment)
584+
let classObj = try! JavaClass<Self>(environment: _environment)
585585
switch enumValue {
586586
\(raw: enumFields.map {
587587
return """

Sources/JavaKit/Java2Swift.config

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
{
22
"classes" : {
3+
"java.lang.Boolean" : "JavaBoolean",
4+
"java.lang.Byte" : "JavaByte",
5+
"java.lang.Character" : "JavaCharacter",
6+
"java.lang.Class" : "JavaClass",
7+
"java.lang.Double" : "JavaDouble",
38
"java.lang.Error" : "JavaError",
49
"java.lang.Exception" : "Exception",
10+
"java.lang.Float" : "JavaFloat",
11+
"java.lang.Integer" : "JavaInteger",
12+
"java.lang.Long" : "JavaLong",
13+
"java.lang.Number" : "JavaNumber",
514
"java.lang.Object" : "JavaObject",
615
"java.lang.RuntimeException" : "RuntimeException",
7-
"java.lang.Throwable" : "Throwable"
16+
"java.lang.Short" : "JavaShort",
17+
"java.lang.Throwable" : "Throwable",
18+
"java.lang.Void" : "JavaVoid"
819
}
920
}

0 commit comments

Comments
 (0)