Skip to content

Package: TranslatorAppBundleKapuaKura

TranslatorAppBundleKapuaKura

nameinstructionbranchcomplexitylinemethod
TranslatorAppBundleKapuaKura()
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%
translateChannel(BundleRequestChannel)
M: 59 C: 0
0%
M: 7 C: 0
0%
M: 5 C: 0
0%
M: 16 C: 0
0%
M: 1 C: 0
0%
translatePayload(BundleRequestPayload)
M: 20 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 6 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.kapua.kura;
15:
16: import org.eclipse.kapua.service.device.call.kura.model.bundle.BundleMetrics;
17: import org.eclipse.kapua.service.device.call.message.kura.app.request.KuraRequestChannel;
18: import org.eclipse.kapua.service.device.call.message.kura.app.request.KuraRequestMessage;
19: import org.eclipse.kapua.service.device.call.message.kura.app.request.KuraRequestPayload;
20: import org.eclipse.kapua.service.device.management.bundle.message.internal.BundleRequestChannel;
21: import org.eclipse.kapua.service.device.management.bundle.message.internal.BundleRequestMessage;
22: import org.eclipse.kapua.service.device.management.bundle.message.internal.BundleRequestPayload;
23: import org.eclipse.kapua.translator.exception.InvalidChannelException;
24: import org.eclipse.kapua.translator.exception.InvalidPayloadException;
25:
26: import java.util.ArrayList;
27: import java.util.List;
28:
29: /**
30: * {@link org.eclipse.kapua.translator.Translator} implementation from {@link BundleRequestMessage} to {@link KuraRequestMessage}
31: *
32: * @since 1.0.0
33: */
34: public class TranslatorAppBundleKapuaKura extends AbstractTranslatorKapuaKura<BundleRequestChannel, BundleRequestPayload, BundleRequestMessage> {
35:
36: @Override
37: protected KuraRequestChannel translateChannel(BundleRequestChannel kapuaChannel) throws InvalidChannelException {
38: try {
39: KuraRequestChannel kuraRequestChannel = TranslatorKapuaKuraUtils.buildBaseRequestChannel(BundleMetrics.APP_ID, BundleMetrics.APP_VERSION, kapuaChannel.getMethod());
40:
41: // Build resources
42: List<String> resources = new ArrayList<>();
43:• switch (kapuaChannel.getMethod()) {
44: case READ:
45: resources.add("bundles");
46: break;
47: case EXECUTE: {
48:• if (kapuaChannel.isStart()) {
49: resources.add("start");
50: } else {
51: resources.add("stop");
52: }
53:
54: String bundleId = kapuaChannel.getBundleId();
55:• if (bundleId != null) {
56: resources.add(bundleId);
57: }
58: }
59: break;
60: case CREATE:
61: case DELETE:
62: case OPTIONS:
63: case WRITE:
64: default:
65: break;
66: }
67: kuraRequestChannel.setResources(resources.toArray(new String[0]));
68:
69: // Return Kura Channel
70: return kuraRequestChannel;
71: } catch (Exception e) {
72: throw new InvalidChannelException(e, kapuaChannel);
73: }
74: }
75:
76: @Override
77: protected KuraRequestPayload translatePayload(BundleRequestPayload kapuaPayload) throws InvalidPayloadException {
78: try {
79: KuraRequestPayload kuraRequestPayload = new KuraRequestPayload();
80:
81:• if (kapuaPayload.hasBody()) {
82: kuraRequestPayload.setBody(kapuaPayload.getBody());
83: }
84:
85: return kuraRequestPayload;
86: } catch (Exception e) {
87: throw new InvalidPayloadException(e, kapuaPayload);
88: }
89: }
90:
91: @Override
92: public Class<BundleRequestMessage> getClassFrom() {
93: return BundleRequestMessage.class;
94: }
95:
96: @Override
97: public Class<KuraRequestMessage> getClassTo() {
98: return KuraRequestMessage.class;
99: }
100:
101: }