@Override
public void visit(RegisterRequest request) {
coapRequest = Request.newPost();
buildRequestSettings();
coapRequest.getOptions().setContentFormat(ContentFormat.LINK.getCode());
coapRequest.getOptions().addUriPath("rd");
HashMap<String, String> attributes = new HashMap<>();
attributes.putAll(request.getAdditionalAttributes());
attributes.put("ep", request.getEndpointName());
Long lifetime = request.getLifetime();
if (lifetime != null)
attributes.put("lt", lifetime.toString());
String smsNumber = request.getSmsNumber();
if (smsNumber != null)
attributes.put("sms", smsNumber);
String lwVersion = request.getLwVersion();
if (lwVersion != null)
attributes.put("lwm2m", lwVersion);
BindingMode bindingMode = request.getBindingMode();
if (bindingMode != null)
attributes.put("b", bindingMode.toString());
for (Entry<String, String> attr : attributes.entrySet()) {
coapRequest.getOptions().addUriQuery(attr.getKey() + "=" + attr.getValue());
}
Link[] objectLinks = request.getObjectLinks();
if (objectLinks != null)
coapRequest.setPayload(Link.serialize(objectLinks));
}