package com.github.dreamhead.moco.monitor;
import com.github.dreamhead.moco.MocoMonitor;
import com.github.dreamhead.moco.Request;
import com.github.dreamhead.moco.Response;
public class CompositeMonitor implements MocoMonitor {
private final Iterable<MocoMonitor> monitors;
public CompositeMonitor(final Iterable<MocoMonitor> monitors) {
this.monitors = monitors;
}
@Override
public void onMessageArrived(final Request request) {
for (MocoMonitor monitor : monitors) {
monitor.onMessageArrived(request);
}
}
@Override
public void onException(final Throwable t) {
for (MocoMonitor monitor : monitors) {
monitor.onException(t);
}
}
@Override
public void onMessageLeave(final Response response) {
for (MocoMonitor monitor : monitors) {
monitor.onMessageLeave(response);
}
}
@Override
public void onUnexpectedMessage(final Request request) {
for (MocoMonitor monitor : monitors) {
monitor.onUnexpectedMessage(request);
}
}
}