/**
* {@inheritDoc}
*/
@Override
public Reporter createReporter() {
FlexReporterBuilder builder;
Row row;
builder = new FlexReporterBuilder("MessageCrossbars", 6100);
row = builder.openRow();
row.addHeadingCell("Title");
row.addHeadingCell("");
row.addHeadingCell("(Re)set");
row.addHeadingCell("MsgsRec");
row.addHeadingCell("MsgsDeli");
row.addHeadingCell("MsgsLost");
row.addHeadingCell("Activated directly");
row.addHeadingCell("Activated indirectly");
row.addHeadingCell("Aborted");
row.addHeadingCell("Obs");
row.addHeadingCell("Qmax");
row.addHeadingCell("Qnow");
row.addHeadingCell("Qavg");
row.addHeadingCell("max.Wait");
row.addHeadingCell("avg.Wait");
row.closeRow();
row = builder.openRow();
row.addCell(getName());
row.addCell("Global:");
row.addCell(resetAt());
row.addCell(getReceivedMessages());
row.addCell(getDeliveredMessages());
row.addCell(getLostMessages());
row.addCell(getProcessActivations());
row.addCell("n/a");
row.addCell(getInterruptedWaits());
row.addCell(getObservations());
row.addCell(passivatedProcessesQueue.maxLength());
row.addCell(passivatedProcessesQueue.length());
row.addCell(passivatedProcessesQueue.averageLength());
row.addCell(passivatedProcessesQueue.maxWaitTime());
row.addCell(passivatedProcessesQueue.averageWaitTime());
row.closeRow();
row = builder.openRow();
row.addCell("").addHeadingCell("Message channels").addCell("").addCell("").addCell("").addCell("").addCell("")
.addCell("").addCell("").addCell("").addCell("").addCell("").addCell("").addCell("").addCell("")
.closeRow();
for (MessageChannel<T> ch : messageChannelsByName.values()) {
row = builder.openRow();
row.addCell("");
row.addCell(ch.getName());
row.addCell(ch.resetAt());
row.addCell(ch.getReceivedMessages());
row.addCell(ch.getDeliveredMessages());
row.addCell(ch.getLostMessages());
row.addCell(ch.getDirectProcessActivations());
row.addCell(ch.getIndirectProcessActivations());
row.addCell(ch.getInterruptedWaits());
row.addCell(ch.getObservations());
row.addCell(ch.getPassivatedProcessesQueue().maxLength());
row.addCell(ch.getPassivatedProcessesQueue().length());
row.addCell(ch.getPassivatedProcessesQueue().averageLength());
row.addCell(ch.getPassivatedProcessesQueue().maxWaitTime());
row.addCell(ch.getPassivatedProcessesQueue().averageWaitTime()).closeRow();
}
return builder.build();
}