summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/model/Model.java6
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/canvas/DcaeComponentCatalog.java59
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionDeserializer.java7
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionTypeEnum.java13
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseAction.java100
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCondition.java41
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCopyAction.java10
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Condition.java27
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionDeserializer.java5
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionGroup.java12
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/DateFormatterAction.java39
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/HpMetricAction.java32
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogEventAction.java32
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogTextAction.java50
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MapAction.java45
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRules.java64
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRulesResponse.java20
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ReplaceTextAction.java47
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Rule.java86
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/StringTransformAction.java97
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TopoSearchAction.java191
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TranslateRequest.java79
-rw-r--r--src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/UnaryFieldAction.java67
23 files changed, 1021 insertions, 108 deletions
diff --git a/src/main/java/org/onap/sdc/dcae/composition/model/Model.java b/src/main/java/org/onap/sdc/dcae/composition/model/Model.java
index 9c24602..adcd1bd 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/model/Model.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/model/Model.java
@@ -24,7 +24,7 @@ public class Model {
private String name;
@SerializedName("id")
@Expose
- private Integer id;
+ private String id;
public String getItemId() {
return itemId;
@@ -66,11 +66,11 @@ public class Model {
this.name = name;
}
- public Integer getId() {
+ public String getId() {
return id;
}
- public void setId(Integer id) {
+ public void setId(String id) {
this.id = id;
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/canvas/DcaeComponentCatalog.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/canvas/DcaeComponentCatalog.java
new file mode 100644
index 0000000..aeb4e6c
--- /dev/null
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/canvas/DcaeComponentCatalog.java
@@ -0,0 +1,59 @@
+package org.onap.sdc.dcae.composition.restmodels.canvas;
+
+import org.onap.sdc.dcae.composition.restmodels.sdc.Resource;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+public class DcaeComponentCatalog {
+
+ private List<SubCategoryFolder> elements;
+
+ public List<SubCategoryFolder> getElements() {
+ return elements;
+ }
+
+ public void setElements(List<SubCategoryFolder> elements) {
+ this.elements = elements;
+ }
+
+ public static class SubCategoryFolder {
+ //TODO name and itemId are assigned identical values consider removing one
+ private String name;
+ private String itemId;
+ private List<Resource> items;
+
+ public String getName() {
+ return name;
+ }
+
+ public String getItemId() {
+ return itemId;
+ }
+
+ public List<Resource> getItems() {
+ return items;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setItemId(String itemId) {
+ this.itemId = itemId;
+ }
+
+ public void setItems(List<Resource> items) {
+ this.items = items;
+ }
+
+ public SubCategoryFolder(){}
+
+ public SubCategoryFolder(String subcategory, List<Resource> resources) {
+ this.name = subcategory;
+ this.itemId = subcategory;
+ this.items = resources;
+ }
+ }
+}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionDeserializer.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionDeserializer.java
index 9732035..b8bfae5 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionDeserializer.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionDeserializer.java
@@ -32,9 +32,16 @@ public class ActionDeserializer implements JsonDeserializer<BaseAction> {
case LOG_TEXT:
return LogTextAction.class;
case CLEAR:
+ case CLEAR_NSF:
return UnaryFieldAction.class;
case REPLACE_TEXT:
return ReplaceTextAction.class;
+ case HP_METRIC:
+ return HpMetricAction.class;
+ case STRING_TRANSFORM:
+ return StringTransformAction.class;
+ case TOPO_SEARCH:
+ return TopoSearchAction.class;
default:
// suitable for copy/regex/concat
return BaseCopyAction.class;
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionTypeEnum.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionTypeEnum.java
index 6b66195..30d0da4 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionTypeEnum.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ActionTypeEnum.java
@@ -3,7 +3,18 @@ package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
import java.util.Arrays;
public enum ActionTypeEnum {
- COPY("copy"), MAP("map"), CONCAT("concat"), DATE_FORMATTER("dateFormatter"), LOG_EVENT("logEvent"), LOG_TEXT("logText"), CLEAR("clear"), REPLACE_TEXT("replaceText");
+ COPY("copy"),
+ MAP("map"),
+ CONCAT("concat"),
+ DATE_FORMATTER("dateFormatter"),
+ LOG_EVENT("logEvent"),
+ LOG_TEXT("logText"),
+ CLEAR("clear"),
+ REPLACE_TEXT("replaceText"),
+ CLEAR_NSF("clearNSF"),
+ HP_METRIC("hpMetric"),
+ STRING_TRANSFORM("stringTransform"),
+ TOPO_SEARCH("topologySearch");
private String type;
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseAction.java
index a27e790..78c66b0 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseAction.java
@@ -1,6 +1,9 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import org.apache.commons.lang3.StringUtils;
+
import java.util.Collection;
+import java.util.Objects;
public abstract class BaseAction {
@@ -31,4 +34,101 @@ public abstract class BaseAction {
public abstract boolean referencesTarget(BaseAction other);
public abstract String strippedTarget();
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ BaseAction other = (BaseAction) obj;
+ return Objects.equals(id, other.id) && Objects.equals(actionType, other.actionType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, actionType);
+ }
+
+ class FromField {
+ private String value;
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ FromField(String value){
+ setValue(value);
+ }
+
+ FromField(){}
+
+ private boolean isReference(){
+ return StringUtils.isNoneBlank(value) && value.startsWith("${") && value.endsWith("}");
+ }
+
+ private String strippedReference() {
+ return value.substring(2, value.length()-1);
+ }
+
+ boolean referencesTarget(String target) {
+ return isReference() && target.equals(strippedReference());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj == this || !(null == obj || getClass() != obj.getClass()) && Objects.equals(value, ((FromField)obj).value);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(this.value);
+ }
+ }
+
+ class UIHashMap {
+ private String key;
+ private String value;
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ UIHashMap other = (UIHashMap) obj;
+ return Objects.equals(key, other.key) && Objects.equals(value, other.value);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(key, value);
+ }
+
+ }
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCondition.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCondition.java
index 60a9778..dd10b9b 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCondition.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCondition.java
@@ -1,5 +1,7 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import java.util.Objects;
+
public abstract class BaseCondition {
// UI evaluation fields
@@ -7,5 +9,44 @@ public abstract class BaseCondition {
private String name;
private String id;
+ public String getLevel() {
+ return level;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setLevel(String level) {
+ this.level = level;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
public abstract boolean referencesTarget(String target);
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ BaseCondition other = (BaseCondition) obj;
+ return Objects.equals(id, other.id) && Objects.equals(level, other.level) && Objects.equals(name, other.name);
+ }
+
+ @Override
+ public abstract int hashCode();
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCopyAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCopyAction.java
index 58a40ce..bf2b2b7 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCopyAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/BaseCopyAction.java
@@ -18,23 +18,26 @@ public class BaseCopyAction extends UnaryFieldAction {
}
- public String getFromValue() {
+ public String fromValue() {
if(null == getFrom()) {
return null;
}
- return StringUtils.isNoneBlank(getFrom().getValue()) ? getFrom().getValue() : StringUtils.join(getFromValues(), "");
+ return StringUtils.isNoneBlank(getFrom().getValue()) ? getFrom().getValue() : StringUtils.join(fromValues(), "");
}
- public String getRegexValue() {
+ public String regexValue() {
return getFrom().getRegex();
}
+ //using 'other != this' rather than '!this.equals(other)' because technically it is possible to have two identical actions that are not the same action
+ @Override
public boolean referencesTarget(BaseAction other) {
return getFrom().referencesTarget(other.strippedTarget()) ||
other != this && !CollectionUtils.isEmpty(getFrom().getValues()) && getFrom().getValues().stream().anyMatch(p -> p.referencesTarget(other.strippedTarget()));
}
+ @Override
public String strippedTarget() {
return target.startsWith("${") && target.endsWith("}") ? target.substring(2, target.length()-1) : target;
}
@@ -42,7 +45,6 @@ public class BaseCopyAction extends UnaryFieldAction {
@Override
public boolean equals(Object obj) {
return super.equals(obj) && Objects.equals(target, ((BaseCopyAction)obj).target);
-
}
@Override
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Condition.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Condition.java
index 5f037a6..ea5850d 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Condition.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Condition.java
@@ -1,13 +1,16 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Stream;
public class Condition extends BaseCondition {
protected String left;
protected String operator;
- protected List<String> right;
+ protected List<String> right = new ArrayList<>();
+ protected boolean emptyIsAssigned;
public String getLeft() {
return left;
@@ -33,6 +36,14 @@ public class Condition extends BaseCondition {
this.right = right;
}
+ public boolean isEmptyIsAssigned() {
+ return emptyIsAssigned;
+ }
+
+ public void setEmptyIsAssigned(boolean emptyIsAssigned) {
+ this.emptyIsAssigned = emptyIsAssigned;
+ }
+
@Override
public boolean referencesTarget(String target) {
@@ -42,6 +53,19 @@ public class Condition extends BaseCondition {
.anyMatch(target::equals);
}
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(left, ((Condition)obj).left) &&
+ Objects.equals(operator, ((Condition)obj).operator) &&
+ Objects.equals(right, ((Condition)obj).right) &&
+ emptyIsAssigned == ((Condition)obj).emptyIsAssigned;
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(left, operator, right, emptyIsAssigned);
+ }
+
private String strippedReference(String value) {
return value.substring(2, value.length()-1);
}
@@ -50,5 +74,6 @@ public class Condition extends BaseCondition {
return value.startsWith("${") && value.endsWith("}");
}
+
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionDeserializer.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionDeserializer.java
index b14c3b1..e7757c1 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionDeserializer.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionDeserializer.java
@@ -7,11 +7,12 @@ import java.lang.reflect.Type;
public class ConditionDeserializer implements JsonDeserializer<BaseCondition> {
@Override
- public BaseCondition deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ public BaseCondition deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) {
Type clazz = Condition.class;
JsonElement type = json.getAsJsonObject().get("type");
- if(null != type && !type.isJsonNull())
+ if(null != type && !type.isJsonNull()) {
clazz = ConditionGroup.class;
+ }
return context.deserialize(json, clazz);
}
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionGroup.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionGroup.java
index c8ddc9d..cf132ef 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionGroup.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ConditionGroup.java
@@ -1,6 +1,7 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
import java.util.List;
+import java.util.Objects;
public class ConditionGroup extends BaseCondition {
@@ -28,4 +29,15 @@ public class ConditionGroup extends BaseCondition {
return children.stream().anyMatch(c -> c.referencesTarget(target));
}
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(type, ((ConditionGroup)obj).type) &&
+ Objects.equals(children, ((ConditionGroup)obj).children);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(type, children);
+ }
+
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/DateFormatterAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/DateFormatterAction.java
index d6900f9..b291862 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/DateFormatterAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/DateFormatterAction.java
@@ -1,5 +1,7 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import java.util.Objects;
+
public class DateFormatterAction extends BaseCopyAction {
private DateFormatter dateFormatter = new DateFormatter();
@@ -12,7 +14,7 @@ public class DateFormatterAction extends BaseCopyAction {
this.dateFormatter = dateFormatter;
}
- private class DateFormatter{
+ private class DateFormatter {
private String fromFormat;
private String toFormat;
private String fromTimezone;
@@ -49,9 +51,26 @@ public class DateFormatterAction extends BaseCopyAction {
public void setToTimezone(String toTimezone) {
this.toTimezone = toTimezone;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ DateFormatter other = (DateFormatter) obj;
+ return Objects.equals(fromFormat, other.fromFormat) && Objects.equals(fromTimezone, other.fromTimezone) && Objects.equals(toFormat, other.toFormat) && Objects.equals(toTimezone, other.toTimezone);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(fromFormat, fromTimezone, toFormat, toTimezone);
+ }
}
- public String getFromFormat() {
+ public String fromFormat() {
return dateFormatter.fromFormat;
}
@@ -59,7 +78,7 @@ public class DateFormatterAction extends BaseCopyAction {
this.dateFormatter.fromFormat = fromFormat;
}
- public String getToFormat() {
+ public String toFormat() {
return dateFormatter.toFormat;
}
@@ -67,7 +86,7 @@ public class DateFormatterAction extends BaseCopyAction {
this.dateFormatter.toFormat = toFormat;
}
- public String getFromTz() {
+ public String fromTz() {
return dateFormatter.fromTimezone;
}
@@ -75,11 +94,21 @@ public class DateFormatterAction extends BaseCopyAction {
this.dateFormatter.fromTimezone = fromTz;
}
- public String getToTz() {
+ public String toTz() {
return dateFormatter.toTimezone;
}
public void setToTz(String toTz) {
this.dateFormatter.toTimezone = toTz;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(dateFormatter, ((DateFormatterAction)obj).dateFormatter);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(dateFormatter);
+ }
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/HpMetricAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/HpMetricAction.java
new file mode 100644
index 0000000..f8b2513
--- /dev/null
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/HpMetricAction.java
@@ -0,0 +1,32 @@
+package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+
+import java.util.Objects;
+
+public class HpMetricAction extends BaseAction {
+
+ private String selectedHpMetric;
+
+ public String getSelectedHpMetric() {
+ return selectedHpMetric;
+ }
+
+ public void setSelectedHpMetric(String selectedHpMetric) {
+ this.selectedHpMetric = selectedHpMetric;
+ }
+
+ public boolean referencesTarget(BaseAction other){
+ return false;
+ }
+
+ public String strippedTarget(){return "";}
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(selectedHpMetric, ((HpMetricAction)obj).selectedHpMetric);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(selectedHpMetric);
+ }
+}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogEventAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogEventAction.java
index 49b9ed3..e3ccd44 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogEventAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogEventAction.java
@@ -1,14 +1,34 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import java.util.Objects;
+
public class LogEventAction extends BaseAction {
private LogEvent logEvent;
private class LogEvent {
private String title;
+
+ public String getTitle() {
+ return title;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj == this || !(null == obj || getClass() != obj.getClass()) && title.equals(((LogEvent)obj).title);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(title);
+ }
+ }
+
+ public LogEvent getLogEvent() {
+ return logEvent;
}
- public String getTitle() {
+ public String logTitle() {
return logEvent.title;
}
@@ -17,4 +37,14 @@ public class LogEventAction extends BaseAction {
}
public String strippedTarget(){return "";}
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(logEvent, ((LogEventAction)obj).logEvent);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(logEvent);
+ }
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogTextAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogTextAction.java
index 643bc62..16d2a9a 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogTextAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/LogTextAction.java
@@ -1,5 +1,6 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import java.util.Objects;
public class LogTextAction extends BaseAction {
@@ -9,17 +10,50 @@ public class LogTextAction extends BaseAction {
private String name;
private String level;
private String text;
+
+ public String getName() {
+ return name;
+ }
+
+ public String getLevel() {
+ return level;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ LogText other = (LogText) obj;
+ return Objects.equals(name, other.name) && Objects.equals(level, other.level) && Objects.equals(text, other.text);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(name, level, text);
+ }
}
- public String getName() {
+ public LogText getLogText() {
+ return logText;
+ }
+
+ public String logName() {
return logText.name;
}
- public String getLevel() {
+ public String logLevel() {
return logText.level;
}
- public String getText() {
+ public String logText() {
return logText.text;
}
@@ -38,4 +72,14 @@ public class LogTextAction extends BaseAction {
public String strippedTarget(){return "";}
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(logText, ((LogTextAction)obj).logText);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(logText);
+ }
+
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MapAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MapAction.java
index a75eff4..7790737 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MapAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MapAction.java
@@ -2,8 +2,10 @@ package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.stream.Collectors;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.annotations.SerializedName;
public class MapAction extends BaseCopyAction {
@@ -18,6 +20,7 @@ public class MapAction extends BaseCopyAction {
this.map = map;
}
+ @JsonIgnore
public List<UIHashMap> getMapValues() {
return null == map? null : map.values;
}
@@ -26,6 +29,7 @@ public class MapAction extends BaseCopyAction {
return null != map && map.haveDefault;
}
+ @JsonIgnore
public String getMapDefaultValue() {
return null == map? null : map.defaultValue;
}
@@ -61,26 +65,22 @@ public class MapAction extends BaseCopyAction {
this.values = values;
}
- }
-
- private class UIHashMap {
- private String key;
- private String value;
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
- public String getValue() {
- return value;
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ Transform other = (Transform) obj;
+ return Objects.equals(defaultValue, other.defaultValue) && Objects.equals(haveDefault, other.haveDefault) && Objects.equals(values, other.values);
}
- public void setValue(String value) {
- this.value = value;
+ @Override
+ public int hashCode(){
+ return Objects.hash(defaultValue, haveDefault, values);
}
}
@@ -89,4 +89,15 @@ public class MapAction extends BaseCopyAction {
return getMap().getValues().stream().collect(Collectors.toMap(UIHashMap::getKey, UIHashMap::getValue));
}
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(map, ((MapAction) obj).map);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(map);
+ }
+
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRules.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRules.java
index ca24d57..2fc8258 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRules.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRules.java
@@ -2,13 +2,38 @@ package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Objects;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.Gson;
public class MappingRules {
+
private String version;
private String eventType;
+ //US405978 set notifyOID
+ private String notifyId;
+ //US420764 support phases configuration
+ private String entryPhase;
+ private String publishPhase;
private Map<String, Rule> rules = new LinkedHashMap<>();
+ public String getEntryPhase() {
+ return entryPhase;
+ }
+
+ public void setEntryPhase(String entryPhase) {
+ this.entryPhase = entryPhase;
+ }
+
+ public String getPublishPhase() {
+ return publishPhase;
+ }
+
+ public void setPublishPhase(String publishPhase) {
+ this.publishPhase = publishPhase;
+ }
+
public Map<String, Rule> getRules() {
return rules;
}
@@ -33,6 +58,13 @@ public class MappingRules {
this.eventType = eventType;
}
+ public String getNotifyId() {
+ return notifyId;
+ }
+
+ public void setNotifyId(String notifyId) {
+ this.notifyId = notifyId;
+ }
public MappingRules(Rule rule) {
version = rule.getVersion();
@@ -40,21 +72,27 @@ public class MappingRules {
addOrReplaceRule(rule);
}
+ protected MappingRules(){}
+
public void addOrReplaceRule(Rule rule) {
rule.generateUid();
rules.put(rule.getUid(), rule);
+ //US405978 set notifyOID
+ notifyId = rule.getNotifyId();
+ //US420764 support phases configuration
+ entryPhase = rule.getEntryPhase();
+ publishPhase = rule.getPublishPhase();
}
public boolean ruleExists(Rule rule) {
return rules.containsKey(rule.getUid());
}
-
+ @JsonIgnore
public boolean isEmpty() {
return rules.isEmpty();
}
-
public Rule removeRule(String ruleUid) {
return rules.remove(ruleUid);
}
@@ -67,4 +105,26 @@ public class MappingRules {
return new Gson().toJson(this).getBytes();
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ MappingRules other = (MappingRules) obj;
+ return Objects.equals(version, other.version) && Objects.equals(eventType, other.eventType) && Objects.equals(rules, other.rules) && globalTranslationFieldsEqual(other);
+
+ }
+
+ private boolean globalTranslationFieldsEqual(MappingRules other) {
+ return Objects.equals(notifyId, other.notifyId) && Objects.equals(entryPhase, other.entryPhase) && Objects.equals(publishPhase, other.publishPhase);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(version, notifyId, eventType, rules, entryPhase, publishPhase);
+ }
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRulesResponse.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRulesResponse.java
new file mode 100644
index 0000000..8087aa3
--- /dev/null
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/MappingRulesResponse.java
@@ -0,0 +1,20 @@
+package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+
+import java.util.List;
+
+@JsonInclude(Include.NON_NULL)
+public class MappingRulesResponse extends MappingRules {
+
+ private List<EventTypeDefinitionUI> schema;
+
+ public List<EventTypeDefinitionUI> getSchema() {
+ return schema;
+ }
+
+ public void setSchema(List<EventTypeDefinitionUI> schema) {
+ this.schema = schema;
+ }
+}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ReplaceTextAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ReplaceTextAction.java
index 599a956..5594d73 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ReplaceTextAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/ReplaceTextAction.java
@@ -1,5 +1,7 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import java.util.Objects;
+
public class ReplaceTextAction extends UnaryFieldAction {
private ReplaceText replaceText;
@@ -7,18 +9,57 @@ public class ReplaceTextAction extends UnaryFieldAction {
private class ReplaceText {
private String find;
private String replace;
+
+ public String getFind() {
+ return find;
+ }
+
+ public String getReplace() {
+ return replace;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ ReplaceText other = (ReplaceText) obj;
+ return Objects.equals(find, other.find) && Objects.equals(replace, other.replace);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(find, replace);
+ }
}
- public String getFind() {
+ public ReplaceText getReplaceText() {
+ return replaceText;
+ }
+
+ public String find() {
return replaceText.find;
}
- public String getReplace() {
+ public String replace() {
return replaceText.replace;
}
- public String getFromValue() {
+ public String fromValue() {
return getFrom().getValue();
}
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(replaceText, ((ReplaceTextAction)obj).replaceText);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(replaceText);
+ }
+
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Rule.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Rule.java
index d573657..60e58df 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Rule.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/Rule.java
@@ -1,5 +1,6 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.lang3.StringUtils;
@@ -8,15 +9,47 @@ import java.util.*;
import java.util.stream.Collectors;
public class Rule {
+
+ private static Gson gson = new GsonBuilder().serializeNulls().create();
+
private String version;
private String eventType;
+ // US405978 set notifyOID
+ private String notifyId;
private String description;
private String uid;
- private String phase = "phase_1"; //placeholder
+ private String phase;
private BaseCondition condition;
private List<BaseAction> actions;
+ // US420764 support phases configuration
+ private String entryPhase; //global translation value
+ private String publishPhase; //global translation value
+ // US427299 phase grouping
+ private String groupId; //rules can be grouped into phase units. the global entry phase calls runPhase on phase_1, phase_1 on phase_2, etc.
- private static Gson gson = new GsonBuilder().serializeNulls().create();
+ public String getEntryPhase() {
+ return entryPhase;
+ }
+
+ public void setEntryPhase(String entryPhase) {
+ this.entryPhase = entryPhase;
+ }
+
+ public String getPublishPhase() {
+ return publishPhase;
+ }
+
+ public void setPublishPhase(String publishPhase) {
+ this.publishPhase = publishPhase;
+ }
+
+ public String getGroupId() {
+ return groupId;
+ }
+
+ public void setGroupId(String groupId) {
+ this.groupId = groupId;
+ }
public String getVersion() {
return version;
@@ -67,6 +100,14 @@ public class Rule {
this.description = description;
}
+ public String getNotifyId() {
+ return notifyId;
+ }
+
+ public void setNotifyId(String notifyId) {
+ this.notifyId = notifyId;
+ }
+
public BaseCondition getCondition() {
return condition;
}
@@ -75,9 +116,10 @@ public class Rule {
this.condition = condition;
}
- public void generateUid() {
- if(StringUtils.isBlank(uid))
+ void generateUid() {
+ if(StringUtils.isBlank(uid)) {
uid = UUID.randomUUID().toString();
+ }
}
public String toJson() {
@@ -93,23 +135,40 @@ public class Rule {
return false;
}
Rule other = (Rule) obj;
- return Objects.equals(version, other.version) &&
- Objects.equals(description, other.description) &&
- Objects.equals(eventType, other.eventType) &&
- Objects.equals(uid, other.uid) &&
- Objects.equals(phase, other.phase) &&
+ return globalFieldsEqual(other) && localFieldsEqual(other) &&
Objects.equals(condition, other.condition) &&
Objects.equals(actions, other.actions);
}
+ private boolean localFieldsEqual(Rule other) {
+ return Objects.equals(description, other.description) && Objects.equals(uid, other.uid) && groupFieldsEqual(other);
+ }
+
+ private boolean globalFieldsEqual(Rule other) {
+ return Objects.equals(version, other.version) && Objects.equals(eventType, other.eventType) && globalMutableFieldsEqual(other);
+ }
+
+ private boolean globalMutableFieldsEqual(Rule other) {
+ return Objects.equals(notifyId, other.notifyId) && Objects.equals(entryPhase, other.entryPhase) && Objects.equals(publishPhase, other.publishPhase);
+ }
+
+ private boolean groupFieldsEqual(Rule other) {
+ return Objects.equals(phase, other.phase) && Objects.equals(groupId, other.groupId);
+ }
+
@Override
public int hashCode(){
- return Objects.hash(this.version,this.description,this.eventType,this.uid,this.phase,this.condition,this.actions);
+ return Objects.hash(this.version,this.description,this.notifyId,this.eventType,this.uid,this.phase,this.condition,this.actions,this.entryPhase,this.publishPhase,this.groupId);
}
+
public boolean referencesOtherRule(Rule other){
- return other != this && actions.stream().anyMatch(p -> p.hasDependencies(other.actions)) ||
- isConditionalRule() && other.actions.stream().map(BaseAction::strippedTarget).anyMatch(t -> condition.referencesTarget(t));
+ return sameGroupId(other) && (actions.stream().anyMatch(p -> p.hasDependencies(other.actions)) ||
+ isConditionalRule() && other.actions.stream().map(BaseAction::strippedTarget).anyMatch(t -> condition.referencesTarget(t)));
+ }
+
+ private boolean sameGroupId(Rule other) {
+ return !equals(other) && Objects.equals(groupId, other.groupId);
}
@@ -121,7 +180,7 @@ public class Rule {
public List<BaseAction> findDependencies(List<Rule> others) {
return others.stream()
- .filter(r -> r != this)
+ .filter(r -> !equals(r))
.map(this::findDependencies)
.flatMap(List::stream)
.collect(Collectors.toList());
@@ -131,6 +190,7 @@ public class Rule {
return allRules.stream().anyMatch(this::referencesOtherRule);
}
+ @JsonIgnore
public boolean isConditionalRule() {
return null != condition;
}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/StringTransformAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/StringTransformAction.java
new file mode 100644
index 0000000..66db1bd
--- /dev/null
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/StringTransformAction.java
@@ -0,0 +1,97 @@
+package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Arrays;
+import java.util.Objects;
+
+public class StringTransformAction extends BaseCopyAction {
+
+ private StringTransform stringTransform;
+
+ public StringTransform getStringTransform() {
+ return stringTransform;
+ }
+
+ public void setStringTransform(StringTransform stringTransform) {
+ this.stringTransform = stringTransform;
+ }
+
+ public String startValue() {
+ return stringTransform.startValue;
+ }
+
+ public String targetCase() {
+ return stringTransform.targetCase;
+ }
+
+ public boolean trim() {
+ return stringTransform.isTrimString;
+ }
+
+ private class StringTransform {
+
+ private String startValue;
+ private String targetCase;
+ private boolean isTrimString;
+
+ public String getStartValue() {
+ return startValue;
+ }
+
+ public void setStartValue(String startValue) {
+ this.startValue = startValue;
+ }
+
+ public boolean hasIsTrimString() {
+ return isTrimString;
+ }
+
+ public void setIsTrimString(boolean isTrimString) {
+ this.isTrimString = isTrimString;
+ }
+
+ public String getTargetCase() {
+ return targetCase;
+ }
+
+ public void setTargetCase(String targetCase) {
+ this.targetCase = targetCase;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ StringTransform other = (StringTransform) obj;
+ return Objects.equals(isTrimString, other.isTrimString) && Objects.equals(startValue, other.startValue) && Objects.equals(targetCase, other.targetCase);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(this.targetCase,this.startValue,this.isTrimString);
+ }
+
+ }
+
+ @Override
+ public boolean referencesTarget(BaseAction other) {
+ // startValue is expected to look something like "${event.otherFields.otherSiteId}${event.otherFields.otherSiteInst}${event.commonEventHeader.sourceName}"
+ String[] references = StringUtils.substringsBetween(startValue(), "${", "}");
+ return null != references && Arrays.asList(references).contains(other.strippedTarget());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(stringTransform, ((StringTransformAction)obj).stringTransform);
+ }
+
+ @Override
+ public int hashCode(){
+ return Objects.hash(this.stringTransform);
+ }
+}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TopoSearchAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TopoSearchAction.java
new file mode 100644
index 0000000..b2a3960
--- /dev/null
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TopoSearchAction.java
@@ -0,0 +1,191 @@
+package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+public class TopoSearchAction extends BaseAction {
+
+ private TopoSearch search;
+
+ private class TopoSearch {
+
+ private String searchField;
+ private String searchValue;
+ private Condition searchFilter;
+ private String radio;
+ private Enrich enrich;
+ private List<UIHashMap> updates;
+
+ public String getSearchField() {
+ return searchField;
+ }
+
+ public void setSearchField(String searchField) {
+ this.searchField = searchField;
+ }
+
+ public String getSearchValue() {
+ return searchValue;
+ }
+
+ public void setSearchValue(String searchValue) {
+ this.searchValue = searchValue;
+ }
+
+ public Condition getSearchFilter() {
+ return searchFilter;
+ }
+
+ public void setSearchFilter(Condition searchFilter) {
+ this.searchFilter = searchFilter;
+ }
+
+ public String getRadio() {
+ return radio;
+ }
+
+ public void setRadio(String radio) {
+ this.radio = radio;
+ }
+
+ public Enrich getEnrich() {
+ return enrich;
+ }
+
+ public void setEnrich(Enrich enrich) {
+ this.enrich = enrich;
+ }
+
+ public List<UIHashMap> getUpdates() {
+ return updates;
+ }
+
+ public void setUpdates(List<UIHashMap> updates) {
+ this.updates = updates;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ TopoSearch other = (TopoSearch) obj;
+ return searchEquals(other) && Objects.equals(searchFilter, other.searchFilter) && Objects.equals(enrich, other.enrich) && Objects.equals(updates, other.updates);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(searchField, searchValue, searchFilter, enrich, radio, updates);
+ }
+
+ private boolean searchEquals(TopoSearch other) {
+ return Objects.equals(searchField, other.searchField) && Objects.equals(searchValue, other.searchValue) && Objects.equals(radio, other.radio);
+ }
+ }
+
+ private class Enrich {
+
+ private List<FromField> fields;
+ private String prefix;
+
+ public List<FromField> getFields() {
+ return fields;
+ }
+
+ public void setFields(List<FromField> fields) {
+ this.fields = fields;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (null == obj || getClass() != obj.getClass()) {
+ return false;
+ }
+ Enrich other = (Enrich) obj;
+ return Objects.equals(fields, other.fields) && Objects.equals(prefix, other.prefix);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fields, prefix);
+ }
+ }
+
+ public String searchField() {
+ return search.searchField;
+ }
+
+ public String searchValue() {
+ return search.searchValue;
+ }
+
+ public Condition searchFilter() {
+ return search.searchFilter;
+ }
+
+ public List<String> enrichFields() {
+ return search.enrich.fields.stream().map(FromField::getValue).collect(Collectors.toList());
+ }
+
+ public String enrichPrefix() {
+ return search.enrich.prefix;
+ }
+
+ public List<UIHashMap> updates() {
+ return search.updates;
+ }
+
+ public boolean doEnrich() {
+ return !"updates".equalsIgnoreCase(search.radio);
+ }
+
+ public boolean conditionalSearch(){
+ return null != search.searchFilter;
+ }
+
+ public Map<String, String> updatesMap() {
+ return updates().stream().collect(Collectors.toMap(UIHashMap::getKey, UIHashMap::getValue));
+ }
+
+
+ @Override
+ public boolean referencesTarget(BaseAction other) {
+ String strippedTarget = other.strippedTarget();
+ String strippedReference = StringUtils.substringBetween(searchValue(), "${", "}");
+ return null != strippedReference && strippedReference.equals(strippedTarget) || conditionalSearch() && searchFilter().referencesTarget(strippedTarget);
+ }
+
+ //TODO enhance to targets plural
+ @Override
+ public String strippedTarget() {
+ return "";
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj) && Objects.equals(search, ((TopoSearchAction)obj).search);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(search);
+ }
+}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TranslateRequest.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TranslateRequest.java
new file mode 100644
index 0000000..b363c6d
--- /dev/null
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/TranslateRequest.java
@@ -0,0 +1,79 @@
+package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
+
+
+public class TranslateRequest {
+
+ private String vfcmtUuid;
+ private String dcaeCompLabel;
+ private String nid;
+ private String configParam;
+ private String notifyId;
+ //US420764 support phases configuration
+ private String entryPhase;
+ private String publishPhase;
+
+
+ public TranslateRequest(String vfcmtUuid, String dcaeCompLabel, String nid, String configParam, String notifyId) {
+ this.vfcmtUuid = vfcmtUuid;
+ this.dcaeCompLabel = dcaeCompLabel;
+ this.nid = nid;
+ this.configParam = configParam;
+ this.notifyId = notifyId;
+ }
+
+ public String getVfcmtUuid() {
+ return vfcmtUuid;
+ }
+
+ public void setVfcmtUuid(String vfcmtUuid) {
+ this.vfcmtUuid = vfcmtUuid;
+ }
+
+ public String getDcaeCompLabel() {
+ return dcaeCompLabel;
+ }
+
+ public void setDcaeCompLabel(String dcaeCompLabel) {
+ this.dcaeCompLabel = dcaeCompLabel;
+ }
+
+ public String getNid() {
+ return nid;
+ }
+
+ public void setNid(String nid) {
+ this.nid = nid;
+ }
+
+ public String getConfigParam() {
+ return configParam;
+ }
+
+ public void setConfigParam(String configParam) {
+ this.configParam = configParam;
+ }
+
+ public String getNotifyId() {
+ return notifyId;
+ }
+
+ public void setNotifyId(String notifyId) {
+ this.notifyId = notifyId;
+ }
+
+ public String getEntryPhase() {
+ return entryPhase;
+ }
+
+ public void setEntryPhase(String entryPhase) {
+ this.entryPhase = entryPhase;
+ }
+
+ public String getPublishPhase() {
+ return publishPhase;
+ }
+
+ public void setPublishPhase(String publishPhase) {
+ this.publishPhase = publishPhase;
+ }
+}
diff --git a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/UnaryFieldAction.java b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/UnaryFieldAction.java
index 17146ec..c13d101 100644
--- a/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/UnaryFieldAction.java
+++ b/src/main/java/org/onap/sdc/dcae/composition/restmodels/ruleeditor/UnaryFieldAction.java
@@ -1,6 +1,5 @@
package org.onap.sdc.dcae.composition.restmodels.ruleeditor;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
@@ -32,46 +31,6 @@ public class UnaryFieldAction extends BaseAction {
this.from = new From(from, regex);
}
- protected class FromField {
- private String value;
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- FromField(String value){
- setValue(value);
- }
-
- private FromField(){}
-
- private boolean isReference(){
- return StringUtils.isNoneBlank(value) && value.startsWith("${") && value.endsWith("}");
- }
-
- private String stripedReference() {
- return value.substring(2, value.length()-1);
- }
-
- boolean referencesTarget(String target) {
- return isReference() && target.equals(stripedReference());
- }
-
- @Override
- public boolean equals(Object obj) {
- return obj == this || !(null == obj || getClass() != obj.getClass()) && Objects.equals(value, ((FromField)obj).value);
- }
-
- @Override
- public int hashCode(){
- return Objects.hash(this.value);
- }
- }
-
protected class From extends FromField {
private String regex;
@@ -119,16 +78,9 @@ public class UnaryFieldAction extends BaseAction {
@Override
public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- }
- if (null == obj || getClass() != obj.getClass()) {
- return false;
- }
- From other = (From) obj;
- return Objects.equals(regex, other.regex)
- && Objects.equals(state, other.state)
- && Objects.equals(values, other.values);
+ return super.equals(obj) && Objects.equals(regex, ((From) obj).regex)
+ && Objects.equals(state, ((From) obj).state)
+ && Objects.equals(values, ((From) obj).values);
}
@Override
@@ -138,13 +90,13 @@ public class UnaryFieldAction extends BaseAction {
}
- public List<String> getFromValues() {
+ public List<String> fromValues() {
return null == from || CollectionUtils.isEmpty(from.values) ? new ArrayList<>() : from.values.stream().map(FromField::getValue).collect(Collectors.toList());
}
@Override
public boolean equals(Object obj) {
- return obj == this || !(null == obj || getClass() != obj.getClass()) && Objects.equals(from, ((UnaryFieldAction)obj).from);
+ return super.equals(obj) && Objects.equals(from, ((UnaryFieldAction)obj).from);
}
@Override
@@ -158,4 +110,13 @@ public class UnaryFieldAction extends BaseAction {
}
public String strippedTarget(){return "";}
+
+ public String regexState() {
+ return from.state;
+ }
+
+ public void regexState(String state) {
+ from.state = state;
+ }
}
+