DCAE-D be initial commit
[sdc/dcae-d/dt-be-main.git] / dcaedt_be / src / main / java / org / onap / sdc / dcae / rule / editor / translators / CopyActionTranslator.java
1 package org.onap.sdc.dcae.rule.editor.translators;
2
3 import org.onap.sdc.common.onaplog.Enums.LogLevel;
4 import org.onap.sdc.dcae.composition.restmodels.ruleeditor.BaseAction;
5
6 import java.util.LinkedHashMap;
7 import java.util.List;
8 import java.util.Map;
9
10 import org.onap.sdc.dcae.composition.restmodels.ruleeditor.BaseAction;
11
12 public class CopyActionTranslator<A extends BaseAction> implements IRuleElementTranslator<A>{
13
14         private static CopyActionTranslator copyActionTranslator = new CopyActionTranslator();
15
16         public static CopyActionTranslator getInstance() {
17                 return copyActionTranslator;
18         }
19
20         CopyActionTranslator(){}
21
22         public Translation translateToHpJson(A action) {
23                 return new CopyActionSetTranslation(action.getTarget(), action.getFromValue());
24         }
25
26         void addToHpJsonProcessors(A action, List<Translation> processors) {
27                 processors.add(translateToHpJson(action));
28         }
29
30         public boolean addToHpJsonProcessors(A action, List<Translation> processors, boolean asNewProcessor) {
31                 debugLogger.log(LogLevel.DEBUG, this.getClass().getName(), "Translating {} action. New Processor: {}", action.getActionType(), asNewProcessor);
32                 if(asNewProcessor)
33                         addToHpJsonProcessors(action, processors);
34                 else
35                         ((CopyActionSetTranslation) processors.get(processors.size()-1)).updates.put(action.getTarget(), action.getFromValue());
36                 return false;
37         }
38
39         class CopyActionSetTranslation extends ProcessorTranslation {
40                 Map<String, String> updates = new LinkedHashMap<>();
41                 CopyActionSetTranslation(String target, String from) {
42                         clazz = "Set";
43                         updates.put(target, from);
44                 }
45         }
46
47 }