summaryrefslogtreecommitdiffstats
path: root/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/TopoSearchTranslator.java
diff options
context:
space:
mode:
Diffstat (limited to 'dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/TopoSearchTranslator.java')
-rw-r--r--dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/TopoSearchTranslator.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/TopoSearchTranslator.java b/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/TopoSearchTranslator.java
new file mode 100644
index 0000000..005b005
--- /dev/null
+++ b/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/translators/TopoSearchTranslator.java
@@ -0,0 +1,60 @@
+package org.onap.sdc.dcae.rule.editor.translators;
+
+import org.onap.sdc.dcae.composition.restmodels.ruleeditor.Condition;
+import org.onap.sdc.dcae.composition.restmodels.ruleeditor.TopoSearchAction;
+import org.onap.sdc.dcae.rule.editor.enums.OperatorTypeEnum;
+import org.onap.sdc.dcae.rule.editor.enums.RuleEditorElementType;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class TopoSearchTranslator extends ActionTranslator<TopoSearchAction> {
+
+ private static TopoSearchTranslator topoSearchTranslator = new TopoSearchTranslator();
+
+ public static TopoSearchTranslator getInstance() {
+ return topoSearchTranslator;
+ }
+
+ private TopoSearchTranslator() {
+ }
+
+ private class TopoSearchTranslation extends ProcessorTranslation {
+ private String searchField;
+ private String searchValue;
+ private Object searchFilter;
+ private Map <String, Object> updates;
+ private List<String> enrichFields;
+ private String enrichPrefix;
+
+ private TopoSearchTranslation(TopoSearchAction action) {
+ clazz = "TopoSearch";
+ searchField = action.searchField();
+ searchValue = action.searchValue();
+ if(action.conditionalSearch()) {
+ searchFilter = getSimpleConditionTranslation(action.searchFilter());
+ }
+ if(action.doEnrich()){
+ enrichFields = action.enrichFields();
+ enrichPrefix = action.enrichPrefix();
+ } else {
+ updates = new LinkedHashMap<>();
+ updates.putAll(action.updatesMap());
+ updates.put("isEnriched", true);
+ }
+ }
+ }
+
+ private Object getSimpleConditionTranslation(Condition condition) {
+ String conditionType = OperatorTypeEnum.getTypeByName(condition.getOperator()).getConditionType();
+ IRuleElementTranslator<Condition> translator = RuleEditorElementType.getElementTypeByName(conditionType).getTranslator();
+ return translator.translateToHpJson(condition);
+ }
+
+
+ public Object translateToHpJson(TopoSearchAction action) {
+ return new TopoSearchTranslation(action);
+ }
+
+}