У меня нет библиотек, в которых есть функции для анализа данных, но, поскольку вы знаете формат данных, их легко проанализировать вручную .
На входе есть 3 группы (applications
, suites
, products
), разделенные символом
. Чтобы получить группы вам нужно:
def input = "Application!01.01.01 TestSuite1,TestSuite2,TestSuite3,TestSuite4 Product!01.01.01,Product2!01.01.02"
def groups = input.split(' ')
Для обработки приложений вам нужно разделить группу 0 с символом ,
(на случай, если есть много приложений). Вы получили список пар в формате: name!version
. Каждая пара должна быть разделена на !
, поэтому вы получите список списков в формате: [[name, version]]
. Из последней структуры легко создать карту. Все шаги вместе:
def applications = groups[0].split(',').collect { it.split('!') }.collectEntries { [(it[0]):it[1]] }
Получить список наборов просто, просто разделите группу 1 с ,
символом:
def suites = groups[1].split(',')
Наконец, продукты аналогичны списку приложений, но следует использовать эту временную группу 2:
def products = groups[2].split(',').collect { it.split('!') }.collectEntries { [(it[0]):it[1]] }