Skip to content

Package: TranslatorLifeMissingKuraKapua

TranslatorLifeMissingKuraKapua

nameinstructionbranchcomplexitylinemethod
TranslatorLifeMissingKuraKapua()
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(KuraMissingChannel)
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(KuraMissingMessage)
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(KuraMissingPayload)
M: 14 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) 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.KapuaMissingChannel;
18: import org.eclipse.kapua.message.device.lifecycle.KapuaMissingMessage;
19: import org.eclipse.kapua.message.device.lifecycle.KapuaMissingPayload;
20: import org.eclipse.kapua.message.internal.device.lifecycle.KapuaMissingChannelImpl;
21: import org.eclipse.kapua.message.internal.device.lifecycle.KapuaMissingMessageImpl;
22: import org.eclipse.kapua.message.internal.device.lifecycle.KapuaMissingPayloadImpl;
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.KuraMissingChannel;
26: import org.eclipse.kapua.service.device.call.message.kura.lifecycle.KuraMissingMessage;
27: import org.eclipse.kapua.service.device.call.message.kura.lifecycle.KuraMissingPayload;
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 KuraMissingMessage} to {@link KapuaMissingMessage}
38: *
39: * @since 1.0.0
40: */
41: public class TranslatorLifeMissingKuraKapua extends Translator<KuraMissingMessage, KapuaMissingMessage> {
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 KapuaMissingMessage translate(KuraMissingMessage kuraMissingMessage) throws TranslateException {
50: try {
51: KapuaMissingMessage kapuaMissingMessage = new KapuaMissingMessageImpl();
52: kapuaMissingMessage.setChannel(translate(kuraMissingMessage.getChannel()));
53: kapuaMissingMessage.setPayload(translate(kuraMissingMessage.getPayload()));
54:
55: Account account = ACCOUNT_SERVICE.findByName(kuraMissingMessage.getChannel().getScope());
56:• if (account == null) {
57: throw new KapuaEntityNotFoundException(Account.TYPE, kuraMissingMessage.getChannel().getScope());
58: }
59:
60: Device device = DEVICE_REGISTRY_SERVICE.findByClientId(account.getId(), kuraMissingMessage.getChannel().getClientId());
61:• if (device == null) {
62: throw new KapuaEntityNotFoundException(Device.class.toString(), kuraMissingMessage.getChannel().getClientId());
63: }
64:
65: kapuaMissingMessage.setDeviceId(device.getId());
66: kapuaMissingMessage.setScopeId(account.getId());
67: kapuaMissingMessage.setCapturedOn(kuraMissingMessage.getPayload().getTimestamp());
68: kapuaMissingMessage.setSentOn(kuraMissingMessage.getPayload().getTimestamp());
69: kapuaMissingMessage.setReceivedOn(kuraMissingMessage.getTimestamp());
70: kapuaMissingMessage.setPosition(TranslatorKuraKapuaUtils.translate(kuraMissingMessage.getPayload().getPosition()));
71:
72: return kapuaMissingMessage;
73: } catch (InvalidChannelException | InvalidPayloadException te) {
74: throw te;
75: } catch (Exception e) {
76: throw new InvalidMessageException(e, kuraMissingMessage);
77: }
78: }
79:
80: private KapuaMissingChannel translate(KuraMissingChannel kuraMissingChannel) {
81: KapuaMissingChannel kapuaMissingChannel = new KapuaMissingChannelImpl();
82: kapuaMissingChannel.setClientId(kuraMissingChannel.getClientId());
83: return kapuaMissingChannel;
84: }
85:
86: private KapuaMissingPayload translate(KuraMissingPayload kuraMissingPayload) {
87: KapuaMissingPayload kapuaMissingPayload = new KapuaMissingPayloadImpl();
88: kapuaMissingPayload.setBody(kuraMissingPayload.getBody());
89: kapuaMissingPayload.setMetrics(kuraMissingPayload.getMetrics());
90: return kapuaMissingPayload;
91: }
92:
93: @Override
94: public Class<KuraMissingMessage> getClassFrom() {
95: return KuraMissingMessage.class;
96: }
97:
98: @Override
99: public Class<KapuaMissingMessage> getClassTo() {
100: return KapuaMissingMessage.class;
101: }
102: }