2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.components.utils;
23 import java.util.List;
26 public class MapUtils {
27 public static boolean compareMaps(Map<String, Object> source, Map<String, Object> target) {
28 if (source == null && target == null) {
31 if ((source == null && target != null) || source != null && target == null
32 || source.keySet().size() != target.keySet().size()) {
36 for (Map.Entry<String, Object> entry : source.entrySet()) {
37 Object sourceObj = entry.getValue();
38 Object targetObj = target.get(entry.getKey());
39 if ((sourceObj == null && targetObj != null) || (sourceObj != null && targetObj == null)) {
42 if (!handleSourceAndTargetObjects(sourceObj, targetObj)) {
50 public static boolean compareLists(List<Object> source, List<Object> target) {
51 if (source == null && target == null) {
54 if ((source == null && target != null) || source != null && target == null ||
55 source.size() != target.size()) {
58 for (int i = 0; i < source.size(); i++) {
59 Object sourceObj = source.get(i);
60 Object targetObj = target.get(i);
61 if ((sourceObj == null && targetObj != null) || sourceObj != null && targetObj == null) {
64 if (!handleSourceAndTargetObjects(sourceObj, targetObj)) {
71 public static boolean handleSourceAndTargetObjects(Object sourceObj, Object targetObj) {
73 if (sourceObj == null && targetObj == null) {
77 if (sourceObj == null && targetObj != null) {
80 if (sourceObj.getClass().equals(targetObj.getClass())) {
81 if (sourceObj instanceof Map) {
82 if (!compareMaps((Map<String, Object>) sourceObj, (Map<String, Object>) targetObj)) {
85 } else if (sourceObj instanceof List) {
86 if (!compareLists((List<Object>) sourceObj, (List<Object>) targetObj)) {
91 if(sourceObj.getClass() != targetObj.getClass()){
95 if (!sourceObj.equals(targetObj)) {