public class TextEncodedStringSizeTerminated extends AbstractString
frameBody, identifier, logger, size, TYPE_ELEMENT, value
Constructor and Description |
---|
TextEncodedStringSizeTerminated(java.lang.String identifier,
AbstractTagFrameBody frameBody)
Creates a new empty TextEncodedStringSizeTerminated datatype.
|
TextEncodedStringSizeTerminated(TextEncodedStringSizeTerminated object)
Copy constructor
|
Modifier and Type | Method and Description |
---|---|
void |
addValue(java.lang.String value)
Add an additional String to the current String value
|
private void |
checkTrailingNull(java.util.List<java.lang.String> values,
java.lang.String stringValue)
Because nulls are stripped we need to check if not removing trailing nulls whether the original
value ended with a null and if so add it back in.
|
boolean |
equals(java.lang.Object obj) |
int |
getNumberOfValues()
How many values are held, each value is separated by a null terminator
|
protected java.lang.String |
getTextEncodingCharSet()
Get the text encoding being used.
|
java.lang.String |
getValueAtIndex(int index)
Get the nth value
|
java.util.List<java.lang.String> |
getValues() |
java.lang.String |
getValueWithoutTrailingNull()
Get value(s) whilst removing any trailing nulls
|
void |
readByteArray(byte[] arr,
int offset)
Read a 'n' bytes from buffer into a String where n is the framesize - offset
so therefore cannot use this if there are other objects after it because it has no
delimiter.
|
static java.util.List<java.lang.String> |
splitByNullSeperator(java.lang.String value)
Split the values separated by null character
|
private void |
stripTrailingNull()
Removing trailing null from end of String, this should be there but some applications continue to write
this unnecessary null char.
|
byte[] |
writeByteArray()
Write String into byte array
It will remove a trailing null terminator if exists if the option
RemoveTrailingTerminatorOnWrite has been set.
|
private java.nio.ByteBuffer |
writeString(java.nio.charset.CharsetEncoder encoder,
java.lang.String next,
int i,
int noOfValues)
Write String using specified encoding
When this is called multiple times, all but the last value has a trailing null
|
private java.nio.ByteBuffer |
writeStringUTF16BEBOM(java.lang.String next,
int i,
int noOfValues)
Write String in UTF-BEBOM format
When this is called multiple times, all but the last value has a trailing null
|
private java.nio.ByteBuffer |
writeStringUTF16LEBOM(java.lang.String next,
int i,
int noOfValues)
Write String in UTF-LEBOM format
When this is called multiple times, all but the last value has a trailing null
Remember we are using this charset because the charset that writes BOM does it the wrong way for us
so we use this none and then manually add the BOM ourselves.
|
canBeEncoded, getSize, setSize, toString
createStructure, getBody, getIdentifier, getValue, readByteArray, setBody, setValue
public TextEncodedStringSizeTerminated(java.lang.String identifier, AbstractTagFrameBody frameBody)
identifier
- identifies the frame typeframeBody
- public TextEncodedStringSizeTerminated(TextEncodedStringSizeTerminated object)
object
- public boolean equals(java.lang.Object obj)
equals
in class AbstractDataType
public void readByteArray(byte[] arr, int offset) throws InvalidDataTypeException
readByteArray
in class AbstractDataType
arr
- this is the buffer for the frameoffset
- this is where to start reading in the buffer for this fieldjava.lang.NullPointerException
java.lang.IndexOutOfBoundsException
InvalidDataTypeException
private java.nio.ByteBuffer writeString(java.nio.charset.CharsetEncoder encoder, java.lang.String next, int i, int noOfValues) throws java.nio.charset.CharacterCodingException
encoder
- next
- i
- noOfValues
- java.nio.charset.CharacterCodingException
private java.nio.ByteBuffer writeStringUTF16LEBOM(java.lang.String next, int i, int noOfValues) throws java.nio.charset.CharacterCodingException
next
- i
- noOfValues
- java.nio.charset.CharacterCodingException
private java.nio.ByteBuffer writeStringUTF16BEBOM(java.lang.String next, int i, int noOfValues) throws java.nio.charset.CharacterCodingException
next
- i
- noOfValues
- java.nio.charset.CharacterCodingException
private void stripTrailingNull()
private void checkTrailingNull(java.util.List<java.lang.String> values, java.lang.String stringValue)
values
- stringValue
- public byte[] writeByteArray()
writeByteArray
in class AbstractDataType
protected java.lang.String getTextEncodingCharSet()
public static java.util.List<java.lang.String> splitByNullSeperator(java.lang.String value)
value
- the raw valuepublic void addValue(java.lang.String value)
value
- public int getNumberOfValues()
public java.lang.String getValueAtIndex(int index)
index
- java.lang.IndexOutOfBoundsException
- if value does not existpublic java.util.List<java.lang.String> getValues()
public java.lang.String getValueWithoutTrailingNull()
Copyright © 2005-2013 java.net. All Rights Reserved.