in plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/CodeModernizerManager.kt [155:229]
fun validateCore(project: Project): ValidationResult {
if (isRunningOnRemoteBackend()) {
return ValidationResult(
false,
InvalidTelemetryReason(
CodeTransformPreValidationError.RemoteRunProject,
)
)
}
if (!isCodeTransformAvailable(project)) {
return ValidationResult(
false,
InvalidTelemetryReason(
CodeTransformPreValidationError.NonSsoLogin,
)
)
}
if (ProjectRootManager.getInstance(project).contentRoots.isEmpty()) {
return ValidationResult(
false,
InvalidTelemetryReason(
CodeTransformPreValidationError.EmptyProject,
)
)
}
if (transformationType == CodeTransformType.SQL_CONVERSION) {
val javaModules = project.getJavaModulesWithSQL()
return if (javaModules.isNotEmpty()) {
ValidationResult(
true,
metadata = "found ${javaModules.size} modules with SQL"
)
} else {
ValidationResult(
false,
InvalidTelemetryReason(
CodeTransformPreValidationError.NoJavaProject,
)
)
}
}
val supportedModules = project.getSupportedModules(supportedJavaMappings).toSet()
val validProjectJdk = project.getSupportedJavaMappings(supportedJavaMappings).isNotEmpty()
val projectJdk = project.tryGetJdk()
if (supportedModules.isEmpty() && !validProjectJdk) {
return ValidationResult(
false,
InvalidTelemetryReason(
CodeTransformPreValidationError.UnsupportedJavaVersion,
projectJdk.toString()
)
)
}
val validatedBuildFiles = project.getSupportedBuildFilesWithSupportedJdk(supportedBuildFileNames, supportedJavaMappings)
return if (validatedBuildFiles.isNotEmpty()) {
ValidationResult(
true,
validatedBuildFiles = validatedBuildFiles,
buildSystem = CodeTransformBuildSystem.Maven,
buildSystemVersion = getMavenVersion(project)
)
} else {
ValidationResult(
false,
invalidTelemetryReason = InvalidTelemetryReason(
CodeTransformPreValidationError.UnsupportedBuildSystem,
if (isGradleProject(project)) "Gradle build" else "other build"
),
buildSystem = if (isGradleProject(project)) CodeTransformBuildSystem.Gradle else CodeTransformBuildSystem.Unknown
)
}
}