ByteBuffer - Reference Documentation
Implementation of a mutuable byte buffer.
Index of Methods
Properties
Type | Name | Description |
---|---|---|
Number | length | Number of bytes in the ByteBuffer |
Constructor
Prototype
ByteBuffer()
ByteBuffer(String stringValue, Number encoding)
ByteBuffer(ByteString byteString)
Description
Create a empty ByteBuffer object or a ByteBuffer object containing the data from stringValue decoded according to format defined in argument encoding or a ByteBuffer object containing the ByteString object passed as argument
The following encoding formats can be used for the stringValue argument:
HEX - A string containing hexadecimal characters and arbitrary delimiters.
ASCII - A string containing ASCII characters and characters from Latin-1.
UTF8 - A string containing Unicode characters.
BASE64 - A string containing BASE-64 encoded data.
OID - A string containing an object identifier in dotted notation or separated by blanks (This is a proprietary extension to Global Platform Scripting).
Arguments
Type | Name | Description |
---|---|---|
String
|
stringValue | String containing the encoded binary data |
Number
|
encoding | Encoding format. Must be one of HEX, ASCII, UTF8, BASE64 or OID |
ByteString
|
byteString | ByteString object with data |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.INVALID_ENCODING | The argument encoding contains an unknown encoding format |
GPError | GPError.INVALID_DATA | The argument stringValue contains characters not compatible with the encoding format |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments given |
Example
x = new ByteBuffer(); assert(x != null); assert(x instanceof ByteBuffer); x = new ByteBuffer("1234", HEX); assert(x.length == 2); assert(x.toString() == "12 34"); x = new ByteBuffer("0x1234 56.78.90+AB#cd'EF", HEX); assert(x.length == 8); assert(x.toString() == "12 34 56 78 90 AB CD EF"); x = new ByteBuffer("1234ABCDÄÖÜß", ASCII); assert(x.length == 12); assert(x.toString() == "31 32 33 34 41 42 43 44 C4 D6 DC DF"); x = new ByteBuffer("1234ABCDÄÖÜß", UTF8); assert(x.length == 16); assert(x.toString() == "31 32 33 34 41 42 43 44 C3 84 C3 96 C3 9C C3 9F"); x = new ByteBuffer("SGVsbG8gV29ybGQ=", BASE64); assert(x.length == 11); assert(x.toString(ASCII) == "Hello World"); x = new ByteBuffer(new ByteString("1234", HEX)); assert(x.length == 2); assert(x.toString() == "12 34"); x = new ByteBuffer("1.2.840.113549.1.1.2", OID); assert(x.length == 9); assert(x.toString(OID) == "1.2.840.113549.1.1.2"); assert(x.toString(HEX) == "2A864886F70D010102"); x = new ByteBuffer("1 2 840 113549 1 1 2", OID); assert(x.toString(HEX) == "2A864886F70D010102");
toString()
Prototype
String toString(Number encoding)
Description
Return string containing binary data in given encodingArguments
Type | Name | Description |
---|---|---|
Number
|
encoding | Encoding to present the binary data in. Must be one of ASCII, HEX, UTF8, BASE64 or CN. |
Return
String
|
String representing data from ByteBuffer |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
Example
x = new ByteBuffer("41 42 43", HEX); assert(x.toString(HEX) == "414243"); x = new ByteBuffer("41 42 43 C4 D6 DC DF", HEX); assert(x.toString(ASCII) == "ABCÄÖÜß"); x = new ByteBuffer("C3 84 C3 96 C3 9C C3 9F", HEX); assert(x.toString(UTF8) == "ÄÖÜß"); x = new ByteBuffer("Hello World", ASCII); assert(x.toString(BASE64) == "SGVsbG8gV29ybGQ=");
append()
Prototype
ByteBuffer append(ByteBuffer byteBuffer)
ByteBuffer append(ByteString byteString)
ByteBuffer append(Number byteValue)
ByteBuffer append(String stringValue)
Description
Append to the ByteBuffer at the end the content of the ByteBuffer or ByteString object, the ASCII encoded string or the byte given as argument.Arguments
Type | Name | Description |
---|---|---|
ByteBuffer
|
byteBuffer | ByteBuffer object to be appended to ByteBuffer |
ByteString
|
byteString | ByteString object to be appended to ByteBuffer |
String
|
stringValue | String containing ASCII characters to be appended to ByteBuffer |
Number
|
byteValue | Single byte value |
Return
ByteBuffer
|
Returns the ByteBuffer object this method is applied to |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
Example
x = new ByteBuffer(); x.append(new ByteBuffer("ABC", ASCII)); assert(x.toString() == "41 42 43"); x.append("123"); assert(x.toString() == "41 42 43 31 32 33"); x.append(new ByteString("ABC", ASCII)); assert(x.toString() == "41 42 43 31 32 33 41 42 43"); str = 0x20; x.append(str); assert(x.toString() == "41 42 43 31 32 33 41 42 43 20");
byteAt()
Prototype
Number byteAt(Number offset)
Description
Return the byte at the zero based offset in the ByteBufferArguments
Type | Name | Description |
---|---|---|
Number
|
offset | Zero based offset |
Return
Number
|
Value of byte as unsigned integer |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.INVALID_INDEX | Argument offset is out of range |
Example
x = new ByteBuffer("123ABCÄÖÜ", ASCII); assert(typeof(x.byteAt(0) == "number")); assert(x.byteAt(0) == 0x31); assert(x.byteAt(3) == 0x41); assert(x.byteAt(6) == 0xC4);
clear()
Prototype
ByteBuffer clear()
ByteBuffer clear(Number offset)
ByteBuffer clear(Number offset, Number length)
Description
Clears the area specified by offset and length in the ByteBuffer. Bytes behind the cleared area are moved to offset. If length is missing, then the remaining length from offset to the end of the ByteBuffer is cleared. If offset and length are missing from the argument list, then the whole ByteBuffer is cleared.Arguments
Type | Name | Description |
---|---|---|
Number
|
offset | The zero based offset in the ByteBuffer where the clear operation is started. Zero is assumed if offset is missing. |
Number
|
length | The length of the area to be cleared. If length is missing, then the maximum number of bytes up to the end of the ByteBuffer is assumed. |
Return
ByteBuffer
|
The ByteBuffer object the method is applied to |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.INVALID_INDEX | Argument offset is out of range |
GPError | GPError.INVALID_LENGTH | Argument length is out of range |
Example
x = new ByteBuffer("123456", ASCII); x.clear(2, 2); assert(x.toString(ASCII) == "1256"); x.clear(2); assert(x.toString(ASCII) == "12"); x.clear(); assert(x.length == 0);
copy()
Prototype
ByteBuffer copy(Number offset, ByteBuffer byteBuffer)
ByteBuffer copy(Number offset, ByteString byteString)
ByteBuffer copy(Number offset, Number byteValue)
ByteBuffer copy(Number offset, String stringValue)
Description
Copy the bytes from the argument into the ByteBuffer at offset and replace the bytes contained. The length of the ByteBuffer is not changed.Arguments
Type | Name | Description |
---|---|---|
Number
|
offset | Zero based offset at which the bytes from the argument are copied to |
ByteBuffer
|
byteBuffer | |
ByteString
|
byteString | |
Number
|
byteValue | Value of a single unsigned byte |
Number
|
stringValue | ASCII encoded string |
Return
ByteBuffer
|
The ByteBuffer object this method is applied to |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.INVALID_INDEX | The argument offset is out of range |
GPError | GPError.INVALID_LENGTH | The offset plus the length of the argument exceeds the end of the ByteBuffer |
Example
x = new ByteBuffer("123456", ASCII); x.copy(0, "AB"); assert(x.toString(ASCII) == "AB3456"); y = new ByteBuffer("CD", ASCII); x.copy(2, y); assert(x.toString(ASCII) == "ABCD56"); y = new ByteString("EF", ASCII); x.copy(4, y); assert(x.toString(ASCII) == "ABCDEF");
find()
Prototype
Number find(ByteString value)
Number find(ByteString value, Number offset)
Description
Find the first occurence of the value starting at offset.Arguments
Type | Name | Description |
---|---|---|
ByteString
|
value | ByteString to locate in ByteBuffer |
Number
|
offset | Zero based offset to start search at. Zero is assumed if argument is missing. |
Return
Number
|
Zero based offset at which the ByteString is found or -1 if the ByteString is not found. |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_INDEX | Argument offset is out of range |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
Example
x = new ByteBuffer("ABCDABCD", ASCII); y = new ByteString("BC", ASCII); assert(x.find(y) == 1); assert(x.find(y, 2) == 5); assert(x.find(y, -2) == 1); y = new ByteString("CD", ASCII); assert(x.find(y, 4) == 6); y = new ByteString("CD", ASCII); assert(x.find(y, 6) == 6); y = new ByteString("CB", ASCII); assert(x.find(y) == -1); y = new ByteString("BCDE", ASCII); assert(x.find(y) == -1); y = new ByteString("", ASCII); assert(x.find(y) == 0); x = new ByteBuffer("", ASCII); y = new ByteString("", ASCII); assert(x.find(y) == 0); assert(x.find(y, 0) == 0);
insert()
Prototype
ByteBuffer insert(Number offset, ByteBuffer byteBuffer)
ByteBuffer insert(Number offset, ByteString byteString)
ByteBuffer insert(Number offset, Number byteValue)
ByteBuffer insert(Number offset, String stringValue)
Description
Insert the bytes from the argument at offset.Arguments
Type | Name | Description |
---|---|---|
Number
|
offset | Zero based offset at which the bytes are inserted |
ByteBuffer
|
byteBuffer | ByteBuffer object to be appended to ByteBuffer |
ByteString
|
byteString | ByteString object to be appended to ByteBuffer |
String
|
stringValue | String containing ASCII characters to be appended to ByteBuffer |
Number
|
byteValue | Single byte value |
Return
ByteBuffer
|
Returns the ByteBuffer object this method is applied to |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.INVALID_INDEX | The argument offset is out of range |
Example
x = new ByteBuffer("123456", ASCII); x.insert(0, "AB"); assert(x.toString(ASCII) == "AB123456"); y = new ByteBuffer("CD", ASCII); x.insert(2, y); assert(x.toString(ASCII) == "ABCD123456"); y = new ByteString("EF", ASCII); x.insert(10, y); assert(x.toString(ASCII) == "ABCD123456EF"); x.insert(1, 0x31); assert(x.toString(ASCII) == "A1BCD123456EF");
toByteString()
Prototype
ByteString toByteString()
ByteString toByteString(Number offset)
ByteString toByteString(Number offset, Number count)
Description
Return all or a fraction of the ByteBuffer as ByteString.Arguments
Type | Name | Description |
---|---|---|
Number
|
offset | Zero based offset in ByteBuffer. Default is 0. |
Number
|
count | Number of bytes to return. Default is all. |
Return
ByteString
|
Bytes as ByteString object |
Exceptions
Name | Value | Description |
---|---|---|
GPError | GPError.ARGUMENTS_MISSING | Too few arguments in call |
GPError | GPError.INVALID_ARGUMENTS | Too many arguments in call |
GPError | GPError.INVALID_TYPE | Type of argument is invalid for call |
GPError | GPError.INVALID_INDEX | The argument offset is out of range |
GPError | GPError.INVALID_LENGTH | The argument count is out of range |
Example
x = new ByteBuffer("123456", ASCII); y = x.toByteString(); assert(y.toString(ASCII) == "123456"); y = x.toByteString(3); assert(y.toString(ASCII) == "456"); y = x.toByteString(2, 2); assert(y.toString(ASCII) == "34"); y = x.toByteString(6, 0); assert(y.toString(ASCII) == "");
© Copyright 2003 - 2024 CardContact Systems GmbH , Minden, Germany