StringSegment.java
- package fr.sii.ogham.sms.splitter;
- import java.io.UnsupportedEncodingException;
- import java.nio.charset.Charset;
- /**
- * A segment initialized from a string. The charset used to encode the string to
- * a byte array is also tracked in order to indicate which encoding was used.
- *
- * @author Aurélien Baudet
- *
- */
- public class StringSegment implements Segment {
- private final String message;
- private final String charsetName;
- private final byte[] bytes;
- /**
- * Initializes the segment with a message. The default charset of the
- * platform is used.
- *
- * WARNING: As the default charset for the platform is used, it may lead to
- * inconsistencies.
- *
- * @param message
- * the text for the segment
- */
- public StringSegment(String message) {
- super();
- this.message = message;
- charsetName = Charset.defaultCharset().name();
- bytes = message.getBytes(Charset.defaultCharset());
- }
- /**
- * Initializes the segment with a message. The message string is encoded to
- * a byte array using the provided charset.
- *
- * @param message
- * the text for the segment
- * @param charset
- * the charset to use for encoding the string to a byte array
- */
- public StringSegment(String message, Charset charset) {
- super();
- this.message = message;
- charsetName = charset.name();
- bytes = message.getBytes(charset);
- }
- /**
- * Initializes the segment with a message. The message string is encoded to
- * a byte array using the provided charset name.
- *
- * @param message
- * the text for the segment
- * @param charsetName
- * the charset name to use for encoding the string to a byte
- * array
- * @throws UnsupportedEncodingException
- * when the charset could not be found
- */
- public StringSegment(String message, String charsetName) throws UnsupportedEncodingException {
- super();
- this.message = message;
- this.charsetName = charsetName;
- bytes = message.getBytes(charsetName);
- }
- @Override
- public byte[] getBytes() {
- return bytes;
- }
- /**
- * @return the original message
- */
- public String getMessage() {
- return message;
- }
- /**
- * @return the charset name used to encode the original message string to a
- * byte array
- */
- public String getCharsetName() {
- return charsetName;
- }
- }