Skip to content

Commit 9abac42

Browse files
committed
move jni type signature to jextract instead of JavaTypes
1 parent 42cbfd5 commit 9abac42

File tree

2 files changed

+38
-27
lines changed

2 files changed

+38
-27
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2025 Apple Inc. and the Swift.org project authors
6+
// Licensed under Apache License v2.0
7+
//
8+
// See LICENSE.txt for license information
9+
// See CONTRIBUTORS.txt for the list of Swift.org project authors
10+
//
11+
// SPDX-License-Identifier: Apache-2.0
12+
//
13+
//===----------------------------------------------------------------------===//
14+
15+
import JavaTypes
16+
17+
extension JavaType {
18+
var jniTypeSignature: String {
19+
switch self {
20+
case .boolean: "Z"
21+
case .byte: "B"
22+
case .char: "C"
23+
case .short: "S"
24+
case .int: "I"
25+
case .long: "J"
26+
case .float: "F"
27+
case .double: "D"
28+
case .class(let package, let name):
29+
if let package {
30+
"L\(package.replacingOccurrences(of: ".", with: "/"))/\(name);"
31+
} else {
32+
"L\(name);"
33+
}
34+
case .array(let javaType): "[\(javaType.jniTypeSignature)"
35+
case .void: fatalError("There is no type signature for 'void'")
36+
}
37+
}
38+
}

Sources/JavaTypes/JavaType+JNI.swift

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

15-
#if canImport(FoundationEssentials)
16-
import FoundationEssentials
17-
#else
18-
import Foundation
19-
#endif
20-
2115
extension JavaType {
2216
/// Map this Java type to the appropriate JNI type name.
2317
package var jniTypeName: String {
@@ -63,25 +57,4 @@ extension JavaType {
6357
case .void: fatalError("There is no field name for 'void'")
6458
}
6559
}
66-
67-
package var jniTypeSignature: String {
68-
switch self {
69-
case .boolean: "Z"
70-
case .byte: "B"
71-
case .char: "C"
72-
case .short: "S"
73-
case .int: "I"
74-
case .long: "J"
75-
case .float: "F"
76-
case .double: "D"
77-
case .class(let package, let name):
78-
if let package {
79-
"L\(package.replacingOccurrences(of: ".", with: "/"))/\(name);"
80-
} else {
81-
"L\(name);"
82-
}
83-
case .array(let javaType): "[\(javaType.jniTypeSignature)"
84-
case .void: fatalError("There is no type signature for 'void'")
85-
}
86-
}
8760
}

0 commit comments

Comments
 (0)