Skip to content

Commit 4a55cb6

Browse files
committed
Add friends
1 parent f44a6ac commit 4a55cb6

File tree

6 files changed

+197
-2
lines changed

6 files changed

+197
-2
lines changed

Sources/Java2SwiftLib/StringExtras.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,13 @@ extension String {
4141
}
4242

4343
public func optionalWrappedType() -> String? {
44-
if hasPrefix("JavaOptional<") {
44+
if self == "JavaOptionalInt!" {
45+
return "Int32?"
46+
} else if self == "JavaOptionalDouble!" {
47+
return "Double?"
48+
} else if self == "JavaOptionalLong!" {
49+
return "Int64?"
50+
} else if hasPrefix("JavaOptional<") {
4551
return "\(String(self[index(startIndex, offsetBy: 13)..<lastIndex(of: ">")!]))?"
4652
} else {
4753
return nil

Sources/JavaKit/Optional+JavaOptional.swift

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,57 @@ extension Optional where Wrapped: AnyJavaObject {
2525
}
2626
}
2727
}
28+
29+
extension Optional where Wrapped == Double {
30+
func toJavaOptional() -> JavaOptionalDouble {
31+
if let self {
32+
return try! JavaClass<JavaOptionalDouble>().of(self)!
33+
} else {
34+
return try! JavaClass<JavaOptionalDouble>().empty()!
35+
}
36+
}
37+
38+
init(javaOptional: JavaOptionalDouble?) {
39+
if let javaOptional {
40+
self = javaOptional.isPresent() ? javaOptional.getAsDouble() : nil
41+
} else {
42+
self = nil
43+
}
44+
}
45+
}
46+
47+
extension Optional where Wrapped == Int32 {
48+
func toJavaOptional() -> JavaOptionalInt {
49+
if let self {
50+
return try! JavaClass<JavaOptionalInt>().of(self)!
51+
} else {
52+
return try! JavaClass<JavaOptionalInt>().empty()!
53+
}
54+
}
55+
56+
init(javaOptional: JavaOptionalInt?) {
57+
if let javaOptional {
58+
self = javaOptional.isPresent() ? javaOptional.getAsInt() : nil
59+
} else {
60+
self = nil
61+
}
62+
}
63+
}
64+
65+
extension Optional where Wrapped == Int64 {
66+
func toJavaOptional() -> JavaOptionalLong {
67+
if let self {
68+
return try! JavaClass<JavaOptionalLong>().of(self)!
69+
} else {
70+
return try! JavaClass<JavaOptionalLong>().empty()!
71+
}
72+
}
73+
74+
init(javaOptional: JavaOptionalLong?) {
75+
if let javaOptional {
76+
self = javaOptional.isPresent() ? javaOptional.getAsLong() : nil
77+
} else {
78+
self = nil
79+
}
80+
}
81+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import JavaRuntime
3+
4+
@JavaClass("java.util.OptionalDouble")
5+
open class JavaOptionalDouble: JavaObject {
6+
@JavaMethod
7+
open override func equals(_ arg0: JavaObject?) -> Bool
8+
9+
@JavaMethod
10+
open override func toString() -> String
11+
12+
@JavaMethod
13+
open override func hashCode() -> Int32
14+
15+
@JavaMethod
16+
open func isEmpty() -> Bool
17+
18+
@JavaMethod
19+
open func isPresent() -> Bool
20+
21+
@JavaMethod
22+
open func orElse(_ arg0: Double) -> Double
23+
24+
@JavaMethod
25+
open func orElseThrow() -> Double
26+
27+
@JavaMethod
28+
open func getAsDouble() -> Double
29+
}
30+
extension JavaClass<JavaOptionalDouble> {
31+
@JavaStaticMethod
32+
public func of(_ arg0: Double) -> JavaOptionalDouble!
33+
34+
public func ofOptional(_ arg0: Double) -> Double? {
35+
Optional(javaOptional: of(arg0))
36+
}
37+
38+
@JavaStaticMethod
39+
public func empty() -> JavaOptionalDouble!
40+
41+
public func emptyOptional() -> Double? {
42+
Optional(javaOptional: empty())
43+
}
44+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import JavaRuntime
3+
4+
@JavaClass("java.util.OptionalInt")
5+
open class JavaOptionalInt: JavaObject {
6+
@JavaMethod
7+
open override func equals(_ arg0: JavaObject?) -> Bool
8+
9+
@JavaMethod
10+
open override func toString() -> String
11+
12+
@JavaMethod
13+
open override func hashCode() -> Int32
14+
15+
@JavaMethod
16+
open func isEmpty() -> Bool
17+
18+
@JavaMethod
19+
open func isPresent() -> Bool
20+
21+
@JavaMethod
22+
open func orElse(_ arg0: Int32) -> Int32
23+
24+
@JavaMethod
25+
open func orElseThrow() -> Int32
26+
27+
@JavaMethod
28+
open func getAsInt() -> Int32
29+
}
30+
extension JavaClass<JavaOptionalInt> {
31+
@JavaStaticMethod
32+
public func of(_ arg0: Int32) -> JavaOptionalInt!
33+
34+
public func ofOptional(_ arg0: Int32) -> Int32? {
35+
Optional(javaOptional: of(arg0))
36+
}
37+
38+
@JavaStaticMethod
39+
public func empty() -> JavaOptionalInt!
40+
41+
public func emptyOptional() -> Int32? {
42+
Optional(javaOptional: empty())
43+
}
44+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Auto-generated by Java-to-Swift wrapper generator.
2+
import JavaRuntime
3+
4+
@JavaClass("java.util.OptionalLong")
5+
open class JavaOptionalLong: JavaObject {
6+
@JavaMethod
7+
open override func equals(_ arg0: JavaObject?) -> Bool
8+
9+
@JavaMethod
10+
open override func toString() -> String
11+
12+
@JavaMethod
13+
open override func hashCode() -> Int32
14+
15+
@JavaMethod
16+
open func isEmpty() -> Bool
17+
18+
@JavaMethod
19+
open func isPresent() -> Bool
20+
21+
@JavaMethod
22+
open func orElse(_ arg0: Int64) -> Int64
23+
24+
@JavaMethod
25+
open func orElseThrow() -> Int64
26+
27+
@JavaMethod
28+
open func getAsLong() -> Int64
29+
}
30+
extension JavaClass<JavaOptionalLong> {
31+
@JavaStaticMethod
32+
public func of(_ arg0: Int64) -> JavaOptionalLong!
33+
34+
public func ofOptional(_ arg0: Int64) -> Int64? {
35+
Optional(javaOptional: of(arg0))
36+
}
37+
38+
@JavaStaticMethod
39+
public func empty() -> JavaOptionalLong!
40+
41+
public func emptyOptional() -> Int64? {
42+
Optional(javaOptional: empty())
43+
}
44+
}

Sources/JavaKit/swift-java.config

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
"java.lang.String" : "JavaString",
2020
"java.lang.Throwable" : "Throwable",
2121
"java.lang.Void" : "JavaVoid",
22-
"java.util.Optional": "JavaOptional"
22+
"java.util.Optional": "JavaOptional",
23+
"java.util.OptionalDouble": "JavaOptionalDouble",
24+
"java.util.OptionalInt": "JavaOptionalInt",
25+
"java.util.OptionalLong": "JavaOptionalLong"
2326
}
2427
}

0 commit comments

Comments
 (0)