name.remal.gradle_plugins.dsl.artifact.HasEntries.kt Maven / Gradle / Ivy
package name.remal.gradle_plugins.dsl.artifact
import name.remal.classNameToResourceName
import java.io.InputStream
import java.util.jar.JarFile.MANIFEST_NAME
import java.util.jar.Manifest
interface HasEntries {
val entryNames: Set
operator fun contains(entryName: String): Boolean = entryName in entryNames
fun openStream(entryName: String): InputStream
val classEntryNames: Set
val classNames: Set
fun containsClass(className: String): Boolean = className in classNames
fun containsClass(clazz: Class<*>): Boolean = containsClass(clazz.name)
fun openStreamForClass(className: String): InputStream = openStream(classNameToResourceName(className))
fun openStreamForClass(clazz: Class<*>): InputStream = openStreamForClass(clazz.name)
val manifestMainAttributes: Map
fun readManifest(): Manifest? {
try {
openStream(MANIFEST_NAME).use {
return Manifest(it)
}
} catch (e: ArtifactFileNotFoundException) {
return null
} catch (e: ArtifactEntryNotFoundException) {
return null
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy