fun validateCore()

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
                )
            }
        }