1 package org.onap.sdc.dcae.rule.editor.translators;
3 import org.onap.sdc.dcae.composition.restmodels.ruleeditor.Condition;
4 import org.onap.sdc.dcae.rule.editor.enums.ConditionTypeEnum;
5 import org.onap.sdc.dcae.rule.editor.enums.OperatorTypeEnum;
7 import java.util.stream.Collectors;
9 public class ConditionTranslator implements IRuleElementTranslator<Condition> {
11 private static ConditionTranslator conditionTranslator = new ConditionTranslator();
13 public static ConditionTranslator getInstance() {
14 return conditionTranslator;
17 private ConditionTranslator(){}
19 private class StringFilterTranslation extends ProcessorTranslation {
20 private String string;
23 private StringFilterTranslation(Condition condition, String value){
24 this.clazz = OperatorTypeEnum.getTypeByName(condition.getOperator()).getType();
25 this.string = condition.getLeft();
29 private StringFilterTranslation(Condition condition){
30 this(condition, condition.getRight().get(0));
34 public Translation translateToHpJson(Condition condition) {
35 return 1 == condition.getRight().size() ? new StringFilterTranslation(condition) : new FiltersTranslation(ConditionTypeEnum.ANY.getFilterClass(), condition.getRight().stream()
36 .map(r -> new StringFilterTranslation(condition, r)).collect(Collectors.toList()));