package org.implab.gradle.internal; import java.util.LinkedList; import java.util.List; import java.util.function.Consumer; public class ReplayableQueue { private final List> consumers = new LinkedList<>(); private final List values = new LinkedList<>(); public void add(T value) { consumers.forEach(consumer -> consumer.accept(value)); values.add(value); } List values() { return List.copyOf(values); } public void forEach(Consumer consumer) { values.forEach(consumer); consumers.add(consumer); } }