@Override public ReadResponse read(int resourceid) { return ReadResponse.notFound(); }
@Override public ReadResponse read(int resourceid) { if (resources.containsKey(resourceid)) { return ReadResponse.success(resources.get(resourceid)); } return ReadResponse.notFound(); }
@Override protected ReadResponse doRead(ServerIdentity identity, ReadRequest request) { LwM2mPath path = request.getPath(); // Manage Object case if (path.isObject()) { List<LwM2mObjectInstance> lwM2mObjectInstances = new ArrayList<>(); for (Entry<Integer, LwM2mInstanceEnabler> entry : instances.entrySet()) { lwM2mObjectInstances.add(getLwM2mObjectInstance(entry.getKey(), entry.getValue(), identity, false)); } return ReadResponse.success(new LwM2mObject(getId(), lwM2mObjectInstances)); } // Manage Instance case LwM2mInstanceEnabler instance = instances.get(path.getObjectInstanceId()); if (instance == null) return ReadResponse.notFound(); if (path.getResourceId() == null) { return ReadResponse.success(getLwM2mObjectInstance(path.getObjectInstanceId(), instance, identity, false)); } // Manage Resource case return instance.read(path.getResourceId()); }
@Override public ReadResponse read(int resourceid) { switch (resourceid) { case 0: // short server ID return ReadResponse.success(resourceid, shortServerId); case 1: // lifetime return ReadResponse.success(resourceid, lifetime); case 2: // default min period if (null == defaultMinPeriod) return ReadResponse.notFound(); return ReadResponse.success(resourceid, defaultMinPeriod); case 3: // default max period if (null == defaultMaxPeriod) return ReadResponse.notFound(); return ReadResponse.success(resourceid, defaultMaxPeriod); case 6: // notification storing when disable or offline return ReadResponse.success(resourceid, notifyWhenDisable); case 7: // binding return ReadResponse.success(resourceid, binding.toString()); default: return super.read(resourceid); } }
@Override public synchronized ReadResponse read(ServerIdentity identity, ReadRequest request) { LwM2mPath path = request.getPath(); // read is not supported for bootstrap if (identity.isLwm2mBootstrapServer()) { return ReadResponse.methodNotAllowed(); } if (!identity.isSystem()) { // read the security object is forbidden if (id == LwM2mId.SECURITY) { return ReadResponse.notFound(); } // check if the resource is readable. if (path.isResource()) { ResourceModel resourceModel = objectModel.resources.get(path.getResourceId()); if (resourceModel != null && !resourceModel.operations.isReadable()) { return ReadResponse.methodNotAllowed(); } } } return doRead(identity, request); // TODO we could do a validation of response.getContent by comparing with the spec. }