Support TOSCA functions in operation inputs
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / InterfaceDefinition.java
index e3b5d08..13d80df 100644 (file)
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-
 package org.openecomp.sdc.be.model;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 import org.apache.commons.collections.MapUtils;
 import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition;
 
-import java.util.Map;
-import java.util.stream.Collectors;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
 
 /**
- * Definition of the operations that can be performed on (instances of) a Node
- * Type.
+ * Definition of the operations that can be performed on (instances of) a Node Type.
  *
  * @author esofer
  */
+@NoArgsConstructor
 public class InterfaceDefinition extends InterfaceDataDefinition implements IOperationParameter {
 
-    private boolean definition;
-
-    public InterfaceDefinition() {
-        super();
-    }
+    @Getter
+    @Setter
+    private String model;
 
     public InterfaceDefinition(String type, String description, Map<String, Operation> operations) {
         super(type, description);
@@ -56,16 +58,9 @@ public class InterfaceDefinition extends InterfaceDataDefinition implements IOpe
         return false;
     }
 
-    public void setDefinition(boolean definition) {
-        this.definition = definition;
-    }
-
     @JsonIgnore
     public Map<String, Operation> getOperationsMap() {
-        return getOperations().entrySet()
-                              .stream()
-                              .collect(Collectors.toMap(Map.Entry::getKey, e -> new Operation(e
-                                                                           .getValue())));
+        return getOperations().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> new Operation(e.getValue())));
     }
 
     @JsonIgnore
@@ -73,15 +68,22 @@ public class InterfaceDefinition extends InterfaceDataDefinition implements IOpe
         if (MapUtils.isEmpty(operations)) {
             return;
         }
-        final Map<String, OperationDataDefinition> convertedOperation = operations.entrySet()
-            .stream()
+        final Map<String, OperationDataDefinition> convertedOperation = operations.entrySet().stream()
             .collect(Collectors.toMap(Map.Entry::getKey, e -> new OperationDataDefinition(e.getValue())));
         setOperations(convertedOperation);
     }
 
-    @Override
-    public String toString() {
-        return "InterfaceDefinition [definition=" + definition + "]";
+    /**
+     * Checks if the interface has the given operation
+     *
+     * @param operation the operation to check
+     * @return {@code true} if the operation exists, {@code false} otherwise
+     */
+    public boolean hasOperation(final String operation) {
+        final Map<String, OperationDataDefinition> operationMap = getOperations();
+        if (MapUtils.isEmpty(operationMap)) {
+            return false;
+        }
+        return operationMap.keySet().stream().anyMatch(operation1 -> operation1.equalsIgnoreCase(operation));
     }
-
 }