Skip to content

Package: ManagementOperationNotificationServiceImpl

ManagementOperationNotificationServiceImpl

nameinstructionbranchcomplexitylinemethod
ManagementOperationNotificationServiceImpl()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
count(KapuaQuery)
M: 19 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
create(ManagementOperationNotificationCreator)
M: 56 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 11 C: 0
0%
M: 1 C: 0
0%
delete(KapuaId, KapuaId)
M: 21 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
find(KapuaId, KapuaId)
M: 21 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
lambda$count$4(KapuaQuery, EntityManager)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
lambda$create$0(ManagementOperationNotificationCreator)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
lambda$create$1(ManagementOperationNotificationCreator, EntityManager)
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
lambda$delete$5(KapuaId, KapuaId, EntityManager)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
lambda$find$2(KapuaId, KapuaId, EntityManager)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
lambda$query$3(KapuaQuery, EntityManager)
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
query(KapuaQuery)
M: 18 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
static {...}
M: 18 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2017, 2022 Eurotech and/or its affiliates and others
3: *
4: * This program and the accompanying materials are made
5: * available under the terms of the Eclipse Public License 2.0
6: * which is available at https://www.eclipse.org/legal/epl-2.0/
7: *
8: * SPDX-License-Identifier: EPL-2.0
9: *
10: * Contributors:
11: * Eurotech - initial API and implementation
12: *******************************************************************************/
13: package org.eclipse.kapua.service.device.management.registry.operation.notification.internal;
14:
15: import org.eclipse.kapua.KapuaEntityNotFoundException;
16: import org.eclipse.kapua.KapuaException;
17: import org.eclipse.kapua.commons.security.KapuaSecurityUtils;
18: import org.eclipse.kapua.commons.service.internal.AbstractKapuaService;
19: import org.eclipse.kapua.commons.util.ArgumentValidator;
20: import org.eclipse.kapua.locator.KapuaLocator;
21: import org.eclipse.kapua.locator.KapuaProvider;
22: import org.eclipse.kapua.model.domain.Actions;
23: import org.eclipse.kapua.model.id.KapuaId;
24: import org.eclipse.kapua.model.query.KapuaQuery;
25: import org.eclipse.kapua.service.authorization.AuthorizationService;
26: import org.eclipse.kapua.service.authorization.permission.PermissionFactory;
27: import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperation;
28: import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationRegistryService;
29: import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementRegistryDomains;
30: import org.eclipse.kapua.service.device.management.registry.operation.internal.DeviceManagementOperationEntityManagerFactory;
31: import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotification;
32: import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationCreator;
33: import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationListResult;
34: import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationService;
35:
36: @KapuaProvider
37: public class ManagementOperationNotificationServiceImpl extends AbstractKapuaService implements ManagementOperationNotificationService {
38:
39: private static final KapuaLocator LOCATOR = KapuaLocator.getInstance();
40:
41: private static final AuthorizationService AUTHORIZATION_SERVICE = LOCATOR.getService(AuthorizationService.class);
42: private static final PermissionFactory PERMISSION_FACTORY = LOCATOR.getFactory(PermissionFactory.class);
43:
44: private static final DeviceManagementOperationRegistryService DEVICE_MANAGEMENT_OPERATION_REGISTRY_SERVICE = LOCATOR.getService(DeviceManagementOperationRegistryService.class);
45:
46: protected ManagementOperationNotificationServiceImpl() {
47: super(DeviceManagementOperationEntityManagerFactory.getInstance());
48: }
49:
50: @Override
51: public ManagementOperationNotification create(ManagementOperationNotificationCreator creator) throws KapuaException {
52: //
53: // Argument Validation
54: ArgumentValidator.notNull(creator, "managementOperationNotificationCreator");
55: ArgumentValidator.notNull(creator.getScopeId(), "managementOperationNotificationCreator.scopeId");
56: ArgumentValidator.notNull(creator.getOperationId(), "managementOperationNotificationCreator.operationId");
57: ArgumentValidator.notNull(creator.getSentOn(), "managementOperationNotificationCreator.sentOn");
58: ArgumentValidator.notNull(creator.getStatus(), "managementOperationNotificationCreator.status");
59: ArgumentValidator.notNull(creator.getProgress(), "managementOperationNotificationCreator.progress");
60: ArgumentValidator.notNegative(creator.getProgress(), "managementOperationNotificationCreator.progress");
61:
62: //
63: // Check access
64: AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.write, null));
65:
66: //
67: // Check operation existence
68:• if (KapuaSecurityUtils.doPrivileged(() -> DEVICE_MANAGEMENT_OPERATION_REGISTRY_SERVICE.find(creator.getScopeId(), creator.getOperationId()) == null)) {
69: throw new KapuaEntityNotFoundException(DeviceManagementOperation.TYPE, creator.getOperationId());
70: }
71:
72: //
73: // Do create
74: return entityManagerSession.doTransactedAction(em -> ManagementOperationNotificationDAO.create(em, creator));
75: }
76:
77: @Override
78: public ManagementOperationNotification find(KapuaId scopeId, KapuaId entityId) throws KapuaException {
79: //
80: // Argument Validation
81: ArgumentValidator.notNull(scopeId, "scopeId");
82: ArgumentValidator.notNull(entityId, "managementOperationNotificationId");
83:
84: //
85: // Check Access
86: AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.read, scopeId));
87:
88: //
89: // Do find
90: return entityManagerSession.doAction(em -> ManagementOperationNotificationDAO.find(em, scopeId, entityId));
91: }
92:
93: @Override
94: public ManagementOperationNotificationListResult query(KapuaQuery query) throws KapuaException {
95: //
96: // Argument Validation
97: ArgumentValidator.notNull(query, "query");
98:
99: //
100: // Check Access
101: AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.read, query.getScopeId()));
102:
103: //
104: // Do query
105: return entityManagerSession.doAction(em -> ManagementOperationNotificationDAO.query(em, query));
106: }
107:
108: @Override
109: public long count(KapuaQuery query) throws KapuaException {
110: //
111: // Argument Validation
112: ArgumentValidator.notNull(query, "query");
113:
114: //
115: // Check Access
116: AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.read, query.getScopeId()));
117:
118: //
119: // Do count
120: return entityManagerSession.doAction(em -> ManagementOperationNotificationDAO.count(em, query));
121: }
122:
123: @Override
124: public void delete(KapuaId scopeId, KapuaId entityId) throws KapuaException {
125: //
126: // Argument Validation
127: ArgumentValidator.notNull(scopeId, "scopeId");
128: ArgumentValidator.notNull(entityId, "managementOperationNotificationId");
129:
130: //
131: // Check Access
132: AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.delete, null));
133:
134: //
135: // Do delete
136: entityManagerSession.doTransactedAction(em -> ManagementOperationNotificationDAO.delete(em, scopeId, entityId));
137: }
138: }