Skip to content

Package: TranslatorDataKuraJms

TranslatorDataKuraJms

nameinstructionbranchcomplexitylinemethod
TranslatorDataKuraJms()
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%
translate(KuraDataChannel)
M: 39 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 8 C: 0
0%
M: 1 C: 0
0%
translate(KuraDataMessage)
M: 31 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 7 C: 0
0%
M: 1 C: 0
0%
translate(KuraDataPayload)
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%

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.jms.data;
14:
15: import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataChannel;
16: import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataMessage;
17: import org.eclipse.kapua.service.device.call.message.kura.data.KuraDataPayload;
18: import org.eclipse.kapua.translator.Translator;
19: import org.eclipse.kapua.translator.exception.InvalidChannelException;
20: import org.eclipse.kapua.translator.exception.InvalidMessageException;
21: import org.eclipse.kapua.translator.exception.InvalidPayloadException;
22: import org.eclipse.kapua.translator.exception.TranslateException;
23: import org.eclipse.kapua.transport.message.jms.JmsMessage;
24: import org.eclipse.kapua.transport.message.jms.JmsPayload;
25: import org.eclipse.kapua.transport.message.jms.JmsTopic;
26:
27: import java.util.ArrayList;
28: import java.util.Date;
29: import java.util.List;
30:
31: /**
32: * {@link Translator} implementation from {@link KuraDataMessage} to {@link JmsMessage}
33: *
34: * @since 1.0.0
35: */
36: public class TranslatorDataKuraJms extends Translator<KuraDataMessage, JmsMessage> {
37:
38: @Override
39: public JmsMessage translate(KuraDataMessage kuraDataMessage) throws TranslateException {
40: try {
41: JmsTopic jmsRequestTopic = translate(kuraDataMessage.getChannel());
42: JmsPayload jmsPayload = translate(kuraDataMessage.getPayload());
43: return new JmsMessage(jmsRequestTopic, new Date(), jmsPayload);
44: } catch (InvalidChannelException | InvalidPayloadException te) {
45: throw te;
46: } catch (Exception e) {
47: throw new InvalidMessageException(e, kuraDataMessage);
48: }
49: }
50:
51: /**
52: * Translates the given {@link KuraDataChannel} to the {@link JmsTopic} equivalent.
53: *
54: * @param kuraDataChannel The {@link KuraDataChannel} to translate.
55: * @return The translated {@link JmsTopic}
56: * @throws InvalidChannelException if translation encounters any error.
57: * @since 1.0.0
58: */
59: public JmsTopic translate(KuraDataChannel kuraDataChannel) throws InvalidChannelException {
60: try {
61: List<String> topicTokens = new ArrayList<>();
62: topicTokens.add(kuraDataChannel.getScope());
63: topicTokens.add(kuraDataChannel.getClientId());
64:• if (!kuraDataChannel.getSemanticParts().isEmpty()) {
65: topicTokens.addAll(kuraDataChannel.getSemanticParts());
66: }
67:
68: return new JmsTopic(topicTokens.toArray(new String[0]));
69: } catch (Exception e) {
70: throw new InvalidChannelException(e, kuraDataChannel);
71: }
72: }
73:
74: /**
75: * Translates the given {@link KuraDataPayload} to the {@link JmsPayload} equivalent.
76: *
77: * @param kuraDataPayload The {@link KuraDataChannel} to translate.
78: * @return The translated {@link JmsPayload}
79: * @throws InvalidPayloadException if translation encounters any error.
80: * @since 1.0.0
81: */
82: public JmsPayload translate(KuraDataPayload kuraDataPayload) throws InvalidPayloadException {
83: try {
84: return new JmsPayload(kuraDataPayload.toByteArray());
85: } catch (Exception e) {
86: throw new InvalidPayloadException(e, kuraDataPayload);
87: }
88: }
89:
90: @Override
91: public Class<KuraDataMessage> getClassFrom() {
92: return KuraDataMessage.class;
93: }
94:
95: @Override
96: public Class<JmsMessage> getClassTo() {
97: return JmsMessage.class;
98: }
99: }