Skip to content

Package: TranslatorLifeDisconnectKuraKapua

TranslatorLifeDisconnectKuraKapua

nameinstructionbranchcomplexitylinemethod
TranslatorLifeDisconnectKuraKapua()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getClassFrom()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getClassTo()
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
static {...}
M: 13 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
translate(KuraDisconnectChannel)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
translate(KuraDisconnectMessage)
M: 101 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 20 C: 0
0%
M: 1 C: 0
0%
translate(KuraDisconnectPayload)
M: 8 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2016, 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.translator.kura.kapua;
14:
15: import org.eclipse.kapua.KapuaEntityNotFoundException;
16: import org.eclipse.kapua.locator.KapuaLocator;
17: import org.eclipse.kapua.message.device.lifecycle.KapuaDisconnectChannel;
18: import org.eclipse.kapua.message.device.lifecycle.KapuaDisconnectMessage;
19: import org.eclipse.kapua.message.device.lifecycle.KapuaDisconnectPayload;
20: import org.eclipse.kapua.message.internal.device.lifecycle.KapuaDisconnectChannelImpl;
21: import org.eclipse.kapua.message.internal.device.lifecycle.KapuaDisconnectMessageImpl;
22: import org.eclipse.kapua.message.internal.device.lifecycle.KapuaDisconnectPayloadImpl;
23: import org.eclipse.kapua.service.account.Account;
24: import org.eclipse.kapua.service.account.AccountService;
25: import org.eclipse.kapua.service.device.call.message.kura.lifecycle.KuraDisconnectChannel;
26: import org.eclipse.kapua.service.device.call.message.kura.lifecycle.KuraDisconnectMessage;
27: import org.eclipse.kapua.service.device.call.message.kura.lifecycle.KuraDisconnectPayload;
28: import org.eclipse.kapua.service.device.registry.Device;
29: import org.eclipse.kapua.service.device.registry.DeviceRegistryService;
30: import org.eclipse.kapua.translator.Translator;
31: import org.eclipse.kapua.translator.exception.InvalidChannelException;
32: import org.eclipse.kapua.translator.exception.InvalidMessageException;
33: import org.eclipse.kapua.translator.exception.InvalidPayloadException;
34: import org.eclipse.kapua.translator.exception.TranslateException;
35:
36: /**
37: * {@link Translator} implementation from {@link KuraDisconnectMessage} to {@link KapuaDisconnectMessage}
38: *
39: * @since 1.0.0
40: */
41: public class TranslatorLifeDisconnectKuraKapua extends Translator<KuraDisconnectMessage, KapuaDisconnectMessage> {
42:
43: private static final KapuaLocator LOCATOR = KapuaLocator.getInstance();
44:
45: private static final AccountService ACCOUNT_SERVICE = LOCATOR.getService(AccountService.class);
46: private static final DeviceRegistryService DEVICE_REGISTRY_SERVICE = LOCATOR.getService(DeviceRegistryService.class);
47:
48: @Override
49: public KapuaDisconnectMessage translate(KuraDisconnectMessage kuraDisconnectMessage) throws TranslateException {
50: try {
51: KapuaDisconnectMessage kapuaDisconnectMessage = new KapuaDisconnectMessageImpl();
52: kapuaDisconnectMessage.setChannel(translate(kuraDisconnectMessage.getChannel()));
53: kapuaDisconnectMessage.setPayload(translate(kuraDisconnectMessage.getPayload()));
54:
55: Account account = ACCOUNT_SERVICE.findByName(kuraDisconnectMessage.getChannel().getScope());
56:• if (account == null) {
57: throw new KapuaEntityNotFoundException(Account.TYPE, kuraDisconnectMessage.getChannel().getScope());
58: }
59:
60: Device device = DEVICE_REGISTRY_SERVICE.findByClientId(account.getId(), kuraDisconnectMessage.getChannel().getClientId());
61:• if (device == null) {
62: throw new KapuaEntityNotFoundException(Device.class.toString(), kuraDisconnectMessage.getChannel().getClientId());
63: }
64:
65: kapuaDisconnectMessage.setDeviceId(device.getId());
66: kapuaDisconnectMessage.setScopeId(account.getId());
67: kapuaDisconnectMessage.setCapturedOn(kuraDisconnectMessage.getPayload().getTimestamp());
68: kapuaDisconnectMessage.setSentOn(kuraDisconnectMessage.getPayload().getTimestamp());
69: kapuaDisconnectMessage.setReceivedOn(kuraDisconnectMessage.getTimestamp());
70: kapuaDisconnectMessage.setPosition(TranslatorKuraKapuaUtils.translate(kuraDisconnectMessage.getPayload().getPosition()));
71:
72: return kapuaDisconnectMessage;
73: } catch (InvalidChannelException | InvalidPayloadException te) {
74: throw te;
75: } catch (Exception e) {
76: throw new InvalidMessageException(e, kuraDisconnectMessage);
77: }
78: }
79:
80: private KapuaDisconnectChannel translate(KuraDisconnectChannel kuraDisconnectChannel) {
81: KapuaDisconnectChannel kapuaDisconnectChannel = new KapuaDisconnectChannelImpl();
82: kapuaDisconnectChannel.setClientId(kuraDisconnectChannel.getClientId());
83: return kapuaDisconnectChannel;
84: }
85:
86: private KapuaDisconnectPayload translate(KuraDisconnectPayload kuraDisconnectPayload) {
87: return new KapuaDisconnectPayloadImpl(kuraDisconnectPayload.getUptime(), kuraDisconnectPayload.getDisplayName());
88: }
89:
90: @Override
91: public Class<KuraDisconnectMessage> getClassFrom() {
92: return KuraDisconnectMessage.class;
93: }
94:
95: @Override
96: public Class<KapuaDisconnectMessage> getClassTo() {
97: return KapuaDisconnectMessage.class;
98: }
99:
100: }