Java tutorial
/* * ****************************************************************************** * Copyright 2014-2015 Spectra Logic Corporation. 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://www.apache.org/licenses/LICENSE-2.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 com.spectralogic.ds3autogen.utils.collections; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.util.stream.Collector; import static java.util.stream.Collector.Characteristics.UNORDERED; /** Stream {@link Collector collectors} for Guava types. */ public final class GuavaCollectors { /** Collect a stream of elements into an {@link ImmutableList}. */ public static <T> Collector<T, ImmutableList.Builder<T>, ImmutableList<T>> immutableList() { return Collector.of(ImmutableList.Builder::new, ImmutableList.Builder::add, (l, r) -> l.addAll(r.build()), ImmutableList.Builder<T>::build); } /** Collect a stream of elements into an {@link ImmutableSet}. */ public static <T> Collector<T, ImmutableSet.Builder<T>, ImmutableSet<T>> immutableSet() { return Collector.of(ImmutableSet.Builder::new, ImmutableSet.Builder::add, (l, r) -> l.addAll(r.build()), ImmutableSet.Builder<T>::build, UNORDERED); } private GuavaCollectors() { throw new AssertionError("No instances."); } }