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

coursier.FileError.scala Maven / Gradle / Ivy

The newest version!
package coursier

import java.io.File

sealed abstract class FileError(
  val `type`: String,
  val message: String
) extends Product with Serializable {
  def describe: String = s"${`type`}: $message"
}

object FileError {

  final case class DownloadError(reason: String) extends FileError(
    "download error",
    reason
  )

  final case class NotFound(
    file: String,
    permanent: Option[Boolean] = None
  ) extends FileError(
    "not found",
    file
  )

  final case class Unauthorized(
    file: String,
    realm: Option[String]
  ) extends FileError(
    "unauthorized",
    file + realm.fold("")(" (" + _ + ")")
  )

  final case class ChecksumNotFound(
    sumType: String,
    file: String
  ) extends FileError(
    "checksum not found",
    file
  )

  final case class ChecksumFormatError(
    sumType: String,
    file: String
  ) extends FileError(
    "checksum format error",
    file
  )

  final case class WrongChecksum(
    sumType: String,
    got: String,
    expected: String,
    file: String,
    sumFile: String
  ) extends FileError(
    "wrong checksum",
    file
  )

  sealed abstract class Recoverable(
    `type`: String,
    message: String
  ) extends FileError(`type`, message)
  final case class Locked(file: File) extends Recoverable(
    "locked",
    file.toString
  )
  final case class ConcurrentDownload(url: String) extends Recoverable(
    "concurrent download",
    url
  )

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy