Skip to content

Commit db42f4b

Browse files
committed
Move from the "canonical" Java class name to the class name
The canonical class name uses "." rather than "$" for the nested class distinction, so we can no longer tell where the package ends. Use the "normal" name which uses $ for nested classes.
1 parent 2a94ee9 commit db42f4b

File tree

6 files changed

+11
-11
lines changed

6 files changed

+11
-11
lines changed

Sources/Java2Swift/JavaToSwift.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ struct JavaToSwift: ParsableCommand {
247247
try writeContents(
248248
swiftFileText,
249249
to: swiftFileName,
250-
description: "Java class '\(javaClass.getCanonicalName())' translation"
250+
description: "Java class '\(javaClass.getName())' translation"
251251
)
252252
}
253253
}

Sources/Java2SwiftLib/JavaTranslator.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,14 +191,14 @@ extension JavaTranslator {
191191
/// can produce multiple declarations, such as a separate extension of
192192
/// JavaClass to house static methods.
193193
package func translateClass(_ javaClass: JavaClass<JavaObject>) -> [DeclSyntax] {
194-
let fullName = javaClass.getCanonicalName()
194+
let fullName = javaClass.getName()
195195
let swiftTypeName = try! getSwiftTypeNameFromJavaClassName(fullName)
196196

197197
// Superclass.
198198
let extends: String
199199
if !javaClass.isInterface(),
200200
let superclass = javaClass.getSuperclass(),
201-
superclass.getCanonicalName() != "java.lang.Object"
201+
superclass.getName() != "java.lang.Object"
202202
{
203203
do {
204204
extends = ", extends: \(try getSwiftTypeName(superclass).swiftName).self"
@@ -278,7 +278,7 @@ extension JavaTranslator {
278278
do {
279279
let implementedInSwift = constructor.isNative &&
280280
constructor.getDeclaringClass()!.equals(javaClass.as(JavaObject.self)!) &&
281-
swiftNativeImplementations.contains(javaClass.getCanonicalName())
281+
swiftNativeImplementations.contains(javaClass.getName())
282282

283283
let translated = try translateConstructor(
284284
constructor,
@@ -312,7 +312,7 @@ extension JavaTranslator {
312312

313313
let implementedInSwift = method.isNative &&
314314
method.getDeclaringClass()!.equals(javaClass.as(JavaObject.self)!) &&
315-
swiftNativeImplementations.contains(javaClass.getCanonicalName())
315+
swiftNativeImplementations.contains(javaClass.getName())
316316

317317
// Translate the method if we can.
318318
do {
@@ -438,7 +438,7 @@ extension JavaTranslator {
438438
// Members that are native and will instead go into a NativeMethods
439439
// protocol.
440440
var nativeMembers: [DeclSyntax] = []
441-
if swiftNativeImplementations.contains(javaClass.getCanonicalName()) {
441+
if swiftNativeImplementations.contains(javaClass.getName()) {
442442
nativeMembers.append(
443443
contentsOf: javaClass.getDeclaredMethods().compactMap {
444444
$0.flatMap { method in

Sources/JavaKit/Optional+JavaObject.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ extension Optional: JavaValue where Wrapped: AnyJavaObject {
3737
}
3838

3939
public static var javaType: JavaType {
40-
JavaType(canonicalClassName: Wrapped.fullJavaClassName)
40+
JavaType(className: Wrapped.fullJavaClassName)
4141
}
4242

4343
public static func jniMethodCall(

Sources/JavaTypes/JavaType+JavaSource.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ extension JavaType {
3232
self = try JavaType(mangledName: name)
3333

3434
case let className:
35-
self = JavaType(canonicalClassName: className)
35+
self = JavaType(className: className)
3636
}
3737
}
3838
}

Sources/JavaTypes/JavaType.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ public enum JavaType: Equatable, Hashable {
3131
/// A Java array.
3232
indirect case array(JavaType)
3333

34-
/// Given a canonical class name such as "java.lang.Object", split it into
34+
/// Given a class name such as "java.lang.Object", split it into
3535
/// its package and class name to form a class instance.
36-
public init(canonicalClassName name: some StringProtocol) {
36+
public init(className name: some StringProtocol) {
3737
if let lastDot = name.lastIndex(of: ".") {
3838
self = .class(
3939
package: String(name[..<lastDot]),

Sources/JavaTypes/Mangling.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ extension JavaType {
125125
string = string[string.index(after: semicolonIndex)...]
126126

127127
return JavaType(
128-
canonicalClassName: canonicalNameWithSlashes.replacingSlashesWithPeriods()
128+
className: canonicalNameWithSlashes.replacingSlashesWithPeriods()
129129
)
130130

131131
default:

0 commit comments

Comments
 (0)