com.speedment.tool.config.internal.util.ImmutableListUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tool-config Show documentation
Show all versions of tool-config Show documentation
An observable configuration system that models the layout of a
relational database in a JavaFX observable fassion.
/*
*
* Copyright (c) 2006-2019, Speedment, Inc. 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. You may obtain a copy of
* the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 com.speedment.tool.config.internal.util;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Stream;
import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.toList;
/**
*
* @author Per Minborg
* @since 3.0.0
*/
public final class ImmutableListUtil {
private ImmutableListUtil() {}
public static List of() {
return Collections.emptyList();
}
public static List of(E element) {
return Collections.singletonList(element);
}
@SafeVarargs // Creating a Stream of an array is safe.
@SuppressWarnings({"unchecked", "varargs"})
public static List of(E... elements) {
return Stream.of(elements).collect(toImmutableList());
}
public static List of(Collection elements) {
return elements.stream().collect(toImmutableList());
}
public static List concat(Collection elements, E additionalElement) {
return concat(elements, of(additionalElement));
}
public static List concat(Collection left, Collection right) {
return Stream.concat(
left.stream(),
right.stream()
).collect(toImmutableList());
}
private static Collector> toImmutableList() {
return collectingAndThen(toList(), Collections::unmodifiableList);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy