Fix 'Fail to declare Input for duplicated name of property'
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / PropertyDataDefinition.java
index c885dbc..845eee8 100644 (file)
@@ -40,8 +40,8 @@ import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType;
 @Data
 public class PropertyDataDefinition extends ToscaDataDefinition {
 
-    protected boolean definition = false;
-    protected Boolean hidden = Boolean.FALSE;
+    private boolean definition = false;
+    private Boolean hidden = Boolean.FALSE;
     private String uniqueId;
     // "boolean", "string", "float", "integer", "version" })
     private String type;
@@ -55,7 +55,12 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
     private String label;
     private Boolean immutable = Boolean.FALSE;
     private Boolean mappedToComponentProperty = Boolean.TRUE;
+    /**
+     * @deprecated use {@link #toscaGetFunction#functionType} instead
+     */
+    @Deprecated
     private ToscaGetFunctionType toscaGetFunctionType;
+    private ToscaGetFunctionDataDefinition toscaGetFunction;
 
     private String inputPath;
     private String status;
@@ -66,15 +71,12 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
     private String parentPropertyType;
     private String subPropertyInputPath;
     private List<Annotation> annotations;
-    /**
-     * The resource id which this property belongs to
-     */
-    private String parentUniqueId;
     private List<GetInputValueDataDefinition> getInputValues;
     private Boolean isDeclaredListInput = Boolean.FALSE;
     private List<GetPolicyValueDataDefinition> getPolicyValues;
     private List<String> propertyConstraints;
     private Map<String, String> metadata;
+    private boolean userCreated;
 
     public PropertyDataDefinition() {
         super();
@@ -114,6 +116,7 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
         this.setModel(propertyDataDefinition.getModel());
         this.setPropertyId(propertyDataDefinition.getPropertyId());
         this.setToscaGetFunctionType(propertyDataDefinition.getToscaGetFunctionType());
+        this.setToscaGetFunction(propertyDataDefinition.getToscaGetFunction());
         this.parentPropertyType = propertyDataDefinition.getParentPropertyType();
         this.subPropertyInputPath = propertyDataDefinition.getSubPropertyInputPath();
         if (isNotEmpty(propertyDataDefinition.annotations)) {
@@ -126,6 +129,7 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
             setPropertyConstraints(new ArrayList<>(propertyDataDefinition.getPropertyConstraints()));
         }
         this.setIsDeclaredListInput(propertyDataDefinition.getIsDeclaredListInput());
+        this.setUserCreated(propertyDataDefinition.isUserCreated());
     }
 
     // @Override
@@ -161,6 +165,13 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
         return null;
     }
 
+    public ToscaGetFunctionType getToscaGetFunctionType() {
+        if (toscaGetFunction != null) {
+            return toscaGetFunction.getFunctionType();
+        }
+        return toscaGetFunctionType;
+    }
+
     public Boolean isHidden() {
         return hidden;
     }
@@ -173,6 +184,9 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
         return mappedToComponentProperty;
     }
 
+    /**
+     * The resource id which this property belongs to
+     */
     public String getParentUniqueId() {
         return getOwnerId();
     }
@@ -303,4 +317,13 @@ public class PropertyDataDefinition extends ToscaDataDefinition {
     public List<Annotation> getAnnotations() {
         return (List<Annotation>) getToscaPresentationValue(JsonPresentationFields.ANNOTATIONS);
     }
+
+    public boolean isGetFunction() {
+        return this.toscaGetFunctionType != null || this.toscaGetFunction != null;
+    }
+
+    public boolean hasGetFunction() {
+        return this.toscaGetFunction != null;
+    }
+
 }