@Override public DeviceManagementOperation create(DeviceManagementOperationCreator creator) throws KapuaException { // // Argument Validation ArgumentValidator.notNull(creator, "deviceManagementOperationCreator"); ArgumentValidator.notNull(creator.getScopeId(), "deviceManagementOperationCreator.scopeId"); ArgumentValidator.notNull(creator.getStartedOn(), "deviceManagementOperationCreator.startedOn"); ArgumentValidator.notNull(creator.getDeviceId(), "deviceManagementOperationCreator.deviceId"); ArgumentValidator.notNull(creator.getOperationId(), "deviceManagementOperationCreator.operationId"); ArgumentValidator.notNull(creator.getStatus(), "deviceManagementOperationCreator.status"); ArgumentValidator.notNull(creator.getAppId(), "deviceManagementOperationCreator.appId"); ArgumentValidator.notNull(creator.getAction(), "deviceManagementOperationCreator.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(creator.getScopeId(), creator.getDeviceId()) == null)) { throw new KapuaEntityNotFoundException(Device.TYPE, creator.getDeviceId()); } // // Do create return entityManagerSession.onTransactedInsert(em -> DeviceManagementOperationDAO.create(em, creator)); }