From 3e52a206bc2fb9cbf34fdbb088ce734877d545b4 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Thu, 21 Oct 2021 10:29:50 +0200 Subject: Extend AbstractFilteringList --- .../hosted/provision/lb/LoadBalancerList.java | 32 +++++----------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerList.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerList.java index bad16bf7d12..93c89a7485e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerList.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerList.java @@ -1,46 +1,28 @@ // Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.lb; +import com.yahoo.collections.AbstractFilteringList; + import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * A filterable load balancer list. This is immutable. * * @author mpolden */ -public class LoadBalancerList implements Iterable { - - private final List loadBalancers; +public class LoadBalancerList extends AbstractFilteringList { - private LoadBalancerList(Collection loadBalancers) { - this.loadBalancers = List.copyOf(Objects.requireNonNull(loadBalancers, "loadBalancers must be non-null")); + protected LoadBalancerList(Collection items, boolean negate) { + super(items, negate, LoadBalancerList::new); } /** Returns the subset of load balancers that are in given state */ public LoadBalancerList in(LoadBalancer.State state) { - return of(loadBalancers.stream().filter(lb -> lb.state() == state)); - } - - public List asList() { - return loadBalancers; - } - - private static LoadBalancerList of(Stream stream) { - return new LoadBalancerList(stream.collect(Collectors.toUnmodifiableList())); + return matching(lb -> lb.state() == state); } public static LoadBalancerList copyOf(Collection loadBalancers) { - return new LoadBalancerList(loadBalancers); - } - - @Override - public Iterator iterator() { - return loadBalancers.iterator(); + return new LoadBalancerList(loadBalancers, false); } } -- cgit v1.2.3