1 | package fr.sii.ogham.sms.sender.impl.cloudhopper.preparator; | |
2 | ||
3 | import static com.cloudhopper.smpp.SmppConstants.TAG_MESSAGE_PAYLOAD; | |
4 | ||
5 | import com.cloudhopper.smpp.pdu.SubmitSm; | |
6 | import com.cloudhopper.smpp.tlv.Tlv; | |
7 | ||
8 | import fr.sii.ogham.sms.message.PhoneNumber; | |
9 | import fr.sii.ogham.sms.message.Sms; | |
10 | import fr.sii.ogham.sms.message.addressing.AddressedPhoneNumber; | |
11 | import fr.sii.ogham.sms.message.addressing.translator.PhoneNumberTranslator; | |
12 | import fr.sii.ogham.sms.sender.impl.cloudhopper.exception.MessagePreparationException; | |
13 | import fr.sii.ogham.sms.splitter.MessageSplitter; | |
14 | import fr.sii.ogham.sms.splitter.Segment; | |
15 | ||
16 | /** | |
17 | * This preparator creates {@link SubmitSm}s and places the message into the | |
18 | * {@link Tlv} {@code "message_payload"} parameter. | |
19 | * | |
20 | * <p> | |
21 | * This preparator detects which charset should be used to encode message string | |
22 | * and splits it if needed. It also converts {@link PhoneNumber} to | |
23 | * {@link AddressedPhoneNumber}. | |
24 | * | |
25 | * @author Aurélien Baudet | |
26 | * | |
27 | */ | |
28 | public class TlvMessagePayloadMessagePreparator extends BaseMessagePreparator { | |
29 | ||
30 | /** | |
31 | * The preparator can split messages and provide data coding information. | |
32 | * | |
33 | * <p> | |
34 | * The phone number won't be translated meaning that if phone number is not | |
35 | * already converted to {@link AddressedPhoneNumber} then an | |
36 | * {@link IllegalStateException} is thrown. | |
37 | * | |
38 | * @param messageSplitter | |
39 | * Split message in several parts if needed | |
40 | * @param dataCodingProvider | |
41 | * Determines the data coding to use according to encoding | |
42 | */ | |
43 | public TlvMessagePayloadMessagePreparator(MessageSplitter messageSplitter, DataCodingProvider dataCodingProvider) { | |
44 | super(messageSplitter, dataCodingProvider); | |
45 | } | |
46 | ||
47 | /** | |
48 | * Initializes the preparator with message splitter, data coding provider | |
49 | * and phone number translator. | |
50 | * | |
51 | * @param messageSplitter | |
52 | * Split message in several parts if needed | |
53 | * @param dataCodingProvider | |
54 | * Determines the data coding to use according to encoding | |
55 | * @param phoneNumberTranslator | |
56 | * Fallback phone translator to handle addressing policy | |
57 | */ | |
58 | public TlvMessagePayloadMessagePreparator(MessageSplitter messageSplitter, DataCodingProvider dataCodingProvider, PhoneNumberTranslator phoneNumberTranslator) { | |
59 | super(messageSplitter, dataCodingProvider, phoneNumberTranslator); | |
60 | } | |
61 | ||
62 | @Override | |
63 | protected void fill(Sms originalMessage, SubmitSm submit, Segment part) throws MessagePreparationException { | |
64 |
2
1. fill : removed call to com/cloudhopper/smpp/pdu/SubmitSm::addOptionalParameter → NO_COVERAGE 2. fill : removed call to com/cloudhopper/smpp/pdu/SubmitSm::addOptionalParameter → KILLED |
submit.addOptionalParameter(new Tlv(TAG_MESSAGE_PAYLOAD, part.getBytes(), "message_payload")); |
65 | } | |
66 | ||
67 | } | |
Mutations | ||
64 |
1.1 2.2 |