Skip to content

Commit 5a61886

Browse files
committed
JavaClass macro: stop generating javaThis and javaEnvironment members
Provide these properties via an extension to AnyJavaObject, accessing the holder values, rather than splatting that same code into every @javaclass.
1 parent 91e4a6b commit 5a61886

File tree

4 files changed

+8
-30
lines changed

4 files changed

+8
-30
lines changed

Sources/JavaKit/AnyJavaObject.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,19 @@ public protocol AnyJavaObject {
5050

5151
/// The Swift instance that keeps the Java holder alive.
5252
var javaHolder: JavaObjectHolder { get }
53+
}
5354

55+
extension AnyJavaObject {
5456
/// Retrieve the underlying Java object.
55-
var javaThis: jobject { get }
57+
public var javaThis: jobject {
58+
javaHolder.object!
59+
}
5660

5761
/// Retrieve the environment in which this Java object resides.
58-
var javaEnvironment: JNIEnvironment { get }
59-
}
62+
public var javaEnvironment: JNIEnvironment {
63+
javaHolder.environment
64+
}
6065

61-
extension AnyJavaObject {
6266
/// The full Java class name, where each component is separated by a "/".
6367
static var fullJavaClassNameWithSlashes: String {
6468
let seq = fullJavaClassName.map { $0 == "." ? "/" as Character : $0 }

Sources/JavaKit/Macros.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
member,
3535
names: named(fullJavaClassName),
3636
named(javaHolder),
37-
named(javaThis),
38-
named(javaEnvironment),
3937
named(init(javaHolder:)),
4038
named(JavaSuperclass),
4139
named(`as`)
@@ -70,8 +68,6 @@ public macro JavaClass(
7068
member,
7169
names: named(fullJavaClassName),
7270
named(javaHolder),
73-
named(javaThis),
74-
named(javaEnvironment),
7571
named(init(javaHolder:)),
7672
named(JavaSuperclass),
7773
named(`as`)

Sources/JavaKitMacros/JavaClassMacro.swift

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,18 +69,6 @@ extension JavaClassMacro: MemberMacro {
6969
public var javaHolder: JavaObjectHolder
7070
"""
7171

72-
let javaThisMember: DeclSyntax = """
73-
public var javaThis: jobject {
74-
javaHolder.object!
75-
}
76-
"""
77-
78-
let javaEnvironmentMember: DeclSyntax = """
79-
public var javaEnvironment: JNIEnvironment {
80-
javaHolder.environment
81-
}
82-
"""
83-
8472
let initMember: DeclSyntax = """
8573
public init(javaHolder: JavaObjectHolder) {
8674
self.javaHolder = javaHolder
@@ -98,8 +86,6 @@ extension JavaClassMacro: MemberMacro {
9886
fullJavaClassNameMember,
9987
superclassTypealias,
10088
javaHolderMember,
101-
javaThisMember,
102-
javaEnvironmentMember,
10389
initMember,
10490
nonOptionalAs,
10591
]

Tests/JavaKitMacroTests/JavaClassMacroTests.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,6 @@ class JavaKitMacroTests: XCTestCase {
102102
103103
public var javaHolder: JavaObjectHolder
104104
105-
public var javaThis: jobject {
106-
javaHolder.object!
107-
}
108-
109-
public var javaEnvironment: JNIEnvironment {
110-
javaHolder.environment
111-
}
112-
113105
public init(javaHolder: JavaObjectHolder) {
114106
self.javaHolder = javaHolder
115107
}

0 commit comments

Comments
 (0)