Fix Service/VF set value to list/map properties
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / SchemaDefinition.java
index 8d8e518..17e21f0 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.be.datatypes.elements;
 
-import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Map.Entry;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
 
 /**
  * Schema allows to create new types that can be used along TOSCA definitions.
  */
-public class SchemaDefinition extends ToscaDataDefinition implements Serializable {
-
-       /**
-        * 
-        */
-       private static final long serialVersionUID = 7117891081909380577L;
-       
-       private String derivedFrom;
-       private List<String> constraints;
-       private Map<String, PropertyDataDefinition> properties;
-
-       private PropertyDataDefinition property;
-
-       
-
-       public SchemaDefinition() {
-               super();
-
-       }
-
-       public SchemaDefinition(String derivedFrom, List<String> constraints,
-                       Map<String, PropertyDataDefinition> properties) {
-               super();
-               
-               this.setDerivedFrom(derivedFrom);
-               this.setConstraints( constraints);
-               this.setProperties( properties);
-               
-       }
-
-       public String getDerivedFrom() {
-               return derivedFrom;
-       }
-
-       public void setProperty(PropertyDataDefinition property) {
-               this.property = property;
-       }
-
-       public PropertyDataDefinition getProperty() {
-               return this.property;
-       }
-
-       public void setDerivedFrom(String derivedFrom) {
-               this.derivedFrom = derivedFrom;
-       }
-
-       public List<String> getConstraints() {
-               return constraints;
-       }
-
-       public void setConstraints(List<String> constraints) {
-               this.constraints = constraints;
-       }
-
-       public Map<String, PropertyDataDefinition> getProperties() {
-               return properties;
-       }
-
-       public void setProperties(Map<String, PropertyDataDefinition> properties) {
-               this.properties = properties;
-       }
-
-       public void addProperty(String key, PropertyDataDefinition property) {
-
-               properties.put(key, property);
-       }
-
-       @Override
-       public int hashCode() {
-               final int prime = 31;
-               int result = 1;
-               result = prime * result + ((constraints == null) ? 0 : constraints.hashCode());
-               result = prime * result + ((derivedFrom == null) ? 0 : derivedFrom.hashCode());
-               result = prime * result + ((properties == null) ? 0 : properties.hashCode());
-               result = prime * result + ((property == null) ? 0 : property.hashCode());
-               return result;
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (getClass() != obj.getClass())
-                       return false;
-               SchemaDefinition other = (SchemaDefinition) obj;
-               if (constraints == null) {
-                       if (other.constraints != null)
-                               return false;
-               } else if (!constraints.equals(other.constraints))
-                       return false;
-               if (derivedFrom == null) {
-                       if (other.derivedFrom != null)
-                               return false;
-               } else if (!derivedFrom.equals(other.derivedFrom))
-                       return false;
-               if (properties == null) {
-                       if (other.properties != null)
-                               return false;
-               } else if (!properties.equals(other.properties))
-                       return false;
-               if (property == null) {
-                       if (other.property != null)
-                               return false;
-               } else if (!property.equals(other.property))
-                       return false;
-               return true;
-       }
-
-       @Override
-       public String toString() {
-               return "SchemaDefinition [" + "derivedFrom='" + derivedFrom + ", constraints=" + constraints + ", properties="
-                               + properties + ", property=" + property + ']';
-       }
+public class SchemaDefinition extends ToscaDataDefinition {
+
+    private String derivedFrom;
+    private List<String> constraints;
+    private Map<String, PropertyDataDefinition> properties;
+
+    private PropertyDataDefinition property;
+
+
+    public SchemaDefinition() {
+    }
+
+    public SchemaDefinition(String derivedFrom, List<String> constraints,
+                            Map<String, PropertyDataDefinition> properties) {
+        this.setDerivedFrom(derivedFrom);
+        this.setConstraints(constraints);
+        this.setProperties(properties);
+    }
+
+    public SchemaDefinition(final SchemaDefinition schemaDefinition) {
+        if (schemaDefinition == null) {
+            return;
+        }
+        this.derivedFrom = schemaDefinition.getDerivedFrom();
+        if (CollectionUtils.isNotEmpty(schemaDefinition.getConstraints())) {
+            this.constraints = new ArrayList<>(schemaDefinition.getConstraints());
+        }
+        if (schemaDefinition.getProperty() != null) {
+            this.property = new PropertyDataDefinition(schemaDefinition.getProperty());
+        }
+        if (MapUtils.isNotEmpty(schemaDefinition.getProperties())) {
+            this.properties = new HashMap<>();
+            for (final Entry<String, PropertyDataDefinition> propertyEntry : schemaDefinition.getProperties().entrySet()) {
+                this.properties.put(propertyEntry.getKey(), new PropertyDataDefinition(propertyEntry.getValue()));
+            }
+        }
+    }
+
+    public String getDerivedFrom() {
+        return derivedFrom;
+    }
+
+    public void setProperty(PropertyDataDefinition property) {
+        this.property = property;
+    }
+
+    public PropertyDataDefinition getProperty() {
+        return this.property;
+    }
+
+    public void setDerivedFrom(String derivedFrom) {
+        this.derivedFrom = derivedFrom;
+    }
+
+    public List<String> getConstraints() {
+        return constraints;
+    }
+
+    public void setConstraints(List<String> constraints) {
+        this.constraints = constraints;
+    }
+
+    public Map<String, PropertyDataDefinition> getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Map<String, PropertyDataDefinition> properties) {
+        this.properties = properties;
+    }
+
+    public void addProperty(String key, PropertyDataDefinition property) {
+
+        properties.put(key, property);
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((constraints == null) ? 0 : constraints.hashCode());
+        result = prime * result + ((derivedFrom == null) ? 0 : derivedFrom.hashCode());
+        result = prime * result + ((properties == null) ? 0 : properties.hashCode());
+        result = prime * result + ((property == null) ? 0 : property.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        SchemaDefinition other = (SchemaDefinition) obj;
+        if (constraints == null) {
+            if (other.constraints != null) {
+                return false;
+            }
+        } else if (!constraints.equals(other.constraints)) {
+            return false;
+        }
+        if (derivedFrom == null) {
+            if (other.derivedFrom != null) {
+                return false;
+            }
+        } else if (!derivedFrom.equals(other.derivedFrom)) {
+            return false;
+        }
+        if (properties == null) {
+            if (other.properties != null) {
+                return false;
+            }
+        } else if (!properties.equals(other.properties)) {
+            return false;
+        }
+        if (property == null) {
+            return other.property == null;
+        } else {
+            return property.equals(other.property);
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "SchemaDefinition [" + "derivedFrom='" + derivedFrom + ", constraints=" + constraints + ", properties="
+                + properties + ", property=" + property + ']';
+    }
 }