o.add("regId", u.getRegistrationId()); o.add("identity", IdentitySerDes.serialize(u.getIdentity())); if (u.getLifeTimeInSec() != null) o.add("lt", u.getLifeTimeInSec()); if (u.getSmsNumber() != null) o.add("sms", u.getSmsNumber()); if (u.getBindingMode() != null) o.add("bnd", u.getBindingMode().name()); if (u.getObjectLinks() != null) { JsonArray links = new JsonArray(); for (Link l : u.getObjectLinks()) { JsonObject ol = Json.object(); ol.add("url", l.getUrl()); if (u.getAdditionalAttributes() != null) { JsonObject addAttr = Json.object(); for (Map.Entry<String, String> e : u.getAdditionalAttributes().entrySet()) { addAttr.add(e.getKey(), e.getValue());
@Override public UpdatedRegistration updateRegistration(RegistrationUpdate update) { try { lock.writeLock().lock(); Registration registration = getRegistration(update.getRegistrationId()); if (registration == null) { return null; } else { Registration updatedRegistration = update.update(registration); regsByEp.put(updatedRegistration.getEndpoint(), updatedRegistration); // If registration is already associated to this address we don't care as we only want to keep the most // recent binding. regsByAddr.put(updatedRegistration.getSocketAddress(), updatedRegistration); if (!registration.getSocketAddress().equals(updatedRegistration.getSocketAddress())) { removeFromMap(regsByAddr, registration.getSocketAddress(), registration); } regsByRegId.put(updatedRegistration.getId(), updatedRegistration); return new UpdatedRegistration(registration, updatedRegistration); } } finally { lock.writeLock().unlock(); } }
return new RegistrationUpdate(regId, identity, lifetime, sms, b, linkObjs, addAttr);
/** * Returns an updated version of the registration. * * @param registration the registration to update * @return the updated registration */ public Registration update(Registration registration) { Identity identity = this.identity != null ? this.identity : registration.getIdentity(); Link[] linkObject = this.objectLinks != null ? this.objectLinks : registration.getObjectLinks(); long lifeTimeInSec = this.lifeTimeInSec != null ? this.lifeTimeInSec : registration.getLifeTimeInSec(); BindingMode bindingMode = this.bindingMode != null ? this.bindingMode : registration.getBindingMode(); String smsNumber = this.smsNumber != null ? this.smsNumber : registration.getSmsNumber(); Map<String, String> additionalAttributes = this.additionalAttributes.isEmpty() ? registration.getAdditionalRegistrationAttributes() : updateAdditionalAttributes(registration.getAdditionalRegistrationAttributes()); // this needs to be done in any case, even if no properties have changed, in order // to extend the client registration time-to-live period ... Date lastUpdate = new Date(); Registration.Builder builder = new Registration.Builder(registration.getId(), registration.getEndpoint(), identity, registration.getRegistrationEndpointAddress()); builder.lwM2mVersion(registration.getLwM2mVersion()).lifeTimeInSec(lifeTimeInSec).smsNumber(smsNumber) .bindingMode(bindingMode).objectLinks(linkObject).registrationDate(registration.getRegistrationDate()) .lastUpdate(lastUpdate).additionalRegistrationAttributes(additionalAttributes); return builder.build(); }
return new RegistrationUpdate(regId, identity, lifetime, sms, b, linkObjs, addAttr);
o.add("regId", u.getRegistrationId()); o.add("identity", IdentitySerDes.serialize(u.getIdentity())); if (u.getLifeTimeInSec() != null) o.add("lt", u.getLifeTimeInSec()); if (u.getSmsNumber() != null) o.add("sms", u.getSmsNumber()); if (u.getBindingMode() != null) o.add("bnd", u.getBindingMode().name()); if (u.getObjectLinks() != null) { JsonArray links = new JsonArray(); for (Link l : u.getObjectLinks()) { JsonObject ol = Json.object(); ol.add("url", l.getUrl()); if (u.getAdditionalAttributes() != null) { JsonObject addAttr = Json.object(); for (Map.Entry<String, String> e : u.getAdditionalAttributes().entrySet()) { addAttr.add(e.getKey(), e.getValue());
byte[] ep = j.get(toRegIdKey(update.getRegistrationId())); if (ep == null) { return null; Registration updatedRegistration = update.update(r);
final RegistrationUpdate update = new RegistrationUpdate(updateRequest.getRegistrationId(), sender, updateRequest.getLifeTimeInSec(), updateRequest.getSmsNumber(), updateRequest.getBindingMode(), updateRequest.getObjectLinks(), updateRequest.getAdditionalAttributes());
byte[] ep = j.get(toRegIdKey(update.getRegistrationId())); if (ep == null) { return null; Registration updatedRegistration = update.update(r);