forked from google/ksp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
KSPropertyDeclarationJavaImpl.kt
62 lines (47 loc) · 2.07 KB
/
KSPropertyDeclarationJavaImpl.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.google.devtools.ksp.impl.symbol.kotlin
import com.google.devtools.ksp.KSObjectCache
import com.google.devtools.ksp.symbol.*
import org.jetbrains.kotlin.analysis.api.symbols.KtJavaFieldSymbol
class KSPropertyDeclarationJavaImpl private constructor(private val ktJavaFieldSymbol: KtJavaFieldSymbol) :
KSPropertyDeclaration,
AbstractKSDeclarationImpl(ktJavaFieldSymbol),
KSExpectActual by KSExpectActualImpl(ktJavaFieldSymbol) {
companion object : KSObjectCache<KtJavaFieldSymbol, KSPropertyDeclaration>() {
fun getCached(ktJavaFieldSymbol: KtJavaFieldSymbol): KSPropertyDeclaration =
cache.getOrPut(ktJavaFieldSymbol) { KSPropertyDeclarationJavaImpl(ktJavaFieldSymbol) }
}
override val getter: KSPropertyGetter?
get() = null
override val setter: KSPropertySetter?
get() = null
override val extensionReceiver: KSTypeReference?
get() = null
override val type: KSTypeReference by lazy {
KSTypeReferenceImpl.getCached(ktJavaFieldSymbol.returnType, this@KSPropertyDeclarationJavaImpl)
}
override val isMutable: Boolean
get() = !modifiers.contains(Modifier.FINAL)
override val hasBackingField: Boolean
get() = true
override fun isDelegated(): Boolean {
return false
}
override fun findOverridee(): KSPropertyDeclaration? {
TODO("Not yet implemented")
}
override fun asMemberOf(containing: KSType): KSType {
TODO("Not yet implemented")
}
override val typeParameters: List<KSTypeParameter>
get() = emptyList()
override val qualifiedName: KSName? by lazy {
KSNameImpl.getCached("${this.parentDeclaration!!.qualifiedName!!.asString()}.${simpleName.asString()}")
}
override val packageName: KSName
get() = KSNameImpl.getCached(ktJavaFieldSymbol.callableIdIfNonLocal?.packageName?.asString() ?: "")
override val origin: Origin
get() = Origin.JAVA
override fun <D, R> accept(visitor: KSVisitor<D, R>, data: D): R {
return visitor.visitPropertyDeclaration(this, data)
}
}