package pluginbase.debugsession; import org.jetbrains.annotations.NotNull; import pluginbase.messages.messaging.MessageReceiver; import pluginbase.messages.messaging.MessagerDebugSubscription; import java.util.ArrayList; import java.util.List; class DebugSubscription implements MessagerDebugSubscription { @NotNull final List<String> recordedMessages = new ArrayList<>(); @NotNull private final MessageReceiver messageReceiver; public DebugSubscription(@NotNull MessageReceiver messageReceiver) { this.messageReceiver = messageReceiver; } @NotNull @Override public MessageReceiver getSubscriber() { return messageReceiver; } @Override public void messageRecord(@NotNull String message) { synchronized (recordedMessages) { recordedMessages.add(message); } } @NotNull @Override public List<String> getRecordedMessages() { synchronized (recordedMessages) { return new ArrayList<>(recordedMessages); } } }