summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-10-21 10:29:50 +0200
committerMartin Polden <mpolden@mpolden.no>2021-10-21 10:29:50 +0200
commit3e52a206bc2fb9cbf34fdbb088ce734877d545b4 (patch)
tree759c67d141ec0afaaf88763e3022ba166a7513bf /node-repository
parent85f0012937e76a96414c9fc9402b270186fcc9f4 (diff)
Extend AbstractFilteringList
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerList.java32
1 files 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<LoadBalancer> {
-
- private final List<LoadBalancer> loadBalancers;
+public class LoadBalancerList extends AbstractFilteringList<LoadBalancer, LoadBalancerList> {
- private LoadBalancerList(Collection<LoadBalancer> loadBalancers) {
- this.loadBalancers = List.copyOf(Objects.requireNonNull(loadBalancers, "loadBalancers must be non-null"));
+ protected LoadBalancerList(Collection<LoadBalancer> 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<LoadBalancer> asList() {
- return loadBalancers;
- }
-
- private static LoadBalancerList of(Stream<LoadBalancer> stream) {
- return new LoadBalancerList(stream.collect(Collectors.toUnmodifiableList()));
+ return matching(lb -> lb.state() == state);
}
public static LoadBalancerList copyOf(Collection<LoadBalancer> loadBalancers) {
- return new LoadBalancerList(loadBalancers);
- }
-
- @Override
- public Iterator<LoadBalancer> iterator() {
- return loadBalancers.iterator();
+ return new LoadBalancerList(loadBalancers, false);
}
}