TlvMessagePayloadMessagePreparator.java

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
Location : fill
Killed by : oghamcloudhopper.it.TlvMessagePayloadTest.simple(oghamcloudhopper.it.TlvMessagePayloadTest)
removed call to com/cloudhopper/smpp/pdu/SubmitSm::addOptionalParameter → KILLED

2.2
Location : fill
Killed by : none
removed call to com/cloudhopper/smpp/pdu/SubmitSm::addOptionalParameter → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT OGHAM