Clean-up JavaModuleInfo.kt
This commit is contained in:
+17
-20
@@ -29,33 +29,30 @@ import org.jetbrains.org.objectweb.asm.Opcodes.ACC_TRANSITIVE
|
|||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
class JavaModuleInfo(
|
class JavaModuleInfo(
|
||||||
val moduleName: String,
|
val moduleName: String,
|
||||||
val requires: List<Requires>,
|
val requires: List<Requires>,
|
||||||
val exports: List<Exports>
|
val exports: List<Exports>
|
||||||
) {
|
) {
|
||||||
data class Requires(val moduleName: String, val isTransitive: Boolean)
|
data class Requires(val moduleName: String, val isTransitive: Boolean)
|
||||||
|
|
||||||
data class Exports(val packageFqName: FqName, val toModules: List<String>)
|
data class Exports(val packageFqName: FqName, val toModules: List<String>)
|
||||||
|
|
||||||
override fun toString(): String =
|
override fun toString() = "Module $moduleName (${requires.size} requires, ${exports.size} exports)"
|
||||||
"Module $moduleName (${requires.size} requires, ${exports.size} exports)"
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun create(psiJavaModule: PsiJavaModule): JavaModuleInfo {
|
fun create(psiJavaModule: PsiJavaModule) = JavaModuleInfo(
|
||||||
return JavaModuleInfo(
|
psiJavaModule.name,
|
||||||
psiJavaModule.name,
|
psiJavaModule.requires.mapNotNull { statement ->
|
||||||
psiJavaModule.requires.mapNotNull { statement ->
|
statement.moduleName?.let { moduleName ->
|
||||||
statement.moduleName?.let { moduleName ->
|
Requires(moduleName, statement.hasModifierProperty(PsiModifier.TRANSITIVE))
|
||||||
JavaModuleInfo.Requires(moduleName, statement.hasModifierProperty(PsiModifier.TRANSITIVE))
|
}
|
||||||
}
|
},
|
||||||
},
|
psiJavaModule.exports.mapNotNull { statement ->
|
||||||
psiJavaModule.exports.mapNotNull { statement ->
|
statement.packageName?.let { packageName ->
|
||||||
statement.packageName?.let { packageName ->
|
Exports(FqName(packageName), statement.moduleNames)
|
||||||
JavaModuleInfo.Exports(FqName(packageName), statement.moduleNames)
|
}
|
||||||
}
|
}
|
||||||
}
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun read(file: VirtualFile): JavaModuleInfo? {
|
fun read(file: VirtualFile): JavaModuleInfo? {
|
||||||
val contents = try { file.contentsToByteArray() } catch (e: IOException) { return null }
|
val contents = try { file.contentsToByteArray() } catch (e: IOException) { return null }
|
||||||
|
|||||||
Reference in New Issue
Block a user