@Override public DeviceManagementOperation update(DeviceManagementOperation entity) throws KapuaException { // // Argument Validation ArgumentValidator.notNull(entity, "deviceManagementOperation"); ArgumentValidator.notNull(entity.getScopeId(), "deviceManagementOperation.scopeId"); ArgumentValidator.notNull(entity.getId(), "deviceManagementOperation.id"); ArgumentValidator.notNull(entity.getStartedOn(), "deviceManagementOperation.startedOn"); ArgumentValidator.notNull(entity.getDeviceId(), "deviceManagementOperation.deviceId"); ArgumentValidator.notNull(entity.getOperationId(), "deviceManagementOperation.operationId"); ArgumentValidator.notNull(entity.getStatus(), "deviceManagementOperation.status"); ArgumentValidator.notNull(entity.getAppId(), "deviceManagementOperation.appId"); ArgumentValidator.notNull(entity.getAction(), "deviceManagementOperation.action"); // // Check access AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.write, null)); // // Check device existence if (KapuaSecurityUtils.doPrivileged(() -> DEVICE_REGISTRY_SERVICE.find(entity.getScopeId(), entity.getDeviceId()) == null)) { throw new KapuaEntityNotFoundException(Device.TYPE, entity.getDeviceId()); } // // Check existence if (find(entity.getScopeId(), entity.getId()) == null) { throw new KapuaEntityNotFoundException(DeviceManagementOperation.TYPE, entity.getId()); } // // Do update return entityManagerSession.onTransactedResult(em -> DeviceManagementOperationDAO.update(em, entity)); }