Читайте yaml одной вложенной структуры с разными свойствами в scala - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь создать универсальную функцию для чтения yaml-файлов с той же вложенной структурой, но с разными свойствами в scala, используя snakeYaml. Например, один yaml может быть

myMap:
-
 name: key1
 value: value1
-
 name: key2
 value: value2

Другой yaml может быть

myMap:
-
 name: key1
 value: value1
 data: data1
-
 name: key2
 value: value2
 data: data2

Чтобы прочитать первый yaml, я могу читать, используя приведенный ниже код из здесь :

class configParamsKeyValue {
  @BeanProperty var name: String = null
  @BeanProperty var value: String = null
}

class myConfig{
  @BeanProperty var myMap= new java.util.ArrayList[configParamsKeyValue]();
}

def loadConfig(filename : String): myConfig = {
   val yaml = new Yaml(new Constructor(classOf[myConfig]))
   val stream = new FileInputStream(filename)
   try {
     val obj = yaml.load(stream)
     obj.asInstanceOf[myConfig]
   } finally {
   stream.close()
  }
}

Я хочу иметь возможность передать этот тип configParamsKeyValue ArrayList в качестве параметра в классе myConfig, чтобы я мог также прочитать второй файл yaml, определив другой класс, например

class configParamsKeyValueData {
  @BeanProperty var name: String = null
  @BeanProperty var value: String = null
  @BeanProperty var data: String = null
}

Можеткакое-то тело, пожалуйста, помогите

...