fix review comments on property assignment 59/77859/3
authorTalio <tali.orenbach@amdocs.com>
Tue, 5 Feb 2019 09:05:05 +0000 (11:05 +0200)
committerOren Kleks <orenkle@amdocs.com>
Tue, 5 Feb 2019 10:53:18 +0000 (10:53 +0000)
Change-Id: Ia986294cb552f4e26b3ebf1d1b50c9b7941553ab
Issue-ID: SDC-2097
Signed-off-by: Talio <tali.orenbach@amdocs.com>
13 files changed:
catalog-be/pom.xml
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/property/DefaultPropertyDeclarator.java
catalog-be/src/main/java/org/openecomp/sdc/be/servlets/BeGenericServlet.java
catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ComponentPropertyServlet.java
catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java
catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/InterfaceInstanceDefinition.java [deleted file]
catalog-model/src/main/java/org/openecomp/sdc/be/model/Resource.java
common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/InterfaceInstanceDataDefinition.java
common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java
pom.xml

index 4c0cbbf..4ebbf82 100644 (file)
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-collections4</artifactId>
-            <version>4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.be</groupId>
-            <artifactId>catalog-model</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.sdc.common</groupId>
-            <artifactId>onap-tosca-datatype</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-collections4</artifactId>
-            <version>4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.be</groupId>
-            <artifactId>catalog-model</artifactId>
-            <version>${project.version}</version>
+            <version>${commons.collections.version}</version>
         </dependency>
     </dependencies>
 
index f49f531..0439dd5 100644 (file)
@@ -22,27 +22,16 @@ package org.openecomp.sdc.be.components.impl;
 
 import com.google.gson.JsonElement;
 import fj.data.Either;
-import java.util.Map.Entry;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.openecomp.sdc.be.config.BeEcompErrorManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
-import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition;
-import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
+import org.openecomp.sdc.be.datatypes.elements.*;
 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
 import org.openecomp.sdc.be.impl.WebAppContextWrapper;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstanceInterface;
-import org.openecomp.sdc.be.model.ComponentParametersView;
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.be.model.IComplexDefaultValue;
-import org.openecomp.sdc.be.model.InterfaceDefinition;
-import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.model.*;
 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.model.operations.utils.ComponentValidationUtils;
@@ -166,7 +155,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
                         String convertedValue = null;
                         if (newPropertyDefinition.getDefaultValue() != null) {
                             convertedValue = converter.convert(
-                                (String) newPropertyDefinition.getDefaultValue(), innerType, allDataTypes.left().value());
+                                newPropertyDefinition.getDefaultValue(), innerType, allDataTypes.left().value());
                             newPropertyDefinition.setDefaultValue(convertedValue);
                         }
                     }
@@ -351,16 +340,14 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
     }
 
     private boolean isPropertyUsedInCIInterfaces(Map<String, List<ComponentInstanceInterface>> componentInstanceInterfaces, PropertyDefinition propertyDefinitionEntry){
+        Optional<ComponentInstanceInterface> isPropertyExistInOperationInterface = Optional.empty();
         if(MapUtils.isNotEmpty(componentInstanceInterfaces)){
-            for (Entry<String, List<ComponentInstanceInterface>> interfaceEntry : componentInstanceInterfaces.entrySet()) {
-                for (ComponentInstanceInterface instanceInterface : interfaceEntry.getValue()) {
-                    if (isPropertyExistInOperationInterface(propertyDefinitionEntry, instanceInterface)) {
-                        return true;
-                    }
-                }
-            }
+            isPropertyExistInOperationInterface = componentInstanceInterfaces.entrySet().stream()
+                    .flatMap(interfaceEntry -> interfaceEntry.getValue().stream())
+                    .filter(instanceInterface -> isPropertyExistInOperationInterface(propertyDefinitionEntry, instanceInterface))
+                    .findAny();
         }
-        return false;
+        return isPropertyExistInOperationInterface.isPresent();
     }
 
     private boolean isPropertyExistInOperationInterface(PropertyDefinition propertyDefinition,
index 437ae2d..06e8db0 100644 (file)
@@ -88,7 +88,7 @@ public abstract class DefaultPropertyDeclarator<PROPERTYOWNER extends Properties
 
     private InputDefinition createInput(String componentId, PROPERTYOWNER propertiesOwner, ComponentInstancePropInput propInput, PropertyDataDefinition prop) {
         String generatedInputName = generateInputName(propertiesOwner instanceof
-                Service ? null : propertiesOwner.getNormalizedName(),
+                        Service ? null : propertiesOwner.getNormalizedName(),
             propInput);
         return createInputFromProperty(componentId, propertiesOwner, generatedInputName, propInput, prop);
     }
@@ -108,23 +108,24 @@ public abstract class DefaultPropertyDeclarator<PROPERTYOWNER extends Properties
     }
 
     private String handleInputName(String inputName, String[] parsedPropNames) {
-        String prefix;
+        StringBuilder prefix = new StringBuilder();
         int startingIndex;
 
         if(Objects.isNull(inputName)) {
-            prefix = parsedPropNames[0];
+            prefix.append(parsedPropNames[0]);
             startingIndex = 1;
         } else {
-            prefix = inputName;
+            prefix.append(inputName);
             startingIndex = 0;
         }
 
         while(startingIndex < parsedPropNames.length){
-            prefix += "_"  + parsedPropNames[startingIndex];
+            prefix.append("_");
+            prefix.append(parsedPropNames[startingIndex]);
             startingIndex ++;
         }
 
-        return prefix;
+        return prefix.toString();
     }
 
     private PropertyDataDefinition resolveProperty(List<PROPERTYTYPE> propertiesToCreate, ComponentInstancePropInput propInput) {
index 4502012..c321df1 100644 (file)
@@ -31,19 +31,7 @@ import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
 import org.json.simple.parser.JSONParser;
 import org.json.simple.parser.ParseException;
-import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ElementBusinessLogic;
-import org.openecomp.sdc.be.components.impl.GroupBusinessLogic;
-import org.openecomp.sdc.be.components.impl.InterfaceOperationBusinessLogic;
-import org.openecomp.sdc.be.components.impl.MonitoringBusinessLogic;
-import org.openecomp.sdc.be.components.impl.PolicyBusinessLogic;
-import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ProductBusinessLogic;
-import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
+import org.openecomp.sdc.be.components.impl.*;
 import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
 import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLogic;
 import org.openecomp.sdc.be.components.upgrade.UpgradeBusinessLogic;
@@ -376,7 +364,7 @@ public class BeGenericServlet extends BasicServlet {
             return root;
         } catch (ParseException e) {
             log.info("failed to convert input to json");
-            log.debug("failed to convert to json", e);
+            log.error("failed to convert to json", e);
             return new JSONObject();
         }
 
@@ -398,13 +386,13 @@ public class BeGenericServlet extends BasicServlet {
         } catch (Exception e) {
             // INVALID JSON
             log.info("failed to convert from json");
-            log.debug("failed to convert from json", e);
+            log.error("failed to convert from json", e);
             return Either.right(ActionStatus.INVALID_CONTENT);
         }
         return Either.left(t);
     }
 
-    private <T> Either<String, ActionStatus> convertObjectToJson(PropertyDefinition propertyDefinition) {
+    private Either<String, ActionStatus> convertObjectToJson(PropertyDefinition propertyDefinition) {
         Type constraintType = new TypeToken<PropertyConstraint>() {
         }.getType();
         Gson gson = new GsonBuilder().registerTypeAdapter(constraintType, new PropertyOperation.PropertyConstraintSerialiser()).create();
index 0edce61..79e63c7 100644 (file)
@@ -18,11 +18,7 @@ package org.openecomp.sdc.be.servlets;
 
 import com.jcabi.aspects.Loggable;
 import fj.data.Either;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import io.swagger.annotations.*;
 import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic;
 import org.openecomp.sdc.be.config.BeEcompErrorManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
@@ -37,15 +33,7 @@ import org.slf4j.LoggerFactory;
 import javax.inject.Singleton;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
+import javax.ws.rs.*;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -59,6 +47,8 @@ import java.util.Map;
 public class ComponentPropertyServlet extends BeGenericServlet {
 
   private static final Logger log = LoggerFactory.getLogger(ComponentPropertyServlet.class);
+  private static final String CREATE_PROPERTY = "Create Property";
+  private static final String DEBUG_MESSAGE = "Start handle request of {} modifier id is {}";
 
   @POST
   @Path("services/{serviceId}/properties")
@@ -236,7 +226,7 @@ public class ComponentPropertyServlet extends BeGenericServlet {
       return buildOkResponse(newPropertyDefinition);
 
     } catch (Exception e) {
-      BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Create Property");
+      BeEcompErrorManager.getInstance().logBeRestApiGeneralError(CREATE_PROPERTY);
       log.debug("create property failed with exception", e);
       ResponseFormat responseFormat =
               getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
@@ -308,7 +298,7 @@ public class ComponentPropertyServlet extends BeGenericServlet {
     ServletContext context = request.getSession().getServletContext();
 
     String url = request.getMethod() + " " + request.getRequestURI();
-    log.debug("Start handle request of {} modifier id is {}", url, userId);
+    log.debug(DEBUG_MESSAGE, url, userId);
 
     try {
       PropertyBusinessLogic propertyBL = getPropertyBL(context);
@@ -322,7 +312,7 @@ public class ComponentPropertyServlet extends BeGenericServlet {
       return buildOkResponse(retrievedPropertyEither.left().value());
 
     } catch (Exception e) {
-      BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Create Property");
+      BeEcompErrorManager.getInstance().logBeRestApiGeneralError(CREATE_PROPERTY);
       log.debug("get property failed with exception", e);
       ResponseFormat responseFormat =
               getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
@@ -333,7 +323,7 @@ public class ComponentPropertyServlet extends BeGenericServlet {
     ServletContext context = request.getSession().getServletContext();
 
     String url = request.getMethod() + " " + request.getRequestURI();
-    log.debug("Start handle request of {} modifier id is {}", url, userId);
+    log.debug(DEBUG_MESSAGE, url, userId);
 
     try {
       PropertyBusinessLogic propertyBL = getPropertyBL(context);
@@ -347,7 +337,7 @@ public class ComponentPropertyServlet extends BeGenericServlet {
       return buildOkResponse(propertiesListEither.left().value());
 
     } catch (Exception e) {
-      BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Create Property");
+      BeEcompErrorManager.getInstance().logBeRestApiGeneralError(CREATE_PROPERTY);
       log.debug("get property failed with exception", e);
       ResponseFormat responseFormat =
               getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
@@ -358,7 +348,7 @@ public class ComponentPropertyServlet extends BeGenericServlet {
     ServletContext context = request.getSession().getServletContext();
 
     String url = request.getMethod() + " " + request.getRequestURI();
-    log.debug("Start handle request of {} modifier id is {}", url, userId);
+    log.debug(DEBUG_MESSAGE, url, userId);
 
     try {
 
index 04c7c69..405db5a 100644 (file)
 
 package org.openecomp.sdc.be.tosca;
 
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Supplier;
-
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
+import com.google.gson.stream.JsonReader;
+import fj.data.Either;
 import org.apache.commons.lang3.StringUtils;
 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
@@ -37,7 +35,6 @@ import org.openecomp.sdc.be.model.Resource;
 import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
 import org.openecomp.sdc.be.model.tosca.converters.DataTypePropertyConverter;
 import org.openecomp.sdc.be.model.tosca.converters.ToscaMapValueConverter;
-import org.openecomp.sdc.be.model.tosca.converters.ToscaStringConvertor;
 import org.openecomp.sdc.be.model.tosca.converters.ToscaValueBaseConverter;
 import org.openecomp.sdc.be.model.tosca.converters.ToscaValueConverter;
 import org.openecomp.sdc.be.tosca.model.EntrySchema;
@@ -45,12 +42,12 @@ import org.openecomp.sdc.be.tosca.model.ToscaNodeType;
 import org.openecomp.sdc.be.tosca.model.ToscaProperty;
 import org.openecomp.sdc.common.log.wrappers.Logger;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParser;
-import com.google.gson.stream.JsonReader;
-
-import fj.data.Either;
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Supplier;
 
 public class PropertyConvertor {
     private static PropertyConvertor instance;
@@ -127,12 +124,8 @@ public class PropertyConvertor {
         prop.setType(property.getType());
         prop.setDescription(property.getDescription());
         prop.setRequired(property.isRequired());
-        switch (propertyType) {
-            case CAPABILITY:
-                prop.setStatus(property.getStatus());
-                break;
-            default:
-                break;
+        if(propertyType.equals(PropertyType.CAPABILITY)) {
+            prop.setStatus(property.getStatus());
         }
         return prop;
     }
index ecead12..06cf2af 100644 (file)
@@ -107,7 +107,7 @@ public class ToscaExportHandler {
 
     private static final Logger log = Logger.getLogger(ToscaExportHandler.class);
 
-    public static final String TOSCA_VERSION = "tosca_simple_yaml_1_1";
+    private static final String TOSCA_VERSION = "tosca_simple_yaml_1_1";
     private static final String SERVICE_NODE_TYPE_PREFIX = "org.openecomp.service.";
     private static final String IMPORTS_FILE_KEY = "file";
     private static final String TOSCA_INTERFACE_NAME = "-interface.yml";
@@ -273,7 +273,7 @@ public class ToscaExportHandler {
             addPoliciesToTopologyTemplate(component, topologyTemplate);
         } catch (SdcResourceNotFoundException e) {
             log.debug("Fail to add policies to topology template:",e);
-            Either.right(ToscaError.GENERAL_ERROR);
+            return Either.right(ToscaError.GENERAL_ERROR);
         }
 
 
@@ -313,26 +313,6 @@ public class ToscaExportHandler {
         return Either.left(toscaNode);
     }
 
-    private Either<ToscaTopolgyTemplate, ToscaError> fillInputs(Component component,
-            ToscaTopolgyTemplate topologyTemplate, Map<String, DataTypeDefinition> dataTypes) {
-        if (log.isDebugEnabled()) {
-            log.debug("fillInputs for component {}", component.getUniqueId());
-        }
-        List<InputDefinition> inputDef = component.getInputs();
-        Map<String, ToscaProperty> inputs = new HashMap<>();
-
-        if (inputDef != null) {
-            inputDef.forEach(i -> {
-                ToscaProperty property = propertyConvertor.convertProperty(dataTypes, i, PropertyConvertor.PropertyType.INPUT);
-                inputs.put(i.getName(), property);
-            });
-            if (!inputs.isEmpty()) {
-                topologyTemplate.setInputs(inputs);
-            }
-        }
-        return Either.left(topologyTemplate);
-    }
-
   private void addGroupsToTopologyTemplate(Component component, ToscaTopolgyTemplate topologyTemplate) {
 
 
index ba6f9c2..20501ef 100644 (file)
 package org.openecomp.sdc.externalupload.utils;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.ImmutableSet;
 import org.apache.commons.beanutils.BeanUtils;
 
 import java.lang.reflect.Field;
 import java.util.*;
 
 public class ServiceUtils {
-  private static final char[] CHARS = new char[]{
-      '0', '1', '2', '3', '4', '5', '6', '7',
-      '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
-  };
-  private static final String TYPE = "type";
-  private static final String NODE = "node";
+
+  private static ImmutableSet<Class> collectionClasses = ImmutableSet.of(Map.class, List.class, Set.class);
+  private static ImmutableSet<Class> primitiveTypesClasses = ImmutableSet.of(String.class, Integer.class, Double.class, Float.class);
+
+  private ServiceUtils() {}
 
   public static <T> Optional<T> createObjectUsingSetters(Object objectCandidate,
                                                          Class<T> classToCreate)
@@ -66,15 +66,19 @@ public class ServiceUtils {
   }
 
   private static boolean isComplexClass(Field field) {
-    return !field.getType().equals(Map.class)
-        && !field.getType().equals(String.class)
-        && !field.getType().equals(Integer.class)
-        && !field.getType().equals(Float.class)
-        && !field.getType().equals(Double.class)
-        && !field.getType().equals(Set.class)
-        && !field.getType().equals(Object.class)
-        && !field.getType().equals(List.class);
+    return !isCollectionClass(field)
+        && !isPrimitiveClass(field)
+        && !field.getType().equals(Object.class);
+  }
+
+  private static boolean isCollectionClass(Field field) {
+    return collectionClasses.contains(field.getType());
   }
+
+  private static boolean isPrimitiveClass(Field field) {
+    return primitiveTypesClasses.contains(field.getType());
+  }
+
   public static Map<String, Object> getObjectAsMap(Object obj) {
     return new ObjectMapper().convertValue(obj, Map.class);
   }
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/InterfaceInstanceDefinition.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/InterfaceInstanceDefinition.java
deleted file mode 100644 (file)
index d16370d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.openecomp.sdc.be.model;
-
-import org.apache.commons.collections.MapUtils;
-import org.openecomp.sdc.be.datatypes.elements.InterfaceInstanceDataDefinition;
-import org.openecomp.sdc.be.datatypes.elements.OperationInstance;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-public class InterfaceInstanceDefinition extends InterfaceInstanceDataDefinition {
-
-  public InterfaceInstanceDefinition(InterfaceInstanceDataDefinition inter) {
-    super(inter);
-  }
-
-  public InterfaceInstanceDefinition(){}
-
-  public Map<String, Object> getInputs() {
-    return this.inputs;
-  }
-
-  public void setInputs(
-      Map<String, Object> inputs) {
-    this.inputs = inputs;
-  }
-
-  public Map<String, OperationInstance> getOperations() {
-    return operations;
-  }
-
-  public void addInstanceOperation(String operationName, OperationInstance operation) {
-    if(MapUtils.isEmpty(this.operations)) {
-      this.operations = new HashMap<>();
-    }
-
-    this.operations.put(operationName, operation);
-  }
-}
index 0603538..9b2b609 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.
@@ -23,6 +23,7 @@ package org.openecomp.sdc.be.model;
 import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.dao.utils.MapUtil;
 import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.InterfaceInstanceDataDefinition;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
 
@@ -32,33 +33,31 @@ import java.util.Optional;
 
 public class Resource extends Component {
 
-               
-                       
+
     private List<String> derivedFrom;
 
     private List<String> derivedList;
 
-    private List<PropertyDefinition> properties;
-
     private List<PropertyDefinition> attributes;
 
-  private Map<String, InterfaceInstanceDefinition> instInterfaces;
+    private Map<String, InterfaceInstanceDataDefinition> instInterfaces;
 
-  private List<String> defaultCapabilities;
+    private List<String> defaultCapabilities;
 
-  public Resource() {
-    super(new ResourceMetadataDefinition());
-    this.getComponentMetadataDefinition().getMetadataDataDefinition()
-        .setComponentType(ComponentTypeEnum.RESOURCE);
-  }
+    public Resource() {
+        super(new ResourceMetadataDefinition());
+        this.getComponentMetadataDefinition().getMetadataDataDefinition()
+                .setComponentType(ComponentTypeEnum.RESOURCE);
+    }
 
     public Resource(ComponentMetadataDefinition componentMetadataDefinition) {
         super(componentMetadataDefinition);
-        if(this.getComponentMetadataDefinition().getMetadataDataDefinition() == null) {
+        if (this.getComponentMetadataDefinition().getMetadataDataDefinition() == null) {
             this.getComponentMetadataDefinition().componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
         }
         this.getComponentMetadataDefinition().getMetadataDataDefinition().setComponentType(ComponentTypeEnum.RESOURCE);
     }
+
     /**
      * Please note that more than one "derivedFrom" resource is not currently
      * supported by the app. The first list element is always addressed.
@@ -104,20 +103,20 @@ public class Resource extends Component {
         this.attributes = attributes;
     }
 
-  public Map<String, InterfaceInstanceDefinition> getInstInterfaces() {
-    return instInterfaces;
-  }
+    public Map<String, InterfaceInstanceDataDefinition> getInstInterfaces() {
+        return instInterfaces;
+    }
 
-  public void setInstInterfaces(
-      Map<String, InterfaceInstanceDefinition> instInterfaces) {
-    this.instInterfaces = instInterfaces;
-  }
+    public void setInstInterfaces(
+            Map<String, InterfaceInstanceDataDefinition> instInterfaces) {
+        this.instInterfaces = instInterfaces;
+    }
 
-  public Boolean isAbstract() {
-    return ((ResourceMetadataDataDefinition) getComponentMetadataDefinition()
-        .getMetadataDataDefinition())
-        .isAbstract();
-  }
+    public Boolean isAbstract() {
+        return ((ResourceMetadataDataDefinition) getComponentMetadataDefinition()
+                .getMetadataDataDefinition())
+                .isAbstract();
+    }
 
     public void setAbstract(Boolean isAbstract) {
         ((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition())
@@ -240,9 +239,9 @@ public class Resource extends Component {
                 .setVendorRelease(vendorRelease);
     }
 
-    public void setResourceVendorModelNumber(String resourceVendorModelNumber){
+    public void setResourceVendorModelNumber(String resourceVendorModelNumber) {
         ((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition()).
-        setResourceVendorModelNumber(resourceVendorModelNumber);
+                setResourceVendorModelNumber(resourceVendorModelNumber);
     }
 
     public String getVendorName() {
@@ -255,32 +254,32 @@ public class Resource extends Component {
                 .getVendorRelease();
     }
 
-    public String getResourceVendorModelNumber(){
+    public String getResourceVendorModelNumber() {
         return ((ResourceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition())
                 .getResourceVendorModelNumber();
     }
 
     @Override
-    public String fetchGenericTypeToscaNameFromConfig(){
+    public String fetchGenericTypeToscaNameFromConfig() {
         String result = super.fetchGenericTypeToscaNameFromConfig();
-        if(null == result)
+        if (null == result)
             result = ConfigurationManager.getConfigurationManager().getConfiguration().getGenericAssetNodeTypes().get(ResourceTypeEnum.VFC.getValue());
         return result;
     }
 
     @Override
-    public String assetType(){
+    public String assetType() {
         return this.getResourceType().name();
     }
 
     @Override
-    public boolean shouldGenerateInputs(){
+    public boolean shouldGenerateInputs() {
         //TODO add complex VFC condition when supported
         return !(this.getResourceType().isAtomicType());
     }
 
     @Override
-    public boolean deriveFromGeneric(){
+    public boolean deriveFromGeneric() {
         return this.shouldGenerateInputs() || (derivedFrom != null && derivedFrom.contains(fetchGenericTypeToscaNameFromConfig()));
     }
 
@@ -290,7 +289,7 @@ public class Resource extends Component {
     }
 
     private String getInstanceNameFromInstanceId(Resource resource, String instId) {
-               Optional<ComponentInstance> componentInstanceById = resource.getComponentInstanceById(instId);
-               return componentInstanceById.isPresent() ? componentInstanceById.get().getName() : null;
+        Optional<ComponentInstance> componentInstanceById = resource.getComponentInstanceById(instId);
+        return componentInstanceById.isPresent() ? componentInstanceById.get().getName() : null;
     }
 }
index 29859cb..113a6f4 100644 (file)
@@ -16,7 +16,7 @@
 
 package org.openecomp.sdc.be.datatypes.elements;
 
-import org.apache.commons.collections.MapUtils;
+import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
 
 import java.io.Serializable;
@@ -25,14 +25,12 @@ import java.util.Map;
 import java.util.Objects;
 
 public class InterfaceInstanceDataDefinition extends ToscaDataDefinition implements Serializable {
-  protected Map<String, Object> inputs;
-  protected Map<String, OperationInstance> operations;
 
   public InterfaceInstanceDataDefinition(
       InterfaceInstanceDataDefinition inter) {
     this.toscaPresentation = null;
-    this.inputs = inter.inputs == null? new HashMap():new HashMap<>(inter.inputs);
-    this.operations = new HashMap<>(inter.operations);
+    setInputs(inter.getInputs() == null? new HashMap():new HashMap<>(inter.getInputs()));
+    setOperations(new HashMap<>(inter.getOperations()));
   }
 
   public InterfaceInstanceDataDefinition(){
@@ -40,24 +38,19 @@ public class InterfaceInstanceDataDefinition extends ToscaDataDefinition impleme
   }
 
   public Map<String, Object> getInputs() {
-    return this.inputs;
+    return (Map<String, Object>)getToscaPresentationValue(JsonPresentationFields.INPUTS);
   }
 
-  public void setInputs(
-      Map<String, Object> inputs) {
-    this.inputs = inputs;
+  public void setInputs(Map<String, Object> inputs) {
+    setToscaPresentationValue(JsonPresentationFields.INPUTS, inputs);
   }
 
   public Map<String, OperationInstance> getOperations() {
-    return operations;
+    return (Map<String, OperationInstance>)getToscaPresentationValue(JsonPresentationFields.OPERATIONS);
   }
 
-  public void addInstanceOperation(String operationName, OperationInstance operation) {
-    if(MapUtils.isEmpty(this.operations)) {
-      this.operations = new HashMap<>();
-    }
-
-    this.operations.put(operationName, operation);
+  public void setOperations(Map<String, OperationInstance> operations) {
+    setToscaPresentationValue(JsonPresentationFields.OPERATIONS, operations);
   }
 
   @Override
@@ -69,13 +62,13 @@ public class InterfaceInstanceDataDefinition extends ToscaDataDefinition impleme
       return false;
     }
     InterfaceInstanceDataDefinition that = (InterfaceInstanceDataDefinition) o;
-    return Objects.equals(inputs, that.inputs);
+    return Objects.equals(this.getInputs(), that.getInputs());
   }
 
   @Override
   public int hashCode() {
 
-    return Objects.hash(inputs);
+    return Objects.hash(this.getInputs());
   }
 
 }
index 6829c72..4d39ec1 100644 (file)
@@ -227,7 +227,8 @@ public enum JsonPresentationFields {
     OPERATIONS("operations", null),
     OPERATION_IMPLEMENTATION("implementation",null),
     OPERATION_INPUTS("inputs",null),
-    OPERATION_OUTPUTS("outputs", null);
+    OPERATION_OUTPUTS("outputs", null),
+    INPUTS("inputs", null);
 
     private String presentation;
     private GraphPropertyEnum storedAs;
diff --git a/pom.xml b/pom.xml
index 6607d61..637fb07 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,8 @@ Modifications copyright (c) 2018 Nokia
         <ecomp.version>2.4.0</ecomp.version>
         <cassandra.unit.version>3.5.0.1</cassandra.unit.version>
 
+        <commons.collections.version>4.1</commons.collections.version>
+
         <!-- Elastic Search mapper (reference the elastic search version actually). -->
         <elastic-search.version>2.4.0</elastic-search.version>
         <catalog-artifacts.version>1.0.0-SNAPSHOT</catalog-artifacts.version>