
software.amazon.awssdk.utils.CollectionUtils Maven / Gradle / Ivy
Go to download
A single bundled dependency that includes all service and dependent JARs with third-party libraries
relocated to different namespaces.
/*
* Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, 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.
*/
package software.amazon.awssdk.utils;
import static java.util.Collections.unmodifiableList;
import static java.util.Collections.unmodifiableMap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import software.amazon.awssdk.annotations.SdkProtectedApi;
@SdkProtectedApi
public final class CollectionUtils {
private CollectionUtils() {
}
public static boolean isNullOrEmpty(Collection> collection) {
return collection == null || collection.isEmpty();
}
public static boolean isNullOrEmpty(Map, ?> map) {
return map == null || map.isEmpty();
}
/**
* Returns a new list containing the second list appended to the first list.
*/
public static List mergeLists(List list1, List list2) {
List merged = new LinkedList();
if (list1 != null) {
merged.addAll(list1);
}
if (list2 != null) {
merged.addAll(list2);
}
return merged;
}
/**
* Perform a deep copy of the provided map of lists. This only performs a deep copy of the map and lists. Entries are not
* copied, so care should be taken to ensure that entries are immutable if preventing unwanted mutations of the elements is
* desired.
*/
public static Map> deepCopyMap(Map> map) {
return deepCopyMap(map, () -> new HashMap<>());
}
/**
* Perform a deep copy of the provided map of lists. This only performs a deep copy of the map and lists. Entries are not
* copied, so care should be taken to ensure that entries are immutable if preventing unwanted mutations of the elements is
* desired.
*/
public static Map> deepCopyMap(Map> map, Supplier
© 2015 - 2025 Weber Informatics LLC | Privacy Policy