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=========================================================
20 package org.openecomp.sdc.be.components.utils;
22 import java.util.List;
25 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.keySet().size() != target.keySet().size()) {
34 for (Map.Entry<String, Object> entry : source.entrySet()) {
35 Object sourceObj = entry.getValue();
36 Object targetObj = target.get(entry.getKey());
37 if ((sourceObj == null && targetObj != null) || (sourceObj != null && targetObj == null)) {
40 if (!handleSourceAndTargetObjects(sourceObj, targetObj)) {
47 public static boolean compareLists(List<Object> source, List<Object> target) {
48 if (source == null && target == null) {
51 if (source == null || target == null || source.size() != target.size()) {
54 for (int i = 0; i < source.size(); i++) {
55 Object sourceObj = source.get(i);
56 Object targetObj = target.get(i);
57 if ((sourceObj == null && targetObj != null) || sourceObj != null && targetObj == null) {
60 if (!handleSourceAndTargetObjects(sourceObj, targetObj)) {
67 public static boolean handleSourceAndTargetObjects(Object sourceObj, Object targetObj) {
68 if (sourceObj == null && targetObj == null) {
71 if (sourceObj == null) {
74 if (sourceObj.getClass().equals(targetObj.getClass())) {
75 if (sourceObj instanceof Map) {
76 if (!compareMaps((Map<String, Object>) sourceObj, (Map<String, Object>) targetObj)) {
79 } else if (sourceObj instanceof List) {
80 if (!compareLists((List<Object>) sourceObj, (List<Object>) targetObj)) {
84 if (!sourceObj.equals(targetObj)) {