SmsGlobalDataCodingProvider.java

1
package fr.sii.ogham.sms.builder.smsglobal;
2
3
import static com.cloudhopper.commons.charset.CharsetUtil.NAME_GSM;
4
import static com.cloudhopper.commons.charset.CharsetUtil.NAME_UCS_2;
5
import static com.cloudhopper.commons.gsm.DataCoding.CHAR_ENC_DEFAULT;
6
import static com.cloudhopper.commons.gsm.DataCoding.CHAR_ENC_UCS2;
7
import static com.cloudhopper.commons.gsm.DataCoding.createCharacterEncodingGroup;
8
9
import com.cloudhopper.commons.charset.CharsetUtil;
10
import com.cloudhopper.commons.gsm.DataCoding;
11
12
import fr.sii.ogham.sms.encoder.Encoded;
13
import fr.sii.ogham.sms.sender.impl.cloudhopper.exception.DataCodingException;
14
import fr.sii.ogham.sms.sender.impl.cloudhopper.exception.UnsupportedCharsetException;
15
import fr.sii.ogham.sms.sender.impl.cloudhopper.preparator.DataCodingProvider;
16
17
/**
18
 * SMSGlobal only supports either GSM 8-bit or UCS-2 encodings.
19
 * 
20
 * <p>
21
 * If GSM 8-bit encoding is used, DCS value is set to 0
22
 * </p>
23
 * 
24
 * <p>
25
 * If UCS-2 encoding is used, DCS value is set to 8
26
 * </p>
27
 * 
28
 * 
29
 * @author Aurélien Baudet
30
 *
31
 */
32
public class SmsGlobalDataCodingProvider implements DataCodingProvider {
33
34
	@Override
35
	public DataCoding provide(Encoded encoded) throws DataCodingException {
36
		String charsetName = encoded.getCharsetName();
37 1 1. provide : negated conditional → NO_COVERAGE
		if (NAME_UCS_2.equals(charsetName)) {
38 1 1. provide : replaced return value with null for fr/sii/ogham/sms/builder/smsglobal/SmsGlobalDataCodingProvider::provide → NO_COVERAGE
			return createCharacterEncodingGroup(CHAR_ENC_UCS2);
39
		}
40 2 1. provide : negated conditional → NO_COVERAGE
2. provide : negated conditional → NO_COVERAGE
		if (NAME_GSM.equals(charsetName) || CharsetUtil.NAME_GSM8.equals(charsetName)) {
41 1 1. provide : replaced return value with null for fr/sii/ogham/sms/builder/smsglobal/SmsGlobalDataCodingProvider::provide → NO_COVERAGE
			return createCharacterEncodingGroup(CHAR_ENC_DEFAULT);
42
		}
43
		throw new UnsupportedCharsetException(charsetName + " not supported by SmsGlobal (it will result in invalid characters). " + 
44
											"Please use one of CharsetUtil.NAME_GSM, CharsetUtil.NAME_GSM_8 or CharsetUtil.NAME_UCS_2",
45
											encoded);
46
	}
47
48
}

Mutations

37

1.1
Location : provide
Killed by :
negated conditional → NO_COVERAGE

38

1.1
Location : provide
Killed by :
replaced return value with null for fr/sii/ogham/sms/builder/smsglobal/SmsGlobalDataCodingProvider::provide → NO_COVERAGE

40

1.1
Location : provide
Killed by :
negated conditional → NO_COVERAGE

2.2
Location : provide
Killed by :
negated conditional → NO_COVERAGE

41

1.1
Location : provide
Killed by :
replaced return value with null for fr/sii/ogham/sms/builder/smsglobal/SmsGlobalDataCodingProvider::provide → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.13.1