Skip to content

Commit 70e6cca

Browse files
Tatenda-kktoso
andauthored
generate extensions of wrapper types owned by other modules (#852)
Co-authored-by: Konrad Malawski <ktoso@apple.com>
1 parent 91b181d commit 70e6cca

38 files changed

Lines changed: 1441 additions & 78 deletions

‎Package.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ let package = Package(
219219
),
220220
.target(
221221
name: "JavaUtilFunction",
222-
dependencies: ["SwiftJava"],
222+
dependencies: ["SwiftJava", "JavaUtil"],
223223
path: "Sources/JavaStdlib/JavaUtilFunction",
224224
exclude: ["swift-java.config"],
225225
swiftSettings: [

‎Sources/JavaStdlib/JavaLangReflect/JavaClass+Reflection.swift‎

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,7 @@
1414

1515
import SwiftJava
1616

17-
// TODO: We should be able to autogenerate this as an extension based on
18-
// knowing that JavaClass was defined elsewhere.
1917
extension JavaClass {
20-
@JavaMethod
21-
public func getDeclaredMethods() -> [Method?]
22-
23-
@JavaMethod
24-
public func getMethods() -> [Method?]
25-
26-
@JavaMethod
27-
public func getDeclaredMethod(
28-
_ name: String,
29-
_ parameterTypes: [JavaClass<JavaObject>?]
30-
) throws -> Method?
31-
32-
@JavaMethod
33-
public func getFields() -> [Field?]
34-
35-
@JavaMethod
36-
public func getGenericInterfaces() -> [Type?]
37-
38-
@JavaMethod
39-
public func getGenericSuperclass() -> Type!
40-
41-
@JavaMethod
42-
public func getConstructors() -> [Constructor<ObjectType>?]
43-
44-
@JavaMethod
45-
public func getParameters() -> [Parameter?]
46-
47-
@JavaMethod
48-
public func getTypeParameters() -> [TypeVariable<JavaClass<JavaObject>>?]
49-
50-
@JavaMethod
51-
public func getAnnotations() -> [Annotation?]
52-
5318
public func `as`(_: Type.Type) -> Type {
5419
Type(javaHolder: javaHolder)
5520
}
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import SwiftJava
3+
import SwiftJavaJNICore
4+
5+
extension JavaClass {
6+
/// Java method `getAnnotatedInterfaces`.
7+
///
8+
/// ### Java method signature
9+
/// ```java
10+
/// public java.lang.reflect.AnnotatedType[] java.lang.Class.getAnnotatedInterfaces()
11+
/// ```
12+
@JavaMethod
13+
public func getAnnotatedInterfaces() -> [AnnotatedType?]
14+
15+
/// Java method `getAnnotatedSuperclass`.
16+
///
17+
/// ### Java method signature
18+
/// ```java
19+
/// public java.lang.reflect.AnnotatedType java.lang.Class.getAnnotatedSuperclass()
20+
/// ```
21+
@JavaMethod
22+
public func getAnnotatedSuperclass() -> AnnotatedType!
23+
24+
/// Java method `getAnnotation`.
25+
///
26+
/// ### Java method signature
27+
/// ```java
28+
/// public <A extends java.lang.annotation.Annotation> A java.lang.Class.getAnnotation(java.lang.Class<A>)
29+
/// ```
30+
@JavaMethod(typeErasedResult: "A!", typeErasedResultBound: Annotation?.self)
31+
public func getAnnotation<A: AnyJavaObject>(_ arg0: JavaClass<A>?) -> A!
32+
33+
/// Java method `getAnnotations`.
34+
///
35+
/// ### Java method signature
36+
/// ```java
37+
/// public java.lang.annotation.Annotation[] java.lang.Class.getAnnotations()
38+
/// ```
39+
@JavaMethod
40+
public func getAnnotations() -> [Annotation?]
41+
42+
/// Java method `getAnnotationsByType`.
43+
///
44+
/// ### Java method signature
45+
/// ```java
46+
/// public <A extends java.lang.annotation.Annotation> A[] java.lang.Class.getAnnotationsByType(java.lang.Class<A>)
47+
/// ```
48+
@JavaMethod
49+
public func getAnnotationsByType<A: AnyJavaObject>(_ arg0: JavaClass<A>?) -> [A?]
50+
51+
/// Java method `getConstructor`.
52+
///
53+
/// ### Java method signature
54+
/// ```java
55+
/// public java.lang.reflect.Constructor<T> java.lang.Class.getConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException
56+
/// ```
57+
@JavaMethod
58+
public func getConstructor(_ arg0: [JavaClass<JavaObject>?]) throws -> Constructor<T>!
59+
60+
/// Java method `getConstructors`.
61+
///
62+
/// ### Java method signature
63+
/// ```java
64+
/// public java.lang.reflect.Constructor<?>[] java.lang.Class.getConstructors()
65+
/// ```
66+
@JavaMethod
67+
public func getConstructors() -> [Constructor<JavaObject>?]
68+
69+
/// Java method `getDeclaredAnnotation`.
70+
///
71+
/// ### Java method signature
72+
/// ```java
73+
/// public <A extends java.lang.annotation.Annotation> A java.lang.Class.getDeclaredAnnotation(java.lang.Class<A>)
74+
/// ```
75+
@JavaMethod(typeErasedResult: "A!", typeErasedResultBound: Annotation?.self)
76+
public func getDeclaredAnnotation<A: AnyJavaObject>(_ arg0: JavaClass<A>?) -> A!
77+
78+
/// Java method `getDeclaredAnnotations`.
79+
///
80+
/// ### Java method signature
81+
/// ```java
82+
/// public java.lang.annotation.Annotation[] java.lang.Class.getDeclaredAnnotations()
83+
/// ```
84+
@JavaMethod
85+
public func getDeclaredAnnotations() -> [Annotation?]
86+
87+
/// Java method `getDeclaredAnnotationsByType`.
88+
///
89+
/// ### Java method signature
90+
/// ```java
91+
/// public <A extends java.lang.annotation.Annotation> A[] java.lang.Class.getDeclaredAnnotationsByType(java.lang.Class<A>)
92+
/// ```
93+
@JavaMethod
94+
public func getDeclaredAnnotationsByType<A: AnyJavaObject>(_ arg0: JavaClass<A>?) -> [A?]
95+
96+
/// Java method `getDeclaredConstructor`.
97+
///
98+
/// ### Java method signature
99+
/// ```java
100+
/// public java.lang.reflect.Constructor<T> java.lang.Class.getDeclaredConstructor(java.lang.Class<?>...) throws java.lang.NoSuchMethodException
101+
/// ```
102+
@JavaMethod
103+
public func getDeclaredConstructor(_ arg0: [JavaClass<JavaObject>?]) throws -> Constructor<T>!
104+
105+
/// Java method `getDeclaredConstructors`.
106+
///
107+
/// ### Java method signature
108+
/// ```java
109+
/// public java.lang.reflect.Constructor<?>[] java.lang.Class.getDeclaredConstructors()
110+
/// ```
111+
@JavaMethod
112+
public func getDeclaredConstructors() -> [Constructor<JavaObject>?]
113+
114+
/// Java method `getDeclaredField`.
115+
///
116+
/// ### Java method signature
117+
/// ```java
118+
/// public java.lang.reflect.Field java.lang.Class.getDeclaredField(java.lang.String) throws java.lang.NoSuchFieldException
119+
/// ```
120+
@JavaMethod
121+
public func getDeclaredField(_ arg0: String) throws -> Field!
122+
123+
/// Java method `getDeclaredFields`.
124+
///
125+
/// ### Java method signature
126+
/// ```java
127+
/// public java.lang.reflect.Field[] java.lang.Class.getDeclaredFields()
128+
/// ```
129+
@JavaMethod
130+
public func getDeclaredFields() -> [Field?]
131+
132+
/// Java method `getDeclaredMethod`.
133+
///
134+
/// ### Java method signature
135+
/// ```java
136+
/// public java.lang.reflect.Method java.lang.Class.getDeclaredMethod(java.lang.String,java.lang.Class<?>...) throws java.lang.NoSuchMethodException
137+
/// ```
138+
@JavaMethod
139+
public func getDeclaredMethod(_ arg0: String, _ arg1: [JavaClass<JavaObject>?]) throws -> Method!
140+
141+
/// Java method `getDeclaredMethods`.
142+
///
143+
/// ### Java method signature
144+
/// ```java
145+
/// public java.lang.reflect.Method[] java.lang.Class.getDeclaredMethods()
146+
/// ```
147+
@JavaMethod
148+
public func getDeclaredMethods() -> [Method?]
149+
150+
/// Java method `getEnclosingConstructor`.
151+
///
152+
/// ### Java method signature
153+
/// ```java
154+
/// public java.lang.reflect.Constructor<?> java.lang.Class.getEnclosingConstructor()
155+
/// ```
156+
@JavaMethod
157+
public func getEnclosingConstructor() -> Constructor<JavaObject>!
158+
159+
/// Java method `getEnclosingMethod`.
160+
///
161+
/// ### Java method signature
162+
/// ```java
163+
/// public java.lang.reflect.Method java.lang.Class.getEnclosingMethod()
164+
/// ```
165+
@JavaMethod
166+
public func getEnclosingMethod() -> Method!
167+
168+
/// Java method `getField`.
169+
///
170+
/// ### Java method signature
171+
/// ```java
172+
/// public java.lang.reflect.Field java.lang.Class.getField(java.lang.String) throws java.lang.NoSuchFieldException
173+
/// ```
174+
@JavaMethod
175+
public func getField(_ arg0: String) throws -> Field!
176+
177+
/// Java method `getFields`.
178+
///
179+
/// ### Java method signature
180+
/// ```java
181+
/// public java.lang.reflect.Field[] java.lang.Class.getFields()
182+
/// ```
183+
@JavaMethod
184+
public func getFields() -> [Field?]
185+
186+
/// Java method `getGenericInterfaces`.
187+
///
188+
/// ### Java method signature
189+
/// ```java
190+
/// public java.lang.reflect.Type[] java.lang.Class.getGenericInterfaces()
191+
/// ```
192+
@JavaMethod
193+
public func getGenericInterfaces() -> [Type?]
194+
195+
/// Java method `getGenericSuperclass`.
196+
///
197+
/// ### Java method signature
198+
/// ```java
199+
/// public java.lang.reflect.Type java.lang.Class.getGenericSuperclass()
200+
/// ```
201+
@JavaMethod
202+
public func getGenericSuperclass() -> Type!
203+
204+
/// Java method `getMethod`.
205+
///
206+
/// ### Java method signature
207+
/// ```java
208+
/// public java.lang.reflect.Method java.lang.Class.getMethod(java.lang.String,java.lang.Class<?>...) throws java.lang.NoSuchMethodException
209+
/// ```
210+
@JavaMethod
211+
public func getMethod(_ arg0: String, _ arg1: [JavaClass<JavaObject>?]) throws -> Method!
212+
213+
/// Java method `getMethods`.
214+
///
215+
/// ### Java method signature
216+
/// ```java
217+
/// public java.lang.reflect.Method[] java.lang.Class.getMethods()
218+
/// ```
219+
@JavaMethod
220+
public func getMethods() -> [Method?]
221+
222+
/// Java method `getTypeParameters`.
223+
///
224+
/// ### Java method signature
225+
/// ```java
226+
/// public java.lang.reflect.TypeVariable<java.lang.Class<T>>[] java.lang.Class.getTypeParameters()
227+
/// ```
228+
@JavaMethod
229+
public func getTypeParameters() -> [TypeVariable<JavaClass<T>>?]
230+
}

‎Sources/JavaStdlib/JavaLangReflect/swift-java.config‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"extendClasses" : ["java.lang.Class"],
23
"classes" : {
34
"java.lang.annotation.Annotation" : "Annotation",
45
"java.lang.reflect.AccessibleObject" : "AccessibleObject",

Sources/JavaStdlib/JavaNet/JavaURL+Extensions.swift renamed to Sources/JavaStdlib/JavaNet/JavaURL+URIConversions.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ import FoundationEssentials
2121
import Foundation
2222
#endif
2323

24-
extension JavaURL {
25-
@JavaMethod
26-
public func toURI() throws -> URI!
27-
}
28-
2924
extension URL {
3025
public static func fromJava(_ url: JavaURL) throws -> URL {
3126
guard let converted = URL(string: try url.toURI().toString()) else {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import SwiftJava
3+
import SwiftJavaJNICore
4+
5+
extension File {
6+
@JavaMethod
7+
@_nonoverride public convenience init(_ arg0: URI?, environment: JNIEnvironment? = nil)
8+
9+
/// Java method `toURI`.
10+
///
11+
/// ### Java method signature
12+
/// ```java
13+
/// public java.net.URI java.io.File.toURI()
14+
/// ```
15+
@JavaMethod
16+
public func toURI() -> URI!
17+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import SwiftJava
3+
import SwiftJavaJNICore
4+
5+
extension JavaURL {
6+
/// Java method `openConnection`.
7+
///
8+
/// ### Java method signature
9+
/// ```java
10+
/// public java.net.URLConnection java.net.URL.openConnection() throws java.io.IOException
11+
/// ```
12+
@JavaMethod
13+
public func openConnection() throws -> URLConnection!
14+
15+
/// Java method `toURI`.
16+
///
17+
/// ### Java method signature
18+
/// ```java
19+
/// public java.net.URI java.net.URL.toURI() throws java.net.URISyntaxException
20+
/// ```
21+
@JavaMethod
22+
public func toURI() throws -> URI!
23+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import SwiftJava
3+
import SwiftJavaJNICore
4+
5+
extension JavaClass<Path> {
6+
/// Java method `of`.
7+
///
8+
/// ### Java method signature
9+
/// ```java
10+
/// public static java.nio.file.Path java.nio.file.Path.of(java.net.URI)
11+
/// ```
12+
@JavaStaticMethod
13+
public func of(_ arg0: URI?) -> Path!
14+
}
15+
extension Path {
16+
/// Java method `toUri`.
17+
///
18+
/// ### Java method signature
19+
/// ```java
20+
/// public abstract java.net.URI java.nio.file.Path.toUri()
21+
/// ```
22+
@JavaMethod
23+
public func toUri() -> URI!
24+
}

‎Sources/JavaStdlib/JavaNet/swift-java.config‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"extendClasses" : ["java.net.URL", "java.io.File", "java.nio.file.Path"],
23
"classes" : {
34
"java.net.URI" : "URI",
45
"java.net.URLClassLoader" : "URLClassLoader",
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import JavaUtil
3+
import SwiftJava
4+
import SwiftJavaJNICore
5+
6+
extension ArrayDeque {
7+
/// Java method `forEach`.
8+
///
9+
/// ### Java method signature
10+
/// ```java
11+
/// public void java.util.ArrayDeque.forEach(java.util.function.Consumer<? super E>)
12+
/// ```
13+
@JavaMethod
14+
public func forEach(_ arg0: JavaConsumer<JavaObject>?)
15+
16+
/// Java method `removeIf`.
17+
///
18+
/// ### Java method signature
19+
/// ```java
20+
/// public boolean java.util.ArrayDeque.removeIf(java.util.function.Predicate<? super E>)
21+
/// ```
22+
@JavaMethod
23+
public func removeIf(_ arg0: JavaPredicate<JavaObject>?) -> Bool
24+
}

0 commit comments

Comments
 (0)