Skip to content

Commit 39787f8

Browse files
committed
JavaKit: Autogenerate JavaClass rather than hand-rolling it
1 parent ac64dd7 commit 39787f8

File tree

4 files changed

+166
-22
lines changed

4 files changed

+166
-22
lines changed

Sources/JavaKit/Java2Swift.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"java.lang.Boolean" : "JavaBoolean",
44
"java.lang.Byte" : "JavaByte",
55
"java.lang.Character" : "JavaCharacter",
6+
"java.lang.Class" : "JavaClass",
67
"java.lang.Double" : "JavaDouble",
78
"java.lang.Error" : "JavaError",
89
"java.lang.Exception" : "Exception",

Sources/JavaKit/JavaClass.swift renamed to Sources/JavaKit/JavaClass+Initialization.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@
1414

1515
import JavaRuntime
1616

17-
/// Wrapper around a Java class that provides access to the static members of
18-
/// the class.
19-
@JavaClass("java.lang.Class")
20-
public struct JavaClass<ObjectType: AnyJavaObject> {
17+
extension JavaClass {
18+
public typealias ObjectType = T
19+
2120
/// Lookup this Java class within the given environment.
2221
public init(environment: JNIEnvironment? = nil) throws {
2322
let environment = try environment ?? JavaVirtualMachine.shared().environment()
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import JavaRuntime
3+
4+
@JavaClass("java.lang.Class")
5+
public struct JavaClass<T: AnyJavaObject> {
6+
@JavaMethod
7+
public func getName() -> String
8+
9+
@JavaMethod
10+
public func toString() -> String
11+
12+
@JavaMethod
13+
public func isAssignableFrom(_ arg0: JavaClass<JavaObject>?) -> Bool
14+
15+
@JavaMethod
16+
public func isInstance(_ arg0: JavaObject?) -> Bool
17+
18+
@JavaMethod
19+
public func getModifiers() -> Int32
20+
21+
@JavaMethod
22+
public func isInterface() -> Bool
23+
24+
@JavaMethod
25+
public func isArray() -> Bool
26+
27+
@JavaMethod
28+
public func isPrimitive() -> Bool
29+
30+
@JavaMethod
31+
public func isHidden() -> Bool
32+
33+
@JavaMethod
34+
public func getSuperclass() -> JavaClass<JavaObject>?
35+
36+
@JavaMethod
37+
public func cast(_ arg0: JavaObject?) -> JavaObject?
38+
39+
@JavaMethod
40+
public func componentType() -> JavaClass<JavaObject>?
41+
42+
@JavaMethod
43+
public func getComponentType() -> JavaClass<JavaObject>?
44+
45+
@JavaMethod
46+
public func isAnnotation() -> Bool
47+
48+
@JavaMethod
49+
public func isEnum() -> Bool
50+
51+
@JavaMethod
52+
public func isRecord() -> Bool
53+
54+
@JavaMethod
55+
public func newInstance() throws -> JavaObject?
56+
57+
@JavaMethod
58+
public func getInterfaces() -> [JavaClass<JavaObject>?]
59+
60+
@JavaMethod
61+
public func isMemberClass() -> Bool
62+
63+
@JavaMethod
64+
public func isLocalClass() -> Bool
65+
66+
@JavaMethod
67+
public func isAnonymousClass() -> Bool
68+
69+
@JavaMethod
70+
public func getEnclosingClass() throws -> JavaClass<JavaObject>?
71+
72+
@JavaMethod
73+
public func arrayType() -> JavaClass<JavaObject>?
74+
75+
@JavaMethod
76+
public func getSimpleName() -> String
77+
78+
@JavaMethod
79+
public func getCanonicalName() -> String
80+
81+
@JavaMethod
82+
public func getPackageName() -> String
83+
84+
@JavaMethod
85+
public func desiredAssertionStatus() -> Bool
86+
87+
@JavaMethod
88+
public func getNestHost() -> JavaClass<JavaObject>?
89+
90+
@JavaMethod
91+
public func descriptorString() -> String
92+
93+
@JavaMethod
94+
public func getPermittedSubclasses() -> [JavaClass<JavaObject>?]
95+
96+
@JavaMethod
97+
public func toGenericString() -> String
98+
99+
@JavaMethod
100+
public func isSynthetic() -> Bool
101+
102+
@JavaMethod
103+
public func getSigners() -> [JavaObject?]
104+
105+
@JavaMethod
106+
public func getDeclaringClass() throws -> JavaClass<JavaObject>?
107+
108+
@JavaMethod
109+
public func getTypeName() -> String
110+
111+
@JavaMethod
112+
public func getClasses() -> [JavaClass<JavaObject>?]
113+
114+
@JavaMethod
115+
public func getDeclaredClasses() throws -> [JavaClass<JavaObject>?]
116+
117+
@JavaMethod
118+
public func getEnumConstants() -> [JavaObject?]
119+
120+
@JavaMethod
121+
public func asSubclass(_ arg0: JavaClass<JavaObject>?) -> JavaClass<JavaObject>?
122+
123+
@JavaMethod
124+
public func isNestmateOf(_ arg0: JavaClass<JavaObject>?) -> Bool
125+
126+
@JavaMethod
127+
public func getNestMembers() -> [JavaClass<JavaObject>?]
128+
129+
@JavaMethod
130+
public func isSealed() -> Bool
131+
132+
@JavaMethod
133+
public func equals(_ arg0: JavaObject?) -> Bool
134+
135+
@JavaMethod
136+
public func hashCode() -> Int32
137+
138+
@JavaMethod
139+
public func getClass() -> JavaClass<JavaObject>?
140+
141+
@JavaMethod
142+
public func notify()
143+
144+
@JavaMethod
145+
public func notifyAll()
146+
147+
@JavaMethod
148+
public func wait(_ arg0: Int64) throws
149+
150+
@JavaMethod
151+
public func wait(_ arg0: Int64, _ arg1: Int32) throws
152+
153+
@JavaMethod
154+
public func wait() throws
155+
}
156+
extension JavaClass {
157+
@JavaStaticMethod
158+
public func forName<T: AnyJavaObject>(_ arg0: String) throws -> JavaClass<JavaObject>? where ObjectType == JavaClass<T>
159+
160+
@JavaStaticMethod
161+
public func forPrimitiveName<T: AnyJavaObject>(_ arg0: String) -> JavaClass<JavaObject>? where ObjectType == JavaClass<T>
162+
}

Sources/JavaKitReflection/JavaClass+Reflection.swift

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,6 @@ import JavaKit
1717
// TODO: We should be able to autogenerate this as an extension based on
1818
// knowing that JavaClass was defined elsewhere.
1919
extension JavaClass {
20-
@JavaMethod
21-
public func equals(_ arg0: JavaObject?) -> Bool
22-
23-
@JavaMethod
24-
public func getName() -> String
25-
26-
@JavaMethod
27-
public func getSimpleName() -> String
28-
29-
@JavaMethod
30-
public func getCanonicalName() -> String
31-
3220
@JavaMethod
3321
public func getDeclaredMethods() -> [Method?]
3422

@@ -44,15 +32,9 @@ extension JavaClass {
4432
@JavaMethod
4533
public func getParameters() -> [Parameter?]
4634

47-
@JavaMethod
48-
public func getSuperclass() -> JavaClass<JavaSuperclass>?
49-
5035
@JavaMethod
5136
public func getTypeParameters() -> [TypeVariable<JavaClass<JavaObject>>?]
5237

5338
@JavaMethod
5439
public func getGenericInterfaces() -> [Type?]
55-
56-
@JavaMethod
57-
public func isInterface() -> Bool
5840
}

0 commit comments

Comments
 (0)