blob: bf95a2eb219328375c6bae14ac76a6b64c235173 [file] [log] [blame]
package com.android.codegen
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
open class ClassInfo(val classAst: ClassOrInterfaceDeclaration, val fileInfo: FileInfo) {
val fileAst = fileInfo.fileAst
val nestedClasses = classAst.members.filterIsInstance<ClassOrInterfaceDeclaration>()
val superInterfaces = classAst.implementedTypes.map { it.asString() }
val superClass = classAst.extendedTypes.getOrNull(0)
val ClassName = classAst.nameAsString
private val genericArgsAst = classAst.typeParameters
val genericArgs = if (genericArgsAst.isEmpty()) "" else {
genericArgsAst.map { it.nameAsString }.joinToString(", ").let { "<$it>" }
}
val ClassType = ClassName + genericArgs
val constDefs = mutableListOf<ConstDef>()
val fields = classAst.fields
.filterNot { it.isTransient || it.isStatic }
.mapIndexed { i, node -> FieldInfo(index = i, fieldAst = node, classInfo = this) }
.apply { lastOrNull()?.isLast = true }
}