Реализация класса Config, содержащего Enum Map, с помощью PureConfig и Enumeratum

Я пытаюсь прочитать свой файл конфигурации в свой класс case, одним из атрибутов которого является ключ Map of Enumeratum и значение класса Case, используя библиотеки pureconfig и pureconfig-enumeratum версии 0.14.0 со scala 2.11. Когда я меняю ключ Map с ключа Enumeratum на String, он работает, но не работает с ключом Enum.

      import enumeratum.EnumEntry.{Hyphencase}
import enumeratum._
import pureconfig.{ConfigSource}
import pureconfig.generic.auto._
import pureconfig.module.enumeratum._ 

object CheckPureConfig extends App {
      
      private val myConf = ConfigSource.default.loadOrThrow[SsystemConf]
      println(myConf)
    }
    
    case class SsystemConf(target: Map[Ssystem, MyConfig])
    case class MyConfig(path: Ssystem, link: String)
    
    sealed abstract class Ssystem(myField: String) extends EnumEntry with Hyphencase{
      def printit() = myField
    }
    object Ssystem extends Enum[Ssystem] {
      val values = findValues
    
      case object MyEnumA extends Ssystem("testFieldEnum1")
      case object MyEnumB extends Ssystem("testFieldEnum2")
    }

А это мой application.conf

      target {
   my-enum-a= {
      path : "samplepath1"
      link : "samplehttp1"
    }
    my-enum-b = {
          path : "samplepath2"
          link : "samplehttp2"
    }
}

0 ответов

Другие вопросы по тегам