diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java index 47e676dd25..e6d12c9b4c 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java @@ -12,19 +12,23 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * ============LICENSE_END========================================================= - * Modifications copyright (c) 2019 Nokia - * ================================================================================ */ 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.*; -import org.onap.sdc.tosca.services.CommonUtil; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; public class ServiceUtils { @@ -41,11 +45,20 @@ public class ServiceUtils { } Map<String, Object> objectAsMap = getObjectAsMap(objectCandidate); + T result = classToCreate.newInstance(); List<Field> declaredFields = getAllFields(classToCreate); - - CommonUtil.createSubObjectsUsingSetters(objectAsMap, declaredFields.toArray(new Field[0])); - T result = CommonUtil.populateBean(objectAsMap, classToCreate); + for( Field field : declaredFields){ + if(isComplexClass(field)){ + Optional<?> objectUsingSetters = + createObjectUsingSetters(objectAsMap.get(field.getName()), field.getType()); + if( objectUsingSetters.isPresent()){ + objectAsMap.remove(field.getName()); + objectAsMap.put(field.getName(), objectUsingSetters.get()); + } + } + } + BeanUtils.populate(result, objectAsMap); return Optional.of(result); } |