@Override
public void handleGET(CoapExchange exchange) {
// get request to read out details
Request request = exchange.advanced().getRequest();
// successively create response
Response response;
if (exchange.getRequestOptions().containsETag(etag)) {
response = new Response(VALID);
response.getOptions().addETag(etag.clone());
// automatically change now
storeData(null, UNDEFINED);
} else {
response = new Response(CONTENT);
if (data==null) {
etag = ByteBuffer.allocate(2).putShort( (short) (Math.random()*0x10000) ).array();
StringBuilder payload = new StringBuilder();
payload.append(
String.format(
"Type: %d (%s)\nCode: %d (%s)\nMID: %d",
request.getType().value,
request.getType(),
request.getCode().value,
request.getCode(),
request.getMID()));
if (request.getToken().length > 0) {
payload.append("\nToken: ");
payload.append(request.getTokenString());
}
if (payload.length() > 64) {
payload.delete(63, payload.length());
payload.append('»');