Skip to content

Package: TranslatorAppSnapshotKuraKapua

TranslatorAppSnapshotKuraKapua

nameinstructionbranchcomplexitylinemethod
TranslatorAppSnapshotKuraKapua()
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
static {...}
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%
translate(KuraSnapshotIds)
M: 40 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 10 C: 0
0%
M: 1 C: 0
0%
translateChannel(KuraResponseChannel)
M: 15 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
translatePayload(KuraResponsePayload)
M: 32 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 9 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: * Red Hat Inc
13: *******************************************************************************/
14: package org.eclipse.kapua.translator.kura.kapua;
15:
16: import org.eclipse.kapua.locator.KapuaLocator;
17: import org.eclipse.kapua.service.device.call.kura.model.snapshot.KuraSnapshotIds;
18: import org.eclipse.kapua.service.device.call.kura.model.snapshot.SnapshotMetrics;
19: import org.eclipse.kapua.service.device.call.message.kura.app.response.KuraResponseChannel;
20: import org.eclipse.kapua.service.device.call.message.kura.app.response.KuraResponseMessage;
21: import org.eclipse.kapua.service.device.call.message.kura.app.response.KuraResponsePayload;
22: import org.eclipse.kapua.service.device.management.snapshot.DeviceSnapshot;
23: import org.eclipse.kapua.service.device.management.snapshot.DeviceSnapshotFactory;
24: import org.eclipse.kapua.service.device.management.snapshot.DeviceSnapshots;
25: import org.eclipse.kapua.service.device.management.snapshot.message.internal.SnapshotResponseChannel;
26: import org.eclipse.kapua.service.device.management.snapshot.message.internal.SnapshotResponseMessage;
27: import org.eclipse.kapua.service.device.management.snapshot.message.internal.SnapshotResponsePayload;
28: import org.eclipse.kapua.translator.Translator;
29: import org.eclipse.kapua.translator.exception.InvalidChannelException;
30: import org.eclipse.kapua.translator.exception.InvalidPayloadException;
31:
32: import java.util.List;
33:
34: /**
35: * {@link Translator} implementation from {@link KuraResponseMessage} to {@link SnapshotResponseMessage}
36: *
37: * @since 1.0.0
38: */
39: public class TranslatorAppSnapshotKuraKapua extends AbstractSimpleTranslatorResponseKuraKapua<SnapshotResponseChannel, SnapshotResponsePayload, SnapshotResponseMessage> {
40:
41: private static final KapuaLocator LOCATOR = KapuaLocator.getInstance();
42:
43: public TranslatorAppSnapshotKuraKapua() {
44: super(SnapshotResponseMessage.class, SnapshotResponsePayload.class);
45: }
46:
47: @Override
48: protected SnapshotResponseChannel translateChannel(KuraResponseChannel kuraResponseChannel) throws InvalidChannelException {
49: try {
50: TranslatorKuraKapuaUtils.validateKuraResponseChannel(kuraResponseChannel, SnapshotMetrics.APP_ID, SnapshotMetrics.APP_VERSION);
51:
52: return new SnapshotResponseChannel();
53: } catch (Exception e) {
54: throw new InvalidChannelException(e, kuraResponseChannel);
55: }
56: }
57:
58: @Override
59: protected SnapshotResponsePayload translatePayload(KuraResponsePayload kuraResponsePayload) throws InvalidPayloadException {
60: SnapshotResponsePayload snapshotResponsePayload = super.translatePayload(kuraResponsePayload);
61:
62: try {
63:
64:• if (kuraResponsePayload.hasBody()) {
65: KuraSnapshotIds kuraSnapshotIds = readXmlBodyAs(kuraResponsePayload.getBody(), KuraSnapshotIds.class);
66: snapshotResponsePayload.setDeviceSnapshots(translate(kuraSnapshotIds));
67: }
68:
69: return snapshotResponsePayload;
70: } catch (InvalidPayloadException ipe) {
71: throw ipe;
72: } catch (Exception e) {
73: throw new InvalidPayloadException(e, kuraResponsePayload);
74: }
75: }
76:
77: /**
78: * Translates {@link KuraSnapshotIds} in {@link DeviceSnapshots}
79: *
80: * @param kuraSnapshotIdResult The {@link KuraSnapshotIds} to translate.
81: * @return The translated {@link DeviceSnapshots}
82: * @since 1.0.0
83: */
84: private DeviceSnapshots translate(KuraSnapshotIds kuraSnapshotIdResult) {
85: DeviceSnapshotFactory deviceSnapshotFactory = LOCATOR.getFactory(DeviceSnapshotFactory.class);
86: DeviceSnapshots deviceSnapshots = deviceSnapshotFactory.newDeviceSnapshots();
87:
88: List<Long> snapshotIds = kuraSnapshotIdResult.getSnapshotIds();
89:• for (Long snapshotId : snapshotIds) {
90: DeviceSnapshot snapshot = deviceSnapshotFactory.newDeviceSnapshot();
91: snapshot.setId(Long.toString(snapshotId));
92: snapshot.setTimestamp(snapshotId);
93:
94: deviceSnapshots.getSnapshots().add(snapshot);
95: }
96:
97: return deviceSnapshots;
98: }
99: }