All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalafix.internal.interfaces.ScalafixEvaluationImpl.scala Maven / Gradle / Ivy

The newest version!
package scalafix.internal.interfaces

import java.util.Optional

import scalafix.cli.ExitStatus
import scalafix.interfaces.ScalafixError
import scalafix.interfaces.ScalafixEvaluation
import scalafix.interfaces.ScalafixEvaluationError
import scalafix.interfaces.ScalafixFileEvaluation
import scalafix.internal.util.OptionOps._

final case class ScalafixEvaluationImpl(
    exitStatus: ExitStatus,
    errorMessage: Option[String],
    fileEvaluations: Seq[ScalafixFileEvaluationImpl]
) extends ScalafixEvaluation {

  override def getError: Optional[ScalafixEvaluationError] =
    exitStatus match {
      case ExitStatus.Ok => None.asJava
      case ExitStatus.NoFilesError =>
        Some(ScalafixEvaluationError.NoFilesError).asJava
      case ExitStatus.CommandLineError =>
        Some(ScalafixEvaluationError.CommandLineError).asJava
      case _ => Some(ScalafixEvaluationError.UnexpectedError).asJava
    }

  override def getErrorMessage: Optional[String] =
    errorMessage.asJava

  override def isSuccessful: Boolean = !getError.isPresent

  override def getFileEvaluations: Array[ScalafixFileEvaluation] =
    fileEvaluations.toArray

  override def apply(): Array[ScalafixError] = {
    fileEvaluations.flatMap(o => o.applyPatches()).toArray
  }
}

object ScalafixEvaluationImpl {

  def apply(
      exitStatus: ExitStatus,
      errorMessage: Option[String] = None
  ): ScalafixEvaluationImpl = {
    new ScalafixEvaluationImpl(exitStatus, errorMessage, Nil)
  }

  def from(
      fileEvaluations: Seq[ScalafixFileEvaluationImpl],
      exitStatus: ExitStatus
  ): ScalafixEvaluationImpl = {
    ScalafixEvaluationImpl(exitStatus, None, fileEvaluations)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy