summaryrefslogtreecommitdiffstats
path: root/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/FieldConditionTranslator.java
diff options
context:
space:
mode:
Diffstat (limited to 'dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/FieldConditionTranslator.java')
-rw-r--r--dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/FieldConditionTranslator.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/FieldConditionTranslator.java b/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/FieldConditionTranslator.java
new file mode 100644
index 0000000..ef2949e
--- /dev/null
+++ b/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/FieldConditionTranslator.java
@@ -0,0 +1,43 @@
+package org.onap.sdc.dcae.rule.editor.translators;
+
+import org.onap.sdc.dcae.composition.restmodels.ruleeditor.Condition;
+import org.onap.sdc.dcae.rule.editor.enums.OperatorTypeEnum;
+
+import java.util.List;
+
+public class FieldConditionTranslator implements IRuleElementTranslator<Condition> {
+
+ private static FieldConditionTranslator fieldConditionTranslator = new FieldConditionTranslator();
+
+ public static FieldConditionTranslator getInstance() {
+ return fieldConditionTranslator;
+ }
+
+ private FieldConditionTranslator(){}
+
+ private class FieldFilterTranslation extends ProcessorTranslation {
+ private String field;
+ private String value;
+
+ private FieldFilterTranslation(Condition condition) {
+ clazz = OperatorTypeEnum.getTypeByName(condition.getOperator()).getType();
+ field = condition.getLeft();
+ value = condition.getRight().get(0);
+ }
+ }
+
+ private class MultiFieldFilterTranslation extends ProcessorTranslation {
+ private String field;
+ private List<String> values;
+
+ private MultiFieldFilterTranslation(Condition condition) {
+ field = condition.getLeft();
+ values = condition.getRight();
+ clazz = OperatorTypeEnum.getTypeByName(condition.getOperator()).getModifiedType();
+ }
+ }
+
+ public Translation translateToHpJson(Condition condition) {
+ return 1 == condition.getRight().size() ? new FieldFilterTranslation(condition) : new MultiFieldFilterTranslation(condition);
+ }
+}