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

com.antwerkz.critter.CritterClass.kt Maven / Gradle / Ivy

There is a newer version: 3.0.5
Show newest version
package com.antwerkz.critter

import com.antwerkz.critter.Visibility.PUBLIC
import org.mongodb.morphia.annotations.Embedded
import java.io.File

abstract class CritterClass(var file: File?, var pkgName: String? = null, var name: String) : AnnotationHolder, Visible {
    lateinit var context: CritterContext
    val qualifiedName: String by lazy {
        pkgName?.let { "${pkgName}.${name}" } ?: name
    }

    abstract val fields: List

    val isEmbedded: Boolean by lazy {
        hasAnnotation(Embedded::class.java)
    }

    override var visibility: Visibility = PUBLIC

    abstract fun isAbstract(): Boolean

    open fun isEnum() = false

    abstract fun lastModified(): Long
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy