From f3487f24a5717b3f18a41a1bfc8d3bdfbef15917 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 14:38:49 -0700 Subject: [PATCH 1/9] Move java.util.Enumeration wrapper into a new module JavaKitCollection --- Makefile | 16 ++++++++++------ Package.swift | 18 ++++++++++++++++-- Sources/JavaKitCollection/Java2Swift.config | 5 +++++ .../JavaEnumeration+Sequence.swift | 0 .../generated/Enumeration.swift | 1 + Sources/JavaKitJar/generated/JarFile.swift | 1 + .../generated/URLClassLoader.swift | 1 + 7 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 Sources/JavaKitCollection/Java2Swift.config rename Sources/{JavaKit => JavaKitCollection}/JavaEnumeration+Sequence.swift (100%) rename Sources/{JavaKit => JavaKitCollection}/generated/Enumeration.swift (94%) diff --git a/Makefile b/Makefile index 00d33ca4..ab0a89b6 100644 --- a/Makefile +++ b/Makefile @@ -72,17 +72,21 @@ generate-JavaKit: Java2Swift mkdir -p Sources/JavaKit/generated $(BUILD_DIR)/debug/Java2Swift --module-name JavaKit -o Sources/JavaKit/generated Sources/JavaKit/Java2Swift.config -generate-JavaKitReflection: Java2Swift generate-JavaKit +generate-JavaKitCollection: Java2Swift + mkdir -p Sources/JavaKitCollection/generated + $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitCollection --depends-on JavaKit=Sources/JavaKit/Java2Swift.config -o Sources/JavaKitCollection/generated Sources/JavaKitCollection/Java2Swift.config + +generate-JavaKitReflection: Java2Swift generate-JavaKit generate-JavaKitCollection mkdir -p Sources/JavaKitReflection/generated - $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitReflection --depends-on JavaKit=Sources/JavaKit/Java2Swift.config -o Sources/JavaKitReflection/generated Sources/JavaKitReflection/Java2Swift.config + $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitReflection --depends-on JavaKit=Sources/JavaKit/Java2Swift.config --depends-on JavaKitCollection=Sources/JavaKitCollection/Java2Swift.config -o Sources/JavaKitReflection/generated Sources/JavaKitReflection/Java2Swift.config -generate-JavaKitJar: Java2Swift generate-JavaKit +generate-JavaKitJar: Java2Swift generate-JavaKit generate-JavaKitCollection mkdir -p Sources/JavaKitJar/generated - $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitJar --depends-on JavaKit=Sources/JavaKit/Java2Swift.config -o Sources/JavaKitJar/generated Sources/JavaKitJar/Java2Swift.config + $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitJar --depends-on JavaKit=Sources/JavaKit/Java2Swift.config --depends-on JavaKitCollection=Sources/JavaKitCollection/Java2Swift.config -o Sources/JavaKitJar/generated Sources/JavaKitJar/Java2Swift.config -generate-JavaKitNetwork: Java2Swift generate-JavaKit +generate-JavaKitNetwork: Java2Swift generate-JavaKit generate-JavaKitCollection mkdir -p Sources/JavaKitNetwork/generated - $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitNetwork --depends-on JavaKit=Sources/JavaKit/Java2Swift.config -o Sources/JavaKitNetwork/generated Sources/JavaKitNetwork/Java2Swift.config + $(BUILD_DIR)/debug/Java2Swift --module-name JavaKitNetwork --depends-on JavaKit=Sources/JavaKit/Java2Swift.config --depends-on JavaKitCollection=Sources/JavaKitCollection/Java2Swift.config -o Sources/JavaKitNetwork/generated Sources/JavaKitNetwork/Java2Swift.config javakit-generate: generate-JavaKit generate-JavaKitReflection generate-JavaKitJar generate-JavaKitNetwork diff --git a/Package.swift b/Package.swift index 87922d5b..a6ca8cf8 100644 --- a/Package.swift +++ b/Package.swift @@ -57,6 +57,11 @@ let package = Package( targets: ["JavaRuntime"] ), + .library( + name: "JavaKitCollection", + targets: ["JavaKitCollection"] + ), + .library( name: "JavaKitJar", targets: ["JavaKitReflection"] @@ -163,7 +168,7 @@ let package = Package( ] ), .target( - name: "JavaKitJar", + name: "JavaKitCollection", dependencies: ["JavaKit"], exclude: ["Java2Swift.config"], swiftSettings: [ @@ -171,9 +176,18 @@ let package = Package( .unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"]) ] ), + .target( + name: "JavaKitJar", + dependencies: ["JavaKit", "JavaKitCollection"], + exclude: ["Java2Swift.config"], + swiftSettings: [ + .swiftLanguageMode(.v5), + .unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"]) + ] + ), .target( name: "JavaKitNetwork", - dependencies: ["JavaKit"], + dependencies: ["JavaKit", "JavaKitCollection"], exclude: ["Java2Swift.config"], swiftSettings: [ .swiftLanguageMode(.v5), diff --git a/Sources/JavaKitCollection/Java2Swift.config b/Sources/JavaKitCollection/Java2Swift.config new file mode 100644 index 00000000..50c23be8 --- /dev/null +++ b/Sources/JavaKitCollection/Java2Swift.config @@ -0,0 +1,5 @@ +{ + "classes" : { + "java.util.Enumeration" : "Enumeration" + } +} diff --git a/Sources/JavaKit/JavaEnumeration+Sequence.swift b/Sources/JavaKitCollection/JavaEnumeration+Sequence.swift similarity index 100% rename from Sources/JavaKit/JavaEnumeration+Sequence.swift rename to Sources/JavaKitCollection/JavaEnumeration+Sequence.swift diff --git a/Sources/JavaKit/generated/Enumeration.swift b/Sources/JavaKitCollection/generated/Enumeration.swift similarity index 94% rename from Sources/JavaKit/generated/Enumeration.swift rename to Sources/JavaKitCollection/generated/Enumeration.swift index 703fb441..0ccf117b 100644 --- a/Sources/JavaKit/generated/Enumeration.swift +++ b/Sources/JavaKitCollection/generated/Enumeration.swift @@ -1,4 +1,5 @@ // Auto-generated by Java-to-Swift wrapper generator. +import JavaKit import JavaRuntime @JavaInterface("java.util.Enumeration") diff --git a/Sources/JavaKitJar/generated/JarFile.swift b/Sources/JavaKitJar/generated/JarFile.swift index dc7eb93b..e5d8eb6d 100644 --- a/Sources/JavaKitJar/generated/JarFile.swift +++ b/Sources/JavaKitJar/generated/JarFile.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.util.jar.JarFile") diff --git a/Sources/JavaKitNetwork/generated/URLClassLoader.swift b/Sources/JavaKitNetwork/generated/URLClassLoader.swift index 849d5715..6dd407f4 100644 --- a/Sources/JavaKitNetwork/generated/URLClassLoader.swift +++ b/Sources/JavaKitNetwork/generated/URLClassLoader.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.net.URLClassLoader") From 7b40a2a5abe68b2d4ca537850c57026368e2014a Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 14:58:35 -0700 Subject: [PATCH 2/9] Expand JavaKitCollection module to encompass many more Java collections --- .gitignore | 3 - Sources/JavaKitCollection/Java2Swift.config | 19 +- .../generated/ArrayDeque.swift | 153 ++++++++++++++ .../generated/ArrayList.swift | 135 +++++++++++++ .../JavaKitCollection/generated/BitSet.swift | 127 ++++++++++++ .../generated/Enumeration.swift | 3 + .../JavaKitCollection/generated/HashMap.swift | 94 +++++++++ .../JavaKitCollection/generated/HashSet.swift | 91 +++++++++ .../generated/JavaCollection.swift | 51 +++++ .../generated/JavaDictionary.swift | 57 ++++++ .../generated/JavaIterator.swift | 15 ++ .../JavaKitCollection/generated/JavaSet.swift | 91 +++++++++ .../generated/LinkedList.swift | 177 ++++++++++++++++ .../generated/ListIterator.swift | 33 +++ .../generated/PriorityQueue.swift | 99 +++++++++ .../JavaKitCollection/generated/Queue.swift | 66 ++++++ .../generated/RandomAccess.swift | 8 + .../JavaKitCollection/generated/Stack.swift | 189 ++++++++++++++++++ .../JavaKitCollection/generated/TreeMap.swift | 108 ++++++++++ .../JavaKitCollection/generated/TreeSet.swift | 126 ++++++++++++ Sources/JavaKitJar/generated/Attributes.swift | 7 + .../generated/Constructor.swift | 1 + .../generated/Executable.swift | 1 + .../JavaKitReflection/generated/Field.swift | 1 + .../JavaKitReflection/generated/Method.swift | 1 + .../generated/Parameter.swift | 1 + 26 files changed, 1653 insertions(+), 4 deletions(-) create mode 100644 Sources/JavaKitCollection/generated/ArrayDeque.swift create mode 100644 Sources/JavaKitCollection/generated/ArrayList.swift create mode 100644 Sources/JavaKitCollection/generated/BitSet.swift create mode 100644 Sources/JavaKitCollection/generated/HashMap.swift create mode 100644 Sources/JavaKitCollection/generated/HashSet.swift create mode 100644 Sources/JavaKitCollection/generated/JavaCollection.swift create mode 100644 Sources/JavaKitCollection/generated/JavaDictionary.swift create mode 100644 Sources/JavaKitCollection/generated/JavaIterator.swift create mode 100644 Sources/JavaKitCollection/generated/JavaSet.swift create mode 100644 Sources/JavaKitCollection/generated/LinkedList.swift create mode 100644 Sources/JavaKitCollection/generated/ListIterator.swift create mode 100644 Sources/JavaKitCollection/generated/PriorityQueue.swift create mode 100644 Sources/JavaKitCollection/generated/Queue.swift create mode 100644 Sources/JavaKitCollection/generated/RandomAccess.swift create mode 100644 Sources/JavaKitCollection/generated/Stack.swift create mode 100644 Sources/JavaKitCollection/generated/TreeMap.swift create mode 100644 Sources/JavaKitCollection/generated/TreeSet.swift diff --git a/.gitignore b/.gitignore index 381bd778..f56abda5 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,3 @@ Package.resolved # Cache of project .gradletasknamecache - -# Ignore generated sources -**/generated/ diff --git a/Sources/JavaKitCollection/Java2Swift.config b/Sources/JavaKitCollection/Java2Swift.config index 50c23be8..e134a2e3 100644 --- a/Sources/JavaKitCollection/Java2Swift.config +++ b/Sources/JavaKitCollection/Java2Swift.config @@ -1,5 +1,22 @@ { "classes" : { - "java.util.Enumeration" : "Enumeration" + "java.util.Collection" : "JavaCollection", + "java.util.Enumeration" : "Enumeration", + "java.util.Iterator" : "JavaIterator", + "java.util.ListIterator" : "ListIterator", + "java.util.Queue" : "Queue", + "java.util.RandomAccess" : "RandomAccess", + "java.util.Set" : "JavaSet", + "java.util.ArrayDeque" : "ArrayDeque", + "java.util.ArrayList" : "ArrayList", + "java.util.BitSet" : "BitSet", + "java.util.Dictionary" : "JavaDictionary", + "java.util.HashMap" : "HashMap", + "java.util.HashSet" : "HashSet", + "java.util.LinkedList" : "LinkedList", + "java.util.PriorityQueue" : "PriorityQueue", + "java.util.Stack" : "Stack", + "java.util.TreeMap" : "TreeMap", + "java.util.TreeSet" : "TreeSet" } } diff --git a/Sources/JavaKitCollection/generated/ArrayDeque.swift b/Sources/JavaKitCollection/generated/ArrayDeque.swift new file mode 100644 index 00000000..af2fd314 --- /dev/null +++ b/Sources/JavaKitCollection/generated/ArrayDeque.swift @@ -0,0 +1,153 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.ArrayDeque") +public struct ArrayDeque { + @JavaMethod + public init(_ arg0: Int32, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: JavaCollection?, environment: JNIEnvironment) + + @JavaMethod + public func remove() -> JavaObject? + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func clone() -> ArrayDeque? + + @JavaMethod + public func clone() throws -> JavaObject? + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func peek() -> JavaObject? + + @JavaMethod + public func getFirst() -> JavaObject? + + @JavaMethod + public func getLast() -> JavaObject? + + @JavaMethod + public func element() -> JavaObject? + + @JavaMethod + public func addFirst(_ arg0: JavaObject?) + + @JavaMethod + public func addLast(_ arg0: JavaObject?) + + @JavaMethod + public func removeFirst() -> JavaObject? + + @JavaMethod + public func removeLast() -> JavaObject? + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func poll() -> JavaObject? + + @JavaMethod + public func push(_ arg0: JavaObject?) + + @JavaMethod + public func pop() -> JavaObject? + + @JavaMethod + public func pollFirst() -> JavaObject? + + @JavaMethod + public func pollLast() -> JavaObject? + + @JavaMethod + public func offerLast(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func peekFirst() -> JavaObject? + + @JavaMethod + public func removeFirstOccurrence(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func offerFirst(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func peekLast() -> JavaObject? + + @JavaMethod + public func removeLastOccurrence(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func offer(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func descendingIterator() -> JavaIterator? + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} diff --git a/Sources/JavaKitCollection/generated/ArrayList.swift b/Sources/JavaKitCollection/generated/ArrayList.swift new file mode 100644 index 00000000..fd400ae5 --- /dev/null +++ b/Sources/JavaKitCollection/generated/ArrayList.swift @@ -0,0 +1,135 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.ArrayList", implements: RandomAccess.self) +public struct ArrayList { + @JavaMethod + public init(_ arg0: JavaCollection?, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: Int32, environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func remove(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func indexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func lastIndexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func add(_ arg0: Int32, _ arg1: JavaObject?) + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: Int32, _ arg1: JavaCollection?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func ensureCapacity(_ arg0: Int32) + + @JavaMethod + public func trimToSize() + + @JavaMethod + public func getFirst() -> JavaObject? + + @JavaMethod + public func getLast() -> JavaObject? + + @JavaMethod + public func addFirst(_ arg0: JavaObject?) + + @JavaMethod + public func addLast(_ arg0: JavaObject?) + + @JavaMethod + public func removeFirst() -> JavaObject? + + @JavaMethod + public func removeLast() -> JavaObject? + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func listIterator(_ arg0: Int32) -> ListIterator? + + @JavaMethod + public func listIterator() -> ListIterator? + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} diff --git a/Sources/JavaKitCollection/generated/BitSet.swift b/Sources/JavaKitCollection/generated/BitSet.swift new file mode 100644 index 00000000..f9c0bda9 --- /dev/null +++ b/Sources/JavaKitCollection/generated/BitSet.swift @@ -0,0 +1,127 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.BitSet") +public struct BitSet { + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: Int32, environment: JNIEnvironment) + + @JavaMethod + public func cardinality() -> Int32 + + @JavaMethod + public func nextSetBit(_ arg0: Int32) -> Int32 + + @JavaMethod + public func toLongArray() -> [Int64] + + @JavaMethod + public func previousSetBit(_ arg0: Int32) -> Int32 + + @JavaMethod + public func previousClearBit(_ arg0: Int32) -> Int32 + + @JavaMethod + public func intersects(_ arg0: BitSet?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: Int32, _ arg1: Int32) -> BitSet? + + @JavaMethod + public func get(_ arg0: Int32) -> Bool + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func length() -> Int32 + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func clear(_ arg0: Int32) + + @JavaMethod + public func clear(_ arg0: Int32, _ arg1: Int32) + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: Int32, _ arg2: Bool) + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: Int32) + + @JavaMethod + public func set(_ arg0: Int32) + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: Bool) + + @JavaMethod + public func flip(_ arg0: Int32, _ arg1: Int32) + + @JavaMethod + public func flip(_ arg0: Int32) + + @JavaMethod + public func nextClearBit(_ arg0: Int32) -> Int32 + + @JavaMethod + public func or(_ arg0: BitSet?) + + @JavaMethod + public func toByteArray() -> [Int8] + + @JavaMethod + public func and(_ arg0: BitSet?) + + @JavaMethod + public func xor(_ arg0: BitSet?) + + @JavaMethod + public func andNot(_ arg0: BitSet?) + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} +extension JavaClass { + @JavaStaticMethod + public func valueOf(_ arg0: [Int64]) -> BitSet? + + @JavaStaticMethod + public func valueOf(_ arg0: [Int8]) -> BitSet? +} diff --git a/Sources/JavaKitCollection/generated/Enumeration.swift b/Sources/JavaKitCollection/generated/Enumeration.swift index 0ccf117b..be0936d3 100644 --- a/Sources/JavaKitCollection/generated/Enumeration.swift +++ b/Sources/JavaKitCollection/generated/Enumeration.swift @@ -4,6 +4,9 @@ import JavaRuntime @JavaInterface("java.util.Enumeration") public struct Enumeration { + @JavaMethod + public func asIterator() -> JavaIterator? + @JavaMethod public func hasMoreElements() -> Bool diff --git a/Sources/JavaKitCollection/generated/HashMap.swift b/Sources/JavaKitCollection/generated/HashMap.swift new file mode 100644 index 00000000..d4048dd0 --- /dev/null +++ b/Sources/JavaKitCollection/generated/HashMap.swift @@ -0,0 +1,94 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.HashMap") +public struct HashMap { + @JavaMethod + public init(_ arg0: Int32, environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: Int32, _ arg1: Float, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func remove(_ arg0: JavaObject?, _ arg1: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func put(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func values() -> JavaCollection? + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func replace(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func replace(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?) -> Bool + + @JavaMethod + public func putIfAbsent(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func containsKey(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func keySet() -> JavaSet? + + @JavaMethod + public func containsValue(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func getOrDefault(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} +extension JavaClass { + @JavaStaticMethod + public func newHashMap(_ arg0: Int32) -> HashMap? where ObjectType == HashMap +} diff --git a/Sources/JavaKitCollection/generated/HashSet.swift b/Sources/JavaKitCollection/generated/HashSet.swift new file mode 100644 index 00000000..aa071dfd --- /dev/null +++ b/Sources/JavaKitCollection/generated/HashSet.swift @@ -0,0 +1,91 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.HashSet", implements: JavaSet.self) +public struct HashSet { + @JavaMethod + public init(_ arg0: Int32, environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: Int32, _ arg1: Float, environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: JavaCollection?, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} +extension JavaClass { + @JavaStaticMethod + public func newHashSet(_ arg0: Int32) -> HashSet? where ObjectType == HashSet +} diff --git a/Sources/JavaKitCollection/generated/JavaCollection.swift b/Sources/JavaKitCollection/generated/JavaCollection.swift new file mode 100644 index 00000000..84b44739 --- /dev/null +++ b/Sources/JavaKitCollection/generated/JavaCollection.swift @@ -0,0 +1,51 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.Collection") +public struct JavaCollection { + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool +} diff --git a/Sources/JavaKitCollection/generated/JavaDictionary.swift b/Sources/JavaKitCollection/generated/JavaDictionary.swift new file mode 100644 index 00000000..c32b3038 --- /dev/null +++ b/Sources/JavaKitCollection/generated/JavaDictionary.swift @@ -0,0 +1,57 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.Dictionary") +public struct JavaDictionary { + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func put(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func elements() -> Enumeration? + + @JavaMethod + public func keys() -> Enumeration? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} diff --git a/Sources/JavaKitCollection/generated/JavaIterator.swift b/Sources/JavaKitCollection/generated/JavaIterator.swift new file mode 100644 index 00000000..893e43a9 --- /dev/null +++ b/Sources/JavaKitCollection/generated/JavaIterator.swift @@ -0,0 +1,15 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.Iterator") +public struct JavaIterator { + @JavaMethod + public func remove() + + @JavaMethod + public func hasNext() -> Bool + + @JavaMethod + public func next() -> JavaObject? +} diff --git a/Sources/JavaKitCollection/generated/JavaSet.swift b/Sources/JavaKitCollection/generated/JavaSet.swift new file mode 100644 index 00000000..b1412c9d --- /dev/null +++ b/Sources/JavaKitCollection/generated/JavaSet.swift @@ -0,0 +1,91 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.Set", extends: JavaCollection.self) +public struct JavaSet { + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool +} +extension JavaClass { + @JavaStaticMethod + public func copyOf(_ arg0: JavaCollection?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of() -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?, _ arg7: JavaObject?, _ arg8: JavaObject?, _ arg9: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?, _ arg7: JavaObject?, _ arg8: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?, _ arg7: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: [JavaObject?]) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?) -> JavaSet? where ObjectType == JavaSet + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaSet? where ObjectType == JavaSet +} diff --git a/Sources/JavaKitCollection/generated/LinkedList.swift b/Sources/JavaKitCollection/generated/LinkedList.swift new file mode 100644 index 00000000..cf7043c2 --- /dev/null +++ b/Sources/JavaKitCollection/generated/LinkedList.swift @@ -0,0 +1,177 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.LinkedList") +public struct LinkedList { + @JavaMethod + public init(_ arg0: JavaCollection?, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func remove(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func remove() -> JavaObject? + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func indexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func lastIndexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func add(_ arg0: Int32, _ arg1: JavaObject?) + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: Int32, _ arg1: JavaCollection?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func peek() -> JavaObject? + + @JavaMethod + public func getFirst() -> JavaObject? + + @JavaMethod + public func getLast() -> JavaObject? + + @JavaMethod + public func element() -> JavaObject? + + @JavaMethod + public func addFirst(_ arg0: JavaObject?) + + @JavaMethod + public func addLast(_ arg0: JavaObject?) + + @JavaMethod + public func removeFirst() -> JavaObject? + + @JavaMethod + public func removeLast() -> JavaObject? + + @JavaMethod + public func listIterator(_ arg0: Int32) -> ListIterator? + + @JavaMethod + public func reversed() -> LinkedList? + + @JavaMethod + public func poll() -> JavaObject? + + @JavaMethod + public func push(_ arg0: JavaObject?) + + @JavaMethod + public func pop() -> JavaObject? + + @JavaMethod + public func pollFirst() -> JavaObject? + + @JavaMethod + public func pollLast() -> JavaObject? + + @JavaMethod + public func offerLast(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func peekFirst() -> JavaObject? + + @JavaMethod + public func removeFirstOccurrence(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func offerFirst(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func peekLast() -> JavaObject? + + @JavaMethod + public func removeLastOccurrence(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func offer(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func descendingIterator() -> JavaIterator? + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func listIterator() -> ListIterator? + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} diff --git a/Sources/JavaKitCollection/generated/ListIterator.swift b/Sources/JavaKitCollection/generated/ListIterator.swift new file mode 100644 index 00000000..a918ea16 --- /dev/null +++ b/Sources/JavaKitCollection/generated/ListIterator.swift @@ -0,0 +1,33 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.ListIterator", extends: JavaIterator.self) +public struct ListIterator { + @JavaMethod + public func remove() + + @JavaMethod + public func add(_ arg0: JavaObject?) + + @JavaMethod + public func hasNext() -> Bool + + @JavaMethod + public func next() -> JavaObject? + + @JavaMethod + public func set(_ arg0: JavaObject?) + + @JavaMethod + public func nextIndex() -> Int32 + + @JavaMethod + public func previousIndex() -> Int32 + + @JavaMethod + public func hasPrevious() -> Bool + + @JavaMethod + public func previous() -> JavaObject? +} diff --git a/Sources/JavaKitCollection/generated/PriorityQueue.swift b/Sources/JavaKitCollection/generated/PriorityQueue.swift new file mode 100644 index 00000000..7b70c7cd --- /dev/null +++ b/Sources/JavaKitCollection/generated/PriorityQueue.swift @@ -0,0 +1,99 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.PriorityQueue") +public struct PriorityQueue { + @JavaMethod + public init(_ arg0: PriorityQueue?, environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: JavaCollection?, environment: JNIEnvironment) + + @JavaMethod + public init(_ arg0: Int32, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func peek() -> JavaObject? + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func poll() -> JavaObject? + + @JavaMethod + public func offer(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func remove() -> JavaObject? + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func element() -> JavaObject? + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws +} diff --git a/Sources/JavaKitCollection/generated/Queue.swift b/Sources/JavaKitCollection/generated/Queue.swift new file mode 100644 index 00000000..33bf05f9 --- /dev/null +++ b/Sources/JavaKitCollection/generated/Queue.swift @@ -0,0 +1,66 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.Queue", extends: JavaCollection.self) +public struct Queue { + @JavaMethod + public func remove() -> JavaObject? + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func peek() -> JavaObject? + + @JavaMethod + public func element() -> JavaObject? + + @JavaMethod + public func poll() -> JavaObject? + + @JavaMethod + public func offer(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool +} diff --git a/Sources/JavaKitCollection/generated/RandomAccess.swift b/Sources/JavaKitCollection/generated/RandomAccess.swift new file mode 100644 index 00000000..0084ceed --- /dev/null +++ b/Sources/JavaKitCollection/generated/RandomAccess.swift @@ -0,0 +1,8 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.RandomAccess") +public struct RandomAccess { + +} diff --git a/Sources/JavaKitCollection/generated/Stack.swift b/Sources/JavaKitCollection/generated/Stack.swift new file mode 100644 index 00000000..6d528886 --- /dev/null +++ b/Sources/JavaKitCollection/generated/Stack.swift @@ -0,0 +1,189 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.Stack") +public struct Stack { + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func empty() -> Bool + + @JavaMethod + public func peek() -> JavaObject? + + @JavaMethod + public func search(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func push(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func pop() -> JavaObject? + + @JavaMethod + public func addElement(_ arg0: JavaObject?) + + @JavaMethod + public func removeElementAt(_ arg0: Int32) + + @JavaMethod + public func removeElement(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func insertElementAt(_ arg0: JavaObject?, _ arg1: Int32) + + @JavaMethod + public func removeAllElements() + + @JavaMethod + public func firstElement() -> JavaObject? + + @JavaMethod + public func lastElement() -> JavaObject? + + @JavaMethod + public func setElementAt(_ arg0: JavaObject?, _ arg1: Int32) + + @JavaMethod + public func remove(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func indexOf(_ arg0: JavaObject?, _ arg1: Int32) -> Int32 + + @JavaMethod + public func indexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func lastIndexOf(_ arg0: JavaObject?, _ arg1: Int32) -> Int32 + + @JavaMethod + public func lastIndexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: Int32, _ arg1: JavaObject?) + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func elements() -> Enumeration? + + @JavaMethod + public func addAll(_ arg0: Int32, _ arg1: JavaCollection?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func capacity() -> Int32 + + @JavaMethod + public func ensureCapacity(_ arg0: Int32) + + @JavaMethod + public func trimToSize() + + @JavaMethod + public func elementAt(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func listIterator() -> ListIterator? + + @JavaMethod + public func listIterator(_ arg0: Int32) -> ListIterator? + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func setSize(_ arg0: Int32) + + @JavaMethod + public func copyInto(_ arg0: [JavaObject?]) + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws + + @JavaMethod + public func getFirst() -> JavaObject? + + @JavaMethod + public func getLast() -> JavaObject? + + @JavaMethod + public func addFirst(_ arg0: JavaObject?) + + @JavaMethod + public func addLast(_ arg0: JavaObject?) + + @JavaMethod + public func removeFirst() -> JavaObject? + + @JavaMethod + public func removeLast() -> JavaObject? +} diff --git a/Sources/JavaKitCollection/generated/TreeMap.swift b/Sources/JavaKitCollection/generated/TreeMap.swift new file mode 100644 index 00000000..f029c220 --- /dev/null +++ b/Sources/JavaKitCollection/generated/TreeMap.swift @@ -0,0 +1,108 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.TreeMap") +public struct TreeMap { + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func put(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func values() -> JavaCollection? + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func clear() + + @JavaMethod + public func replace(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?) -> Bool + + @JavaMethod + public func replace(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func putIfAbsent(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func containsKey(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func keySet() -> JavaSet? + + @JavaMethod + public func containsValue(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func firstKey() -> JavaObject? + + @JavaMethod + public func putFirst(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func putLast(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func lowerKey(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func floorKey(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func ceilingKey(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func higherKey(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func lastKey() -> JavaObject? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws + + @JavaMethod + public func remove(_ arg0: JavaObject?, _ arg1: JavaObject?) -> Bool + + @JavaMethod + public func getOrDefault(_ arg0: JavaObject?, _ arg1: JavaObject?) -> JavaObject? +} diff --git a/Sources/JavaKitCollection/generated/TreeSet.swift b/Sources/JavaKitCollection/generated/TreeSet.swift new file mode 100644 index 00000000..9633750e --- /dev/null +++ b/Sources/JavaKitCollection/generated/TreeSet.swift @@ -0,0 +1,126 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaClass("java.util.TreeSet") +public struct TreeSet { + @JavaMethod + public init(_ arg0: JavaCollection?, environment: JNIEnvironment) + + @JavaMethod + public init(environment: JNIEnvironment) + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func clone() -> JavaObject? + + @JavaMethod + public func floor(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func clear() + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func last() -> JavaObject? + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func first() -> JavaObject? + + @JavaMethod + public func addFirst(_ arg0: JavaObject?) + + @JavaMethod + public func addLast(_ arg0: JavaObject?) + + @JavaMethod + public func lower(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func pollFirst() -> JavaObject? + + @JavaMethod + public func pollLast() -> JavaObject? + + @JavaMethod + public func descendingIterator() -> JavaIterator? + + @JavaMethod + public func ceiling(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func higher(_ arg0: JavaObject?) -> JavaObject? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func toString() -> String + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func getClass() -> JavaClass? + + @JavaMethod + public func notify() + + @JavaMethod + public func notifyAll() + + @JavaMethod + public func wait(_ arg0: Int64) throws + + @JavaMethod + public func wait(_ arg0: Int64, _ arg1: Int32) throws + + @JavaMethod + public func wait() throws + + @JavaMethod + public func removeFirst() -> JavaObject? + + @JavaMethod + public func removeLast() -> JavaObject? + + @JavaMethod + public func getFirst() -> JavaObject? + + @JavaMethod + public func getLast() -> JavaObject? +} diff --git a/Sources/JavaKitJar/generated/Attributes.swift b/Sources/JavaKitJar/generated/Attributes.swift index c0bb5f6f..69827d34 100644 --- a/Sources/JavaKitJar/generated/Attributes.swift +++ b/Sources/JavaKitJar/generated/Attributes.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.util.jar.Attributes") @@ -28,6 +29,9 @@ public struct Attributes { @JavaMethod public func equals(_ arg0: JavaObject?) -> Bool + @JavaMethod + public func values() -> JavaCollection? + @JavaMethod public func hashCode() -> Int32 @@ -46,6 +50,9 @@ public struct Attributes { @JavaMethod public func containsKey(_ arg0: JavaObject?) -> Bool + @JavaMethod + public func keySet() -> JavaSet? + @JavaMethod public func containsValue(_ arg0: JavaObject?) -> Bool diff --git a/Sources/JavaKitReflection/generated/Constructor.swift b/Sources/JavaKitReflection/generated/Constructor.swift index b7900cd7..f3d1bb55 100644 --- a/Sources/JavaKitReflection/generated/Constructor.swift +++ b/Sources/JavaKitReflection/generated/Constructor.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.lang.reflect.Constructor", extends: Executable.self) diff --git a/Sources/JavaKitReflection/generated/Executable.swift b/Sources/JavaKitReflection/generated/Executable.swift index 9084b84f..4c337cbe 100644 --- a/Sources/JavaKitReflection/generated/Executable.swift +++ b/Sources/JavaKitReflection/generated/Executable.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.lang.reflect.Executable", extends: AccessibleObject.self, implements: GenericDeclaration.self) diff --git a/Sources/JavaKitReflection/generated/Field.swift b/Sources/JavaKitReflection/generated/Field.swift index fec0cb9a..72ab10a9 100644 --- a/Sources/JavaKitReflection/generated/Field.swift +++ b/Sources/JavaKitReflection/generated/Field.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.lang.reflect.Field", extends: AccessibleObject.self) diff --git a/Sources/JavaKitReflection/generated/Method.swift b/Sources/JavaKitReflection/generated/Method.swift index f438a327..2c6e1a46 100644 --- a/Sources/JavaKitReflection/generated/Method.swift +++ b/Sources/JavaKitReflection/generated/Method.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.lang.reflect.Method", extends: Executable.self) diff --git a/Sources/JavaKitReflection/generated/Parameter.swift b/Sources/JavaKitReflection/generated/Parameter.swift index 9a928f46..36f68dd0 100644 --- a/Sources/JavaKitReflection/generated/Parameter.swift +++ b/Sources/JavaKitReflection/generated/Parameter.swift @@ -1,5 +1,6 @@ // Auto-generated by Java-to-Swift wrapper generator. import JavaKit +import JavaKitCollection import JavaRuntime @JavaClass("java.lang.reflect.Parameter") From 5ad8abebe511537b12cb5da0a5cd798c0323344f Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 17:01:05 -0700 Subject: [PATCH 3/9] Use slashes rather than dots in explicit `FindClass` JNI calls --- Sources/JavaKit/BridgedValues/JavaValue+Array.swift | 2 +- Sources/JavaKit/BridgedValues/JavaValue+String.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/JavaKit/BridgedValues/JavaValue+Array.swift b/Sources/JavaKit/BridgedValues/JavaValue+Array.swift index 26996578..3db30789 100644 --- a/Sources/JavaKit/BridgedValues/JavaValue+Array.swift +++ b/Sources/JavaKit/BridgedValues/JavaValue+Array.swift @@ -93,7 +93,7 @@ extension Array: JavaValue where Element: JavaValue { public static func jniNewArray(in environment: JNIEnvironment) -> JNINewArray { return { environment, size in // FIXME: We should have a bridged JavaArray that we can use here. - let arrayClass = environment.interface.FindClass(environment, "java.lang.Array") + let arrayClass = environment.interface.FindClass(environment, "java/lang/Array") return environment.interface.NewObjectArray(environment, size, arrayClass, nil) } } diff --git a/Sources/JavaKit/BridgedValues/JavaValue+String.swift b/Sources/JavaKit/BridgedValues/JavaValue+String.swift index 5c9ca117..e9c11e64 100644 --- a/Sources/JavaKit/BridgedValues/JavaValue+String.swift +++ b/Sources/JavaKit/BridgedValues/JavaValue+String.swift @@ -64,7 +64,7 @@ extension String: JavaValue { public static func jniNewArray(in environment: JNIEnvironment) -> JNINewArray { return { environment, size in // FIXME: Introduce a JavaString class that we can use for this. - let stringClass = environment.interface.FindClass(environment, "java.lang.String") + let stringClass = environment.interface.FindClass(environment, "java/lang/String") return environment.interface.NewObjectArray(environment, size, stringClass, nil) } } From 91646f3b8eb2a5c0d0bf1a3df2f014f64487aa54 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 17:16:29 -0700 Subject: [PATCH 4/9] Java2Swift: Add a test importing part of ArrayList with generic List return --- Tests/Java2SwiftTests/Java2SwiftTests.swift | 23 ++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Tests/Java2SwiftTests/Java2SwiftTests.swift b/Tests/Java2SwiftTests/Java2SwiftTests.swift index bac88d47..8a6aee8d 100644 --- a/Tests/Java2SwiftTests/Java2SwiftTests.swift +++ b/Tests/Java2SwiftTests/Java2SwiftTests.swift @@ -25,7 +25,7 @@ var jvm: JavaVirtualMachine { } class Java2SwiftTests: XCTestCase { - func testJavaLangObjectMapping() async throws { + func testJavaLangObjectMapping() throws { try assertTranslatedClass( JavaObject.self, swiftTypeName: "MyJavaObject", @@ -46,6 +46,27 @@ class Java2SwiftTests: XCTestCase { ] ) } + + func testGenericCollections() throws { + try assertTranslatedClass( + MyArrayList.self, + swiftTypeName: "JavaArrayList", + translatedClasses: [ + "java.lang.Object": ("JavaObject", nil, true), + "java.util.List": ("JavaList", nil, true), + ], + expectedChunks: [ + """ + @JavaMethod + public func subList(_ arg0: Int32, _ arg1: Int32) -> JavaList? + """ + ] + ) + } +} + +@JavaClass("java.util.ArrayList") +public struct MyArrayList { } /// Translate a Java class and assert that the translated output contains From 26acffb8e5df68606b6158edc891ad6778830a0f Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 17:23:25 -0700 Subject: [PATCH 5/9] Stop emitting the Java Enumeration type into two places --- Sources/JavaKit/Java2Swift.config | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Sources/JavaKit/Java2Swift.config b/Sources/JavaKit/Java2Swift.config index b8c36594..7626a380 100644 --- a/Sources/JavaKit/Java2Swift.config +++ b/Sources/JavaKit/Java2Swift.config @@ -4,7 +4,6 @@ "java.lang.Exception" : "Exception", "java.lang.Object" : "JavaObject", "java.lang.RuntimeException" : "RuntimeException", - "java.lang.Throwable" : "Throwable", - "java.util.Enumeration" : "Enumeration" + "java.lang.Throwable" : "Throwable" } } From 9ef273fb53b9eed6f41759918ccf2accb994f109 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 17:25:13 -0700 Subject: [PATCH 6/9] Import java.util.List since it's used a lot --- Sources/JavaKitCollection/Java2Swift.config | 2 +- .../generated/ArrayList.swift | 8 +- .../JavaKitCollection/generated/List.swift | 142 ++++++++++++++++++ .../JavaKitCollection/generated/Stack.swift | 6 + Tests/Java2SwiftTests/Java2SwiftTests.swift | 21 +++ 5 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 Sources/JavaKitCollection/generated/List.swift diff --git a/Sources/JavaKitCollection/Java2Swift.config b/Sources/JavaKitCollection/Java2Swift.config index e134a2e3..a809cb8c 100644 --- a/Sources/JavaKitCollection/Java2Swift.config +++ b/Sources/JavaKitCollection/Java2Swift.config @@ -3,6 +3,7 @@ "java.util.Collection" : "JavaCollection", "java.util.Enumeration" : "Enumeration", "java.util.Iterator" : "JavaIterator", + "java.util.List" : "List", "java.util.ListIterator" : "ListIterator", "java.util.Queue" : "Queue", "java.util.RandomAccess" : "RandomAccess", @@ -13,7 +14,6 @@ "java.util.Dictionary" : "JavaDictionary", "java.util.HashMap" : "HashMap", "java.util.HashSet" : "HashSet", - "java.util.LinkedList" : "LinkedList", "java.util.PriorityQueue" : "PriorityQueue", "java.util.Stack" : "Stack", "java.util.TreeMap" : "TreeMap", diff --git a/Sources/JavaKitCollection/generated/ArrayList.swift b/Sources/JavaKitCollection/generated/ArrayList.swift index fd400ae5..765f4d9f 100644 --- a/Sources/JavaKitCollection/generated/ArrayList.swift +++ b/Sources/JavaKitCollection/generated/ArrayList.swift @@ -2,7 +2,7 @@ import JavaKit import JavaRuntime -@JavaClass("java.util.ArrayList", implements: RandomAccess.self) +@JavaClass("java.util.ArrayList", implements: List.self, RandomAccess.self) public struct ArrayList { @JavaMethod public init(_ arg0: JavaCollection?, environment: JNIEnvironment) @@ -52,6 +52,9 @@ public struct ArrayList { @JavaMethod public func add(_ arg0: Int32, _ arg1: JavaObject?) + @JavaMethod + public func subList(_ arg0: Int32, _ arg1: Int32) -> List? + @JavaMethod public func toArray() -> [JavaObject?] @@ -132,4 +135,7 @@ public struct ArrayList { @JavaMethod public func wait() throws + + @JavaMethod + public func reversed() -> List? } diff --git a/Sources/JavaKitCollection/generated/List.swift b/Sources/JavaKitCollection/generated/List.swift new file mode 100644 index 00000000..fb323301 --- /dev/null +++ b/Sources/JavaKitCollection/generated/List.swift @@ -0,0 +1,142 @@ +// Auto-generated by Java-to-Swift wrapper generator. +import JavaKit +import JavaRuntime + +@JavaInterface("java.util.List") +public struct List { + @JavaMethod + public func remove(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func remove(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func size() -> Int32 + + @JavaMethod + public func get(_ arg0: Int32) -> JavaObject? + + @JavaMethod + public func equals(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func hashCode() -> Int32 + + @JavaMethod + public func indexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func clear() + + @JavaMethod + public func lastIndexOf(_ arg0: JavaObject?) -> Int32 + + @JavaMethod + public func isEmpty() -> Bool + + @JavaMethod + public func add(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func add(_ arg0: Int32, _ arg1: JavaObject?) + + @JavaMethod + public func subList(_ arg0: Int32, _ arg1: Int32) -> List? + + @JavaMethod + public func toArray() -> [JavaObject?] + + @JavaMethod + public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] + + @JavaMethod + public func iterator() -> JavaIterator? + + @JavaMethod + public func contains(_ arg0: JavaObject?) -> Bool + + @JavaMethod + public func addAll(_ arg0: Int32, _ arg1: JavaCollection?) -> Bool + + @JavaMethod + public func addAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func set(_ arg0: Int32, _ arg1: JavaObject?) -> JavaObject? + + @JavaMethod + public func getFirst() -> JavaObject? + + @JavaMethod + public func getLast() -> JavaObject? + + @JavaMethod + public func addFirst(_ arg0: JavaObject?) + + @JavaMethod + public func addLast(_ arg0: JavaObject?) + + @JavaMethod + public func removeFirst() -> JavaObject? + + @JavaMethod + public func removeLast() -> JavaObject? + + @JavaMethod + public func removeAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func retainAll(_ arg0: JavaCollection?) -> Bool + + @JavaMethod + public func listIterator() -> ListIterator? + + @JavaMethod + public func listIterator(_ arg0: Int32) -> ListIterator? + + @JavaMethod + public func reversed() -> List? + + @JavaMethod + public func containsAll(_ arg0: JavaCollection?) -> Bool +} +extension JavaClass { + @JavaStaticMethod + public func copyOf(_ arg0: JavaCollection?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of() -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?, _ arg7: JavaObject?, _ arg8: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?, _ arg7: JavaObject?) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: [JavaObject?]) -> List? where ObjectType == List + + @JavaStaticMethod + public func of(_ arg0: JavaObject?, _ arg1: JavaObject?, _ arg2: JavaObject?, _ arg3: JavaObject?, _ arg4: JavaObject?, _ arg5: JavaObject?, _ arg6: JavaObject?, _ arg7: JavaObject?, _ arg8: JavaObject?, _ arg9: JavaObject?) -> List? where ObjectType == List +} diff --git a/Sources/JavaKitCollection/generated/Stack.swift b/Sources/JavaKitCollection/generated/Stack.swift index 6d528886..65d92872 100644 --- a/Sources/JavaKitCollection/generated/Stack.swift +++ b/Sources/JavaKitCollection/generated/Stack.swift @@ -94,6 +94,9 @@ public struct Stack { @JavaMethod public func add(_ arg0: JavaObject?) -> Bool + @JavaMethod + public func subList(_ arg0: Int32, _ arg1: Int32) -> List? + @JavaMethod public func toArray(_ arg0: [JavaObject?]) -> [JavaObject?] @@ -186,4 +189,7 @@ public struct Stack { @JavaMethod public func removeLast() -> JavaObject? + + @JavaMethod + public func reversed() -> List? } diff --git a/Tests/Java2SwiftTests/Java2SwiftTests.swift b/Tests/Java2SwiftTests/Java2SwiftTests.swift index 8a6aee8d..b3418ff2 100644 --- a/Tests/Java2SwiftTests/Java2SwiftTests.swift +++ b/Tests/Java2SwiftTests/Java2SwiftTests.swift @@ -63,12 +63,33 @@ class Java2SwiftTests: XCTestCase { ] ) } + + func testLinkedList() throws { + try assertTranslatedClass( + MyLinkedList.self, + swiftTypeName: "JavaLinkedList", + translatedClasses: [ + "java.lang.Object": ("JavaObject", nil, true), + "java.util.List": ("JavaList", nil, true), + ], + expectedChunks: [ + """ + @JavaMethod + public func subList(_ arg0: Int32, _ arg1: Int32) -> JavaList? + """ + ] + ) + } } @JavaClass("java.util.ArrayList") public struct MyArrayList { } +@JavaClass("java.util.LinkedList") +public struct MyLinkedList { +} + /// Translate a Java class and assert that the translated output contains /// each of the expected "chunks" of text. func assertTranslatedClass( From f7129441a531cb7353b480043114bbe1b1896fce Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 21:07:47 -0700 Subject: [PATCH 7/9] Package: add missing dependency --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index a6ca8cf8..0f492710 100644 --- a/Package.swift +++ b/Package.swift @@ -196,7 +196,7 @@ let package = Package( ), .target( name: "JavaKitReflection", - dependencies: ["JavaKit"], + dependencies: ["JavaKit", "JavaKitCollection"], exclude: ["Java2Swift.config"], swiftSettings: [ .swiftLanguageMode(.v5), From b7966238be68aea93317e3ecc2a1bf8ba892b056 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 21:08:38 -0700 Subject: [PATCH 8/9] Update license ignore file --- .licenseignore | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.licenseignore b/.licenseignore index cb3be0cf..5d0e3172 100644 --- a/.licenseignore +++ b/.licenseignore @@ -33,15 +33,7 @@ Makefile **/*.html **/CMakeLists.txt **/*.jar +**/generated/*.swift gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat -**/*.swift2java -Sources/JavaKit/generated/* -Sources/JavaKitJar/generated/* -Sources/JavaKitNetwork/generated/* -Sources/JavaKitReflection/generated/* -Sources/_Subprocess/* -Sources/_Subprocess/**/* -Sources/_SubprocessCShims/* -Sources/_SubprocessCShims/**/* From cce97fd035c830699b86905ed30b738dd33e99d1 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Oct 2024 21:27:18 -0700 Subject: [PATCH 9/9] Make JavaIterator a Swift Iterator and Java list a Swift Sequence We should generalize this to all of the various Java collection types. --- .../JavaIterator+Iterator.swift | 27 +++++++++++++++++++ Sources/JavaKitCollection/List+Sequence.swift | 23 ++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 Sources/JavaKitCollection/JavaIterator+Iterator.swift create mode 100644 Sources/JavaKitCollection/List+Sequence.swift diff --git a/Sources/JavaKitCollection/JavaIterator+Iterator.swift b/Sources/JavaKitCollection/JavaIterator+Iterator.swift new file mode 100644 index 00000000..add2a48b --- /dev/null +++ b/Sources/JavaKitCollection/JavaIterator+Iterator.swift @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2024 Apple Inc. and the Swift.org project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Swift.org project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// +import JavaKit + +extension JavaIterator: IteratorProtocol { + public typealias Element = E + + public func next() -> E? { + if hasNext() { + let nextResult: JavaObject? = next() + return nextResult.map { $0.as(E.self)! } + } + + return nil + } +} diff --git a/Sources/JavaKitCollection/List+Sequence.swift b/Sources/JavaKitCollection/List+Sequence.swift new file mode 100644 index 00000000..b3629569 --- /dev/null +++ b/Sources/JavaKitCollection/List+Sequence.swift @@ -0,0 +1,23 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2024 Apple Inc. and the Swift.org project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Swift.org project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +extension List: Sequence { + public typealias Element = E + public typealias Iterator = JavaIterator + + public func makeIterator() -> Iterator { + return self.iterator()!.as(JavaIterator.self)! + } +} +