Как использовать Smakeyaml, чтобы разобрать множество карт?JAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать Smakeyaml, чтобы разобрать множество карт?

Сообщение Anonymous »

Я создаю двигатель правил тревоги. Этот двигатель принимает файл тревоги (написанный в YAML) и создает кучу правил о том, как обрабатывать тревогу. Примером этого файла конфигурации тревоги является: < /p>

Код: Выделить всё

...
alarmThreshold: 0
alarmClearThreshold: 20
suppressionAlarms:
- source: suppSource
name: suppName
Таким образом, Supressionalarms должен содержать список карт с клавишами источника и имен. Я использую Snakeyaml для разбора файла YAML в следующем объекте Java: < /p>

Код: Выделить всё

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@EqualsAndHashCode(exclude = {"comment"})
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
public class AlarmRuleFile {
private String comment;
private BasicRuleSetModel alarmThreshold;
private BasicRuleSetModel alarmClearThreshold;
private SuppressionRuleSetModel suppressionAlarms;
...
}
, где basicrulesetmodel и suppressionrulesetmodel выглядит следующим образом и расширяет AbstractrulesetModel класс:

import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BasicRuleSetModel extends AbstractRuleSetModel {
public BasicRuleSetModel(String defaultValue) {
super(defaultValue);
}

public BasicRuleSetModel(List rules, String defaultValue) {
super(rules, defaultValue);
}
}

---

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SuppressionRuleSetModel extends AbstractRuleSetModel {

public SuppressionRuleSetModel(List defaultValue) {
super(defaultValue);
}

public SuppressionRuleSetModel(List rules, List defaultValue) {
super(rules, defaultValue);
}
}

---

import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public abstract class AbstractRuleSetModel

Подробнее здесь: https://stackoverflow.com/questions/797 ... ay-of-maps

Вернуться в «JAVA»