aboutsummaryrefslogtreecommitdiff
path: root/common-util/src/main/kotlin/com/google/devtools/ksp/processing/impl/KSNameImpl.kt
blob: 8697eaa2d8606a01325f40e21ff20f6c906c4b65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.google.devtools.ksp.processing.impl

import com.google.devtools.ksp.KSObjectCache
import com.google.devtools.ksp.symbol.KSName

class KSNameImpl private constructor(val name: String) : KSName {
    companion object : KSObjectCache<String, KSNameImpl>() {
        fun getCached(name: String) = cache.getOrPut(name) { KSNameImpl(name) }
    }

    override fun asString(): String {
        return name
    }

    override fun getQualifier(): String {
        return name.split(".").dropLast(1).joinToString(".")
    }

    override fun getShortName(): String {
        return name.split(".").last()
    }
}