[sdc] update code of sdc
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / impl / ComponentsUtils.java
index a6415dc..8c066c8 100644 (file)
 package org.openecomp.sdc.be.impl;
 
 import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.security.cert.CollectionCertStoreParameters;
+import java.util.*;
 import java.util.regex.Pattern;
 
 import javax.annotation.PostConstruct;
@@ -42,21 +39,13 @@ import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
 import org.openecomp.sdc.be.config.BeEcompErrorManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.dao.graph.datatype.AdditionalInformationEnum;
+import org.openecomp.sdc.be.dao.utils.CollectionUtils;
 import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterInfo;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
-import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ConsumerDefinition;
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.be.model.GroupTypeDefinition;
-import org.openecomp.sdc.be.model.PolicyTypeDefinition;
-import org.openecomp.sdc.be.model.PropertyConstraint;
-import org.openecomp.sdc.be.model.Resource;
-import org.openecomp.sdc.be.model.Service;
-import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
+import org.openecomp.sdc.be.model.*;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.model.operations.impl.PropertyOperation.PropertyConstraintDeserialiser;
 import org.openecomp.sdc.be.model.operations.impl.PropertyOperation.PropertyConstraintJacksonDeserialiser;
@@ -241,6 +230,30 @@ public class ComponentsUtils {
                return responseFormat;
        }
 
+       public <T> ResponseFormat getResponseFormatByElement(ActionStatus actionStatus, T  obj) {
+               if (obj == null) {
+                       return getResponseFormat(actionStatus);
+               }
+               ResponseFormat responseFormat = null;
+
+               switch (actionStatus) {
+                       case MISSING_CAPABILITY_TYPE:
+                               if (obj instanceof List && org.apache.commons.collections.CollectionUtils.isNotEmpty((List) obj)){
+                                       List list = (List)obj;
+                                       if ( list.get(0) instanceof RequirementDefinition ) {
+                                               responseFormat = getResponseFormat(ActionStatus.MISSING_CAPABILITY_TYPE, ((RequirementDefinition) list.get(0)).getName());    //Arbitray index, all we need is single object
+                                               return responseFormat;
+                                       }
+                               }
+                               log.debug("UNKNOWN TYPE : expecting obj as a non empty List<RequirmentsDefinitions>");
+                               break;
+                       default:
+                               responseFormat = getResponseFormat(actionStatus);
+                               break;
+               }
+               return responseFormat;
+       }
+
        /**
         * Returns the response format of resource error with respective variables according to actionStatus. This is needed for cases where actionStatus is anynomously converted from storage operation, and the caller doesn't know what actionStatus he
         * received. It's caller's responisibility to fill the passed resource object with needed fields.