Get rid of redundant Jsr305State
This commit is contained in:
+11
-12
@@ -29,8 +29,6 @@ class JavaTypeEnhancementStateParser(private val collector: MessageCollector) {
|
|||||||
jspecifyState: String?,
|
jspecifyState: String?,
|
||||||
nullabilityAnnotations: Array<String>?,
|
nullabilityAnnotations: Array<String>?,
|
||||||
): JavaTypeEnhancementState {
|
): JavaTypeEnhancementState {
|
||||||
val jsr305State = parseJsr305State(jsr305Args)
|
|
||||||
|
|
||||||
val compatqualCheckerFrameworkAnnotationsReportLevel = when (supportCompatqualCheckerFrameworkAnnotations) {
|
val compatqualCheckerFrameworkAnnotationsReportLevel = when (supportCompatqualCheckerFrameworkAnnotations) {
|
||||||
"enable" -> ReportLevel.STRICT
|
"enable" -> ReportLevel.STRICT
|
||||||
"disable" -> ReportLevel.IGNORE
|
"disable" -> ReportLevel.IGNORE
|
||||||
@@ -43,10 +41,9 @@ class JavaTypeEnhancementStateParser(private val collector: MessageCollector) {
|
|||||||
getDefaultReportLevelForAnnotation(CHECKER_FRAMEWORK_COMPATQUAL_ANNOTATIONS_PACKAGE)
|
getDefaultReportLevelForAnnotation(CHECKER_FRAMEWORK_COMPATQUAL_ANNOTATIONS_PACKAGE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
val jsr305Settings = parseJsr305State(jsr305Args)
|
||||||
val jspecifyReportLevel = parseJspecifyReportLevel(jspecifyState)
|
val jspecifyReportLevel = parseJspecifyReportLevel(jspecifyState)
|
||||||
val nullabilityAnnotationReportLevels = parseNullabilityAnnotationReportLevels(nullabilityAnnotations)
|
val nullabilityAnnotationReportLevels = parseNullabilityAnnotationReportLevels(nullabilityAnnotations)
|
||||||
val jsr305Settings = Jsr305Settings(jsr305State.global ?: ReportLevel.WARN, jsr305State.migration, jsr305State.usedDefined)
|
|
||||||
|
|
||||||
return JavaTypeEnhancementState(jsr305Settings) {
|
return JavaTypeEnhancementState(jsr305Settings) {
|
||||||
when {
|
when {
|
||||||
@@ -99,17 +96,12 @@ class JavaTypeEnhancementStateParser(private val collector: MessageCollector) {
|
|||||||
return reportLevel
|
return reportLevel
|
||||||
}
|
}
|
||||||
|
|
||||||
private data class Jsr305State(
|
private fun parseJsr305State(args: Array<String>?): Jsr305Settings {
|
||||||
val global: ReportLevel?,
|
|
||||||
val migration: ReportLevel?,
|
|
||||||
val usedDefined: Map<FqName, ReportLevel>
|
|
||||||
)
|
|
||||||
|
|
||||||
private fun parseJsr305State(args: Array<String>?): Jsr305State {
|
|
||||||
var global: ReportLevel? = null
|
var global: ReportLevel? = null
|
||||||
var migration: ReportLevel? = null
|
var migration: ReportLevel? = null
|
||||||
val userDefined = mutableMapOf<FqName, ReportLevel>()
|
val userDefined = mutableMapOf<FqName, ReportLevel>()
|
||||||
val compilerOption = "-Xjsr305"
|
val compilerOption = "-Xjsr305"
|
||||||
|
val defaultSettings = Jsr305Settings.DEFAULT
|
||||||
|
|
||||||
fun parseJsr305UnderMigration(item: String): ReportLevel? {
|
fun parseJsr305UnderMigration(item: String): ReportLevel? {
|
||||||
val rawState = item.split(":").takeIf { it.size == 2 }?.get(1)
|
val rawState = item.split(":").takeIf { it.size == 2 }?.get(1)
|
||||||
@@ -156,7 +148,14 @@ class JavaTypeEnhancementStateParser(private val collector: MessageCollector) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Jsr305State(global, migration, userDefined)
|
|
||||||
|
val globalLevel = global ?: defaultSettings.globalLevel
|
||||||
|
|
||||||
|
return Jsr305Settings(
|
||||||
|
globalLevel = globalLevel,
|
||||||
|
migrationLevel = migration ?: getDefaultMigrationJsr305ReportLevelForGivenGlobal(globalLevel),
|
||||||
|
userDefinedLevelForSpecificAnnotation = defaultSettings.userDefinedLevelForSpecificAnnotation
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reportUnrecognizedReportLevel(item: String, sourceCompilerOption: String) {
|
private fun reportUnrecognizedReportLevel(item: String, sourceCompilerOption: String) {
|
||||||
|
|||||||
+4
-1
@@ -55,10 +55,13 @@ fun getDefaultJsr305Settings(): Jsr305Settings {
|
|||||||
} else {
|
} else {
|
||||||
jsr305Settings.reportLevelBefore
|
jsr305Settings.reportLevelBefore
|
||||||
}
|
}
|
||||||
val migrationLevel = if (globalReportLevel == ReportLevel.WARN) null else globalReportLevel
|
val migrationLevel = getDefaultMigrationJsr305ReportLevelForGivenGlobal(globalReportLevel)
|
||||||
return Jsr305Settings(globalReportLevel, migrationLevel)
|
return Jsr305Settings(globalReportLevel, migrationLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getDefaultMigrationJsr305ReportLevelForGivenGlobal(globalReportLevel: ReportLevel) =
|
||||||
|
if (globalReportLevel == ReportLevel.WARN) null else globalReportLevel
|
||||||
|
|
||||||
fun getDefaultReportLevelForAnnotation(annotationFqName: FqName) = getReportLevelForAnnotation(annotationFqName, emptyMap())
|
fun getDefaultReportLevelForAnnotation(annotationFqName: FqName) = getReportLevelForAnnotation(annotationFqName, emptyMap())
|
||||||
|
|
||||||
fun getReportLevelForAnnotation(annotation: FqName, configuredReportLevels: Map<FqName, ReportLevel>): ReportLevel {
|
fun getReportLevelForAnnotation(annotation: FqName, configuredReportLevels: Map<FqName, ReportLevel>): ReportLevel {
|
||||||
|
|||||||
Reference in New Issue
Block a user