All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.faendir.kotlin.autodsl.SourceInfoResolver.kt Maven / Gradle / Ivy

There is a newer version: 2.4.0
Show newest version
package com.faendir.kotlin.autodsl

import com.google.devtools.ksp.symbol.ClassKind
import com.squareup.kotlinpoet.ClassName
import com.squareup.kotlinpoet.TypeName
import kotlin.reflect.KClass
import kotlin.reflect.KProperty1

interface SourceInfoResolver {

    fun getClassesWithAnnotation(annotation: KClass): List

    fun getClassesWithAnnotation(annotation: TYPE): List

    fun TYPE.getClassKind(): ClassKind

    fun ANNOTATED.hasAnnotation(annotation: KClass): Boolean

    fun  ANNOTATED.getAnnotationTypeProperty(annotation: KClass, property: KProperty1>): ClassName?

    fun  ANNOTATED.getAnnotationProperty(annotation: KClass, property: KProperty1): V?

    fun TYPE.isAbstract(): Boolean

    fun TYPE.getConstructors(): List

    fun CONSTRUCTOR.isAccessible(): Boolean

    fun TYPE.getPrimaryConstructor(): CONSTRUCTOR?

    fun CONSTRUCTOR.isValid(): Boolean

    fun CONSTRUCTOR.getParameters(): List

    fun TYPE.asClassName(): ClassName

    fun PARAMETER.getTypeDeclaration(): TYPE?

    fun PARAMETER.getTypeArguments(): List

    fun PARAMETER.getTypeName(): TypeName

    fun PARAMETER.getName(): String

    fun PARAMETER.hasDefault(): Boolean

    fun PARAMETER.getDoc(): String?
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy