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

busymachines.semver.semVerParsingFailures.scala Maven / Gradle / Ivy

/**
  * Copyright (c) 2017-2018 BusyMachines
  *
  * See company homepage at: https://www.busymachines.com/
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
package busymachines.semver

import busymachines.core._

/**
  *
  * @author Lorand Szakacs, [email protected], [email protected]
  * @since 13 Nov 2017
  *
  */
sealed abstract class InvalidSemanticVersionParsingFailure(m: String) extends InvalidInputFailure(m)

final case class InvalidSemanticVersionFailure(input: String, parseError: String)
    extends InvalidSemanticVersionParsingFailure(
      s"Failed to parse semantic version '$input' because: $parseError",
    ) {
  override def id: AnomalyID = ParsingAnomalyIDs.InvalidSemanticVersion

  override val parameters: Anomaly.Parameters = Anomaly.Parameters(
    "input"      -> input,
    "parseError" -> parseError,
  )
}

final case class InvalidSemanticVersionLabelFailure(input: String, parseError: String)
    extends InvalidSemanticVersionParsingFailure(
      s"Failed to parse label of semantic version '$input' because: $parseError",
    ) {
  override def id: AnomalyID = ParsingAnomalyIDs.InvalidSemanticVersionLabel

  override val parameters: Anomaly.Parameters = Anomaly.Parameters(
    "input"      -> input,
    "parseError" -> parseError,
  )
}

object ParsingAnomalyIDs {

  case object InvalidSemanticVersion extends AnomalyID {
    override def name: String = "BMC_P_1"
  }

  case object InvalidSemanticVersionLabel extends AnomalyID {
    override def name: String = "BMC_P_2"
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy