From 10c5ff4ce786842584c440eb0b8de036f651cb02 Mon Sep 17 00:00:00 2001 From: Peter van 't Hof <p.j.van_t_hof@lumc.nl> Date: Tue, 10 Feb 2015 18:41:42 +0100 Subject: [PATCH] addError instead of throwing an exeption --- .../lumc/sasc/biopet/utils/ConfigUtils.scala | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala index c8f483f2d..106ef2b6e 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/utils/ConfigUtils.scala @@ -16,6 +16,7 @@ package nl.lumc.sasc.biopet.utils import java.io.File +import nl.lumc.sasc.biopet.core.BiopetQScript import nl.lumc.sasc.biopet.core.Logging import nl.lumc.sasc.biopet.core.config.ConfigValue import argonaut._, Argonaut._ @@ -330,13 +331,14 @@ object ConfigUtils extends Logging { trait ImplicitConversions { import scala.language.implicitConversions - //TODO: unit test on message - private def requiredValue(value: ConfigValue): Unit = { - if (!valueExists(value)) - throw new IllegalStateException("Value does not exist but is required, key: " + value.requestIndex.key + + private def requiredValue(value: ConfigValue): Boolean = { + val exist = valueExists(value) + if (!exist) + BiopetQScript.addError("Value does not exist but is required, key: " + value.requestIndex.key + " module: " + value.requestIndex.module + (if (value.requestIndex.path != Nil) " path: " + value.requestIndex.path.mkString("->") else "")) + exist } private def valueExists(value: ConfigValue): Boolean = { @@ -349,8 +351,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2file(value: ConfigValue): File = { - requiredValue(value) - new File(any2string(value.value)) + if (requiredValue(value)) new File(any2string(value.value)) + else new File("") } /** @@ -369,8 +371,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2string(value: ConfigValue): String = { - requiredValue(value) - any2string(value.value) + if (requiredValue(value)) any2string(value.value) + else "" } /** @@ -389,8 +391,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2long(value: ConfigValue): Long = { - requiredValue(value) - any2long(value.value) + if (requiredValue(value)) any2long(value.value) + else 0L } /** @@ -409,8 +411,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2int(value: ConfigValue): Int = { - requiredValue(value) - any2int(value.value) + if (requiredValue(value)) any2int(value.value) + else 0 } /** @@ -429,8 +431,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2double(value: ConfigValue): Double = { - requiredValue(value) - any2double(value.value) + if (requiredValue(value)) any2double(value.value) + else 0.0 } /** @@ -449,8 +451,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2float(value: ConfigValue): Float = { - requiredValue(value) - any2float(value.value) + if (requiredValue(value)) any2float(value.value) + else 0f } /** @@ -469,8 +471,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2boolean(value: ConfigValue): Boolean = { - requiredValue(value) - any2boolean(value.value) + if (requiredValue(value)) any2boolean(value.value) + else false } /** @@ -489,8 +491,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2list(value: ConfigValue): List[Any] = { - requiredValue(value) - any2list(value.value) + if (requiredValue(value)) any2list(value.value) + else Nil } /** @@ -499,8 +501,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2stringList(value: ConfigValue): List[String] = { - requiredValue(value) - any2stringList(value.value) + if (requiredValue(value)) any2stringList(value.value) + else Nil } /** @@ -509,8 +511,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2stringSet(value: ConfigValue): Set[String] = { - requiredValue(value) - any2stringList(value.value).toSet + if (requiredValue(value)) any2stringList(value.value).toSet + else Set() } /** @@ -519,8 +521,8 @@ object ConfigUtils extends Logging { * @return */ implicit def configValue2map(value: ConfigValue): Map[String, Any] = { - requiredValue(value) - any2map(value.value) + if (requiredValue(value)) any2map(value.value) + else Map() } } } -- GitLab