LogAction.java
package io.jstach.rainbowgum;
import java.util.ArrayList;
import java.util.List;
sealed interface LogAction {
enum StandardAction implements LogAction {
REOPEN, FLUSH;
}
}
interface Actor {
List<LogEvent> act(LogAction action);
static <A extends Actor> List<LogEvent> act(Iterable<A> actors, LogAction action) {
List<LogEvent> events = new ArrayList<>();
for (var appender : actors) {
events.addAll(appender.act(action));
}
return events;
}
static <T extends Actor> List<LogEvent> act(T[] actors, LogAction action) {
List<LogEvent> events = new ArrayList<>();
for (var appender : actors) {
events.addAll(appender.act(action));
}
return events;
}
}