DCAE-D be initial commit
[sdc/dcae-d/dt-be-main.git] / dcaedt_be / src / main / java / org / onap / sdc / dcae / rule / editor / translators / ConditionTranslator.java
1 package org.onap.sdc.dcae.rule.editor.translators;
2
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;
6
7 import java.util.stream.Collectors;
8
9 public class ConditionTranslator implements IRuleElementTranslator<Condition> {
10
11         private static ConditionTranslator conditionTranslator = new ConditionTranslator();
12
13         public static ConditionTranslator getInstance() {
14                 return conditionTranslator;
15         }
16
17         private ConditionTranslator(){}
18
19         private class StringFilterTranslation extends ProcessorTranslation {
20                 private String string;
21                 private String value;
22
23                 private StringFilterTranslation(Condition condition, String value){
24                         this.clazz = OperatorTypeEnum.getTypeByName(condition.getOperator()).getType();
25                         this.string = condition.getLeft();
26                         this.value = value;
27                 }
28
29                 private StringFilterTranslation(Condition condition){
30                         this(condition, condition.getRight().get(0));
31                 }
32         }
33
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()));
37         }
38
39
40 }