package com.kuxhausen.huemore.net.dev;
import java.util.ArrayList;
/**
* For debugging purposes. Accumulates a sequence of message numbers and can print a summary
*/
public class MessageAccumulator {
ArrayList<Integer> messages;
public MessageAccumulator() {
messages = new ArrayList<>();
}
public void add(int i) {
messages.add(i);
}
@Override
public String toString() {
if (messages.size() < 1) {
return "Empty";
}
StringBuffer resultBuffer = new StringBuffer();
Integer sequenceStart, sequenceStop;
sequenceStart = sequenceStop = messages.get(0);
for (int i = 1; i < messages.size(); i++) {
if (messages.get(i) == sequenceStop + 1) {
sequenceStop++;
} else {
if (sequenceStart != sequenceStop) {
resultBuffer.append(sequenceStart);
resultBuffer.append('-');
}
resultBuffer.append(sequenceStop);
resultBuffer.append(',');
sequenceStart = sequenceStop = messages.get(i);
}
}
if (sequenceStart != sequenceStop) {
resultBuffer.append(sequenceStart);
resultBuffer.append('-');
}
resultBuffer.append(sequenceStop);
return resultBuffer.toString();
}
}