Skip to content

Commit 8245e85

Browse files
committed
Fix build + feedback
1 parent 8a2ed65 commit 8245e85

File tree

4 files changed

+21
-14
lines changed

4 files changed

+21
-14
lines changed

Samples/JavaKitSampleApp/Sources/JavaKitExample/JavaKitExample.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,17 @@ extension HelloSwift: HelloSwiftNativeMethods {
8080
let helper = ThreadSafeHelperClass(environment: javaEnvironment)
8181
let threadSafe: Sendable = helper
8282

83-
let text: String? = helper.textOptional
84-
let value: String? = helper.getValueOptional(Optional<String>.none)
85-
let textFunc: String? = helper.getTextOptional()
83+
checkOptionals(helper: helper)
8684

8785
return i * j
8886
}
8987

88+
func checkOptionals(helper: ThreadSafeHelperClass) {
89+
let text: JavaString? = helper.textOptional
90+
let value: String? = helper.getValueOptional(Optional<JavaString>.none)
91+
let textFunc: JavaString? = helper.getTextOptional()
92+
}
93+
9094
@JavaMethod
9195
func throwMessageFromSwift(_ message: String) throws -> String {
9296
throw SwiftWrappedError.message(message)

Sources/Java2SwiftLib/JavaClassTranslator.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ extension JavaClassTranslator {
573573
let name = param.secondName!.trimmedDescription
574574

575575
return if let optionalType = param.type.trimmedDescription.optionalWrappedType() {
576-
(clause: FunctionParameterSyntax(firstName: "_", secondName: "\(raw: name)", type: TypeSyntax(stringLiteral: "\(optionalType)")), passedArg: "\(name)?.toJavaOptional()")
576+
(clause: "_ \(raw: name): \(raw: optionalType)", passedArg: "\(name).toJavaOptional()")
577577
} else {
578578
(clause: param, passedArg: "\(name)")
579579
}
@@ -613,15 +613,17 @@ extension JavaClassTranslator {
613613
let fieldAttribute: AttributeSyntax = javaField.isStatic ? "@JavaStaticField" : "@JavaField";
614614
let swiftFieldName = javaField.getName().escapedSwiftName
615615

616-
if let optionalType = swiftTypeName.optionalWrappedType() {
616+
if let optionalType = typeName.optionalWrappedType() {
617617
let setter = if !javaField.isFinal {
618618
"""
619619
620620
set {
621-
\(swiftFieldName) = newValue?.toJavaOptional()
621+
\(swiftFieldName) = newValue.toJavaOptional()
622622
}
623623
"""
624-
} else { "" }
624+
} else {
625+
""
626+
}
625627
return """
626628
\(fieldAttribute)(isFinal: \(raw: javaField.isFinal))
627629
public var \(raw: swiftFieldName): \(raw: typeName)

Sources/Java2SwiftLib/StringExtras.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,13 @@ extension String {
4343
public func optionalWrappedType() -> String? {
4444
if self == "JavaOptionalInt!" {
4545
return "Int32?"
46-
} else if self == "JavaOptionalDouble!" {
47-
return "Double?"
4846
} else if self == "JavaOptionalLong!" {
4947
return "Int64?"
48+
} else if self == "JavaOptionalDouble!" {
49+
return "Double?"
5050
} else if hasPrefix("JavaOptional<") {
51-
return "\(String(self[index(startIndex, offsetBy: 13)..<lastIndex(of: ">")!]))?"
51+
let offsetCount = "JavaOptional<".count
52+
return "\(String(self[index(startIndex, offsetBy: offsetCount)..<lastIndex(of: ">")!]))?"
5253
} else {
5354
return nil
5455
}

Sources/JavaKit/Optional+JavaOptional.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
extension Optional where Wrapped: AnyJavaObject {
15+
public extension Optional where Wrapped: AnyJavaObject {
1616
func toJavaOptional() -> JavaOptional<Wrapped> {
1717
return try! JavaClass<JavaOptional<Wrapped>>().ofNullable(self?.as(JavaObject.self)).as(JavaOptional<Wrapped>.self)!
1818
}
@@ -26,7 +26,7 @@ extension Optional where Wrapped: AnyJavaObject {
2626
}
2727
}
2828

29-
extension Optional where Wrapped == Double {
29+
public extension Optional where Wrapped == Double {
3030
func toJavaOptional() -> JavaOptionalDouble {
3131
if let self {
3232
return try! JavaClass<JavaOptionalDouble>().of(self)!
@@ -44,7 +44,7 @@ extension Optional where Wrapped == Double {
4444
}
4545
}
4646

47-
extension Optional where Wrapped == Int32 {
47+
public extension Optional where Wrapped == Int32 {
4848
func toJavaOptional() -> JavaOptionalInt {
4949
if let self {
5050
return try! JavaClass<JavaOptionalInt>().of(self)!
@@ -62,7 +62,7 @@ extension Optional where Wrapped == Int32 {
6262
}
6363
}
6464

65-
extension Optional where Wrapped == Int64 {
65+
public extension Optional where Wrapped == Int64 {
6666
func toJavaOptional() -> JavaOptionalLong {
6767
if let self {
6868
return try! JavaClass<JavaOptionalLong>().of(self)!

0 commit comments

Comments
 (0)