public interface DatatypeCoder
Modifier and Type | Interface and Description |
---|---|
static class |
DatatypeCoder.RawDateTimeStruct
Raw date/time value.
|
Modifier and Type | Field and Description |
---|---|
static int |
FRACTIONS_PER_HOUR |
static int |
FRACTIONS_PER_MILLISECOND |
static int |
FRACTIONS_PER_MINUTE |
static int |
FRACTIONS_PER_SECOND |
static int |
NANOSECONDS_PER_FRACTION |
Modifier and Type | Method and Description |
---|---|
java.io.Reader |
createReader(java.io.InputStream inputStream)
Creates a reader wrapping an input stream.
|
java.io.Writer |
createWriter(java.io.OutputStream outputStream)
Creates a writer wrapping an input stream.
|
boolean |
decodeBoolean(byte[] data)
Decode boolean from supplied data.
|
java.sql.Date |
decodeDate(byte[] byte_int)
Decode a
byte array into a Date value. |
java.sql.Date |
decodeDate(java.sql.Date d,
java.util.Calendar cal)
Decode a
Date value using a given Calendar . |
java.sql.Date |
decodeDateCalendar(byte[] byte_int,
java.util.Calendar c) |
DatatypeCoder.RawDateTimeStruct |
decodeDateRaw(byte[] byte_int)
Decode a
byte array into a raw date time struct. |
Decimal128 |
decodeDecimal128(byte[] data)
Decodes a decimal128 from byte array.
|
Decimal64 |
decodeDecimal64(byte[] data)
Decodes a decimal64 from byte array.
|
double |
decodeDouble(byte[] byte_int)
Decode a
byte array into a double value. |
float |
decodeFloat(byte[] byte_int)
Decode a
byte array into a float value. |
int |
decodeInt(byte[] byte_int)
Decode a
byte array into an int value. |
int |
decodeInt(byte[] bytes,
int fromIndex)
Decode a
byte array to an int value. |
java.math.BigInteger |
decodeInt128(byte[] data)
Decodes a BigInteger from byte array.
|
long |
decodeLong(byte[] byte_int)
Decode a
byte array into a long value. |
short |
decodeShort(byte[] byte_int)
Decode a
byte array into a short value. |
short |
decodeShort(byte[] bytes,
int fromIndex)
Decode from a
byte array to a short value. |
java.lang.String |
decodeString(byte[] value)
Decode an encoded
byte array into a String using the encoding of this datatype coder. |
java.sql.Time |
decodeTime(byte[] int_byte)
Decode a
byte array into a Time value. |
java.sql.Time |
decodeTime(java.sql.Time d,
java.util.Calendar cal,
boolean invertTimeZone)
Decode a
Time value using a given Calendar . |
java.sql.Time |
decodeTimeCalendar(byte[] int_byte,
java.util.Calendar c) |
DatatypeCoder.RawDateTimeStruct |
decodeTimeRaw(byte[] int_byte)
Decode a
byte array into a raw date time struct. |
java.sql.Timestamp |
decodeTimestamp(byte[] byte_long)
Decode a 8-byte
byte array into a Timestamp . |
java.sql.Timestamp |
decodeTimestamp(java.sql.Timestamp value,
java.util.Calendar cal)
Decode a
Timestamp value using a given Calendar . |
java.sql.Timestamp |
decodeTimestamp(java.sql.Timestamp value,
java.util.Calendar cal,
boolean invertTimeZone)
Decode a
Timestamp value using a given Calendar . |
java.sql.Timestamp |
decodeTimestampCalendar(byte[] byte_long,
java.util.Calendar c) |
DatatypeCoder.RawDateTimeStruct |
decodeTimestampRaw(byte[] byte_long)
Decode a 8-byte
byte array into a raw date time struct. |
byte[] |
encodeBoolean(boolean value)
Encodes boolean to 1 byte data.
|
byte[] |
encodeDate(java.sql.Date d)
Encode a
Date value into a byte array. |
java.sql.Date |
encodeDate(java.sql.Date d,
java.util.Calendar cal)
Encode a given
Date value using a given Calendar . |
byte[] |
encodeDateCalendar(java.sql.Date d,
java.util.Calendar c) |
byte[] |
encodeDateRaw(DatatypeCoder.RawDateTimeStruct raw)
Encode the date portion of a raw date time struct into a
byte array. |
byte[] |
encodeDecimal128(Decimal128 decimal128)
Encodes a decimal128 to a byte array.
|
byte[] |
encodeDecimal64(Decimal64 decimal64)
Encodes a decimal64 to a byte array.
|
byte[] |
encodeDouble(double value)
Encode a
double value as a byte array. |
byte[] |
encodeFloat(float value)
Encode a
float value as a byte array. |
byte[] |
encodeInt(int value)
Encode an
int value as a byte array. |
void |
encodeInt(int value,
byte[] target,
int fromIndex)
Encode an
int value into the target byte array starting at index fromIndex . |
byte[] |
encodeInt128(java.math.BigInteger bigInteger)
Encodes a BigInteger to a 16-byte byte array.
|
byte[] |
encodeLocalDate(int year,
int month,
int day)
Encodes a java.time.LocalDate equivalent to date bytes.
|
byte[] |
encodeLocalDateTime(int year,
int month,
int day,
int hour,
int minute,
int second,
int nanos)
Encodes a java.time.LocalDateTime equivalent to timestamp bytes.
|
byte[] |
encodeLocalTime(int hour,
int minute,
int second,
int nanos)
Encodes a java.time.LocalTime equivalent to time bytes.
|
byte[] |
encodeLong(long value)
Encode a
long value as a byte array. |
byte[] |
encodeShort(int value)
Encode a
short value as a byte array. |
void |
encodeShort(int value,
byte[] target,
int fromIndex)
Encode a
short value into the target byte array starting at index fromIndex . |
byte[] |
encodeShort(short value)
Encode a
short value as a byte array. |
byte[] |
encodeString(java.lang.String value)
Encode a
String value into a byte array using the encoding of this datatype coder. |
byte[] |
encodeTime(java.sql.Time d)
Encode a
Time value into a byte array. |
java.sql.Time |
encodeTime(java.sql.Time d,
java.util.Calendar cal,
boolean invertTimeZone)
Encode a given
Time value using a given Calendar . |
byte[] |
encodeTimeCalendar(java.sql.Time d,
java.util.Calendar c) |
byte[] |
encodeTimeRaw(DatatypeCoder.RawDateTimeStruct raw)
Encode the time portion of a raw date time struct into a
byte array. |
byte[] |
encodeTimestamp(java.sql.Timestamp value)
Encode a
Timestamp as a byte array. |
java.sql.Timestamp |
encodeTimestamp(java.sql.Timestamp value,
java.util.Calendar cal)
Encode a
Timestamp using a given Calendar . |
java.sql.Timestamp |
encodeTimestamp(java.sql.Timestamp value,
java.util.Calendar cal,
boolean invertTimeZone)
Encode a
Timestamp using a given Calendar . |
byte[] |
encodeTimestampCalendar(java.sql.Timestamp value,
java.util.Calendar c) |
byte[] |
encodeTimestampRaw(DatatypeCoder.RawDateTimeStruct raw)
Encode the date and time portions of a raw date time struct into a
byte array. |
boolean |
equals(java.lang.Object other) |
DatatypeCoder |
forEncodingDefinition(EncodingDefinition encodingDefinition)
Return a derived datatype coder that applies the supplied encoding definition for string conversions.
|
Encoding |
getEncoding() |
EncodingDefinition |
getEncodingDefinition() |
IEncodingFactory |
getEncodingFactory() |
int |
hashCode() |
int |
sizeOfShort()
The size of an encoded short in this data type coder.
|
DatatypeCoder |
unwrap()
Unwrap this datatype coder to its parent (or itself).
|
static final int NANOSECONDS_PER_FRACTION
static final int FRACTIONS_PER_MILLISECOND
static final int FRACTIONS_PER_SECOND
static final int FRACTIONS_PER_MINUTE
static final int FRACTIONS_PER_HOUR
int sizeOfShort()
2
or 4
bytes)byte[] encodeShort(short value)
short
value as a byte
array.value
- The value to be encodedvalue
encoded as a byte
arrayencodeShort(int)
byte[] encodeShort(int value)
short
value as a byte
array.value
- The value to be encodedvalue
encoded as a byte
arrayvoid encodeShort(int value, byte[] target, int fromIndex)
short
value into the target
byte array starting at index fromIndex
.value
- The value to be encodedtarget
- Target byte array of sufficient size (warning: this may be datatype coder specific)fromIndex
- Index to start writingshort decodeShort(byte[] byte_int)
byte
array into a short
value.byte_int
- The byte
array to be decodedshort
value of the decoded byte
arrayshort decodeShort(byte[] bytes, int fromIndex)
byte
array to a short
value.bytes
- The byte
array to be decodedfromIndex
- The index to start readingshort
value of the decoded byte
arraybyte[] encodeInt(int value)
int
value as a byte
array.value
- The value to be encodedvalue
encoded as a byte
arrayvoid encodeInt(int value, byte[] target, int fromIndex)
int
value into the target
byte array starting at index fromIndex
.value
- The value to be encodedtarget
- Target byte array of sufficient sizefromIndex
- Index to start writingint decodeInt(byte[] byte_int)
byte
array into an int
value.byte_int
- The byte
array to be decodedint
value of the decoded byte
arrayint decodeInt(byte[] bytes, int fromIndex)
byte
array to an int
value.bytes
- The byte
array to be decodedfromIndex
- The index to start readingint
value of the decoded byte
arraybyte[] encodeLong(long value)
long
value as a byte
array.value
- The value to be encodedvalue
encoded as a byte
arraylong decodeLong(byte[] byte_int)
byte
array into a long
value.byte_int
- The byte
array to be decodedlong
value of the decoded byte
arraybyte[] encodeFloat(float value)
float
value as a byte
array.value
- The value to be encodedvalue
encoded as a byte
arrayfloat decodeFloat(byte[] byte_int)
byte
array into a float
value.byte_int
- The byte
array to be decodedfloat
value of the decoded byte
arraybyte[] encodeDouble(double value)
double
value as a byte
array.value
- The value to be encodedvalue
encoded as a byte
arraydouble decodeDouble(byte[] byte_int)
byte
array into a double
value.byte_int
- The byte
array to be decodeddouble
value of the decoded byte
arraybyte[] encodeString(java.lang.String value)
String
value into a byte
array using the encoding of this datatype coder.value
- The String
to be encodedvalue
as a byte
arrayjava.io.Writer createWriter(java.io.OutputStream outputStream)
outputStream
- Input streamjava.lang.String decodeString(byte[] value)
byte
array into a String
using the encoding of this datatype coder.value
- The value to be decodedString
java.io.Reader createReader(java.io.InputStream inputStream)
inputStream
- Input streamjava.sql.Timestamp encodeTimestamp(java.sql.Timestamp value, java.util.Calendar cal)
Timestamp
using a given Calendar
.value
- The Timestamp
to be encodedcal
- The Calendar
to be used for encoding, may be null
java.sql.Timestamp encodeTimestamp(java.sql.Timestamp value, java.util.Calendar cal, boolean invertTimeZone)
Timestamp
using a given Calendar
.value
- The Timestamp
to be encodedcal
- The Calendar
to be used for encoding,
may be null
invertTimeZone
- If true
, the timezone offset value
will be subtracted from the encoded value, otherwise it will
be addedTimestamp
byte[] encodeTimestamp(java.sql.Timestamp value)
Timestamp
as a byte
array.value
- The Timestamp
to be encodedbyte
s that represents the given Timestamp
valuebyte[] encodeTimestampRaw(DatatypeCoder.RawDateTimeStruct raw)
byte
array.raw
- The RawDateTimeStruct
to be encodedbyte
s representing the date and time of the given RawDateTimeStruct
byte[] encodeTimestampCalendar(java.sql.Timestamp value, java.util.Calendar c)
java.sql.Timestamp decodeTimestamp(java.sql.Timestamp value, java.util.Calendar cal)
Timestamp
value using a given Calendar
.value
- The Timestamp
to be decodedcal
- The Calendar
to be used in decoding,
may be null
Timestamp
java.sql.Timestamp decodeTimestamp(java.sql.Timestamp value, java.util.Calendar cal, boolean invertTimeZone)
Timestamp
value using a given Calendar
.value
- The Timestamp
to be decodedcal
- The Calendar
to be used in decoding,
may be null
invertTimeZone
- If true
, the timezone offset value
will be subtracted from the decoded value, otherwise it will
be addedTimestamp
java.sql.Timestamp decodeTimestamp(byte[] byte_long)
byte
array into a Timestamp
.byte_long
- The byte
array to be decodedTimestamp
value from the decoded bytesDatatypeCoder.RawDateTimeStruct decodeTimestampRaw(byte[] byte_long)
byte
array into a raw date time struct.byte_long
- The byte
array to be decodedDatatypeCoder.RawDateTimeStruct
.java.sql.Timestamp decodeTimestampCalendar(byte[] byte_long, java.util.Calendar c)
java.sql.Time encodeTime(java.sql.Time d, java.util.Calendar cal, boolean invertTimeZone)
Time
value using a given Calendar
.d
- The Time
to be encodedcal
- The Calendar
to be used in the encoding, may be null
Time
byte[] encodeTime(java.sql.Time d)
Time
value into a byte
array.d
- The Time
to be encodedbyte
s representing the given Time
byte[] encodeTimeRaw(DatatypeCoder.RawDateTimeStruct raw)
byte
array.raw
- The RawDateTimeStruct
to be encodedbyte
s representing the time of the given RawDateTimeStruct
byte[] encodeTimeCalendar(java.sql.Time d, java.util.Calendar c)
java.sql.Time decodeTime(java.sql.Time d, java.util.Calendar cal, boolean invertTimeZone)
Time
value using a given Calendar
.d
- The Time
to be decodedcal
- The Calendar
to be used in the decoding, may be null
Time
java.sql.Time decodeTime(byte[] int_byte)
byte
array into a Time
value.int_byte
- The byte
array to be decodedTime
DatatypeCoder.RawDateTimeStruct decodeTimeRaw(byte[] int_byte)
byte
array into a raw date time struct.int_byte
- The byte
array to be decodedDatatypeCoder.RawDateTimeStruct
java.sql.Time decodeTimeCalendar(byte[] int_byte, java.util.Calendar c)
java.sql.Date encodeDate(java.sql.Date d, java.util.Calendar cal)
Date
value using a given Calendar
.d
- The Date
to be encodedcal
- The Calendar
to be used in the encoding, may be null
Date
byte[] encodeDate(java.sql.Date d)
Date
value into a byte
array.d
- The Date
to be encodedbyte
s representing the given Date
byte[] encodeDateRaw(DatatypeCoder.RawDateTimeStruct raw)
byte
array.raw
- The RawDateTimeStruct
to be encodedbyte
s representing the date of the given RawDateTimeStruct
byte[] encodeDateCalendar(java.sql.Date d, java.util.Calendar c)
java.sql.Date decodeDate(java.sql.Date d, java.util.Calendar cal)
Date
value using a given Calendar
.d
- The Date
to be decodedcal
- The Calendar
to be used in the decoding, may be null
Date
java.sql.Date decodeDate(byte[] byte_int)
byte
array into a Date
value.byte_int
- The byte
array to be decodedDate
DatatypeCoder.RawDateTimeStruct decodeDateRaw(byte[] byte_int)
byte
array into a raw date time struct.byte_int
- The byte
array to be decodedDatatypeCoder.RawDateTimeStruct
java.sql.Date decodeDateCalendar(byte[] byte_int, java.util.Calendar c)
boolean decodeBoolean(byte[] data)
data
- (expected) 1 bytesfalse
when 0, true
for all other valuesbyte[] encodeBoolean(boolean value)
value
- Boolean value to encodetrue
as 1, false
as 0.byte[] encodeLocalTime(int hour, int minute, int second, int nanos)
hour
- Number of hours (is assumed to be 0..23)minute
- Number of minutes (is assumed to be 0..59)second
- Number of seconds (is assumed to be 0..59)nanos
- Sub-second nanoseconds (actual resolution is 100 microseconds, is assumed to be 0 .. 10^9 - 1 ns)byte[] encodeLocalDate(int year, int month, int day)
year
- Yearmonth
- Month (is assumed to be 1..12)day
- Day (is assumed to be valid for year and month)byte[] encodeLocalDateTime(int year, int month, int day, int hour, int minute, int second, int nanos)
year
- Yearmonth
- Month (is assumed to be 1..12)day
- Day (is assumed to be valid for year and month)hour
- Number of hours (is assumed to be 0..23)minute
- Number of minutes (is assumed to be 0..59)second
- Number of seconds (is assumed to be 0..59)nanos
- Sub-second nanoseconds (actual resolution is 100 microseconds, is assumed to be 0 .. 10^9 - 1 ns)Decimal64 decodeDecimal64(byte[] data)
data
- Data to decode (expected 8 bytes)byte[] encodeDecimal64(Decimal64 decimal64)
decimal64
- The decimal64 value to be encodedDecimal128 decodeDecimal128(byte[] data)
data
- Data to decode (expected 16 bytes)byte[] encodeDecimal128(Decimal128 decimal128)
decimal128
- The decimal128 value to be encodedjava.math.BigInteger decodeInt128(byte[] data)
data
- Data to decode (expected 16 bytes)byte[] encodeInt128(java.math.BigInteger bigInteger)
The implementation expects to be passed a value that fits in 16 bytes. If a larger value is passed, and
IllegalArgumentException
is thrown.
bigInteger
- The BigInteger value to be encodedIEncodingFactory getEncodingFactory()
EncodingDefinition getEncodingDefinition()
Encoding getEncoding()
DatatypeCoder forEncodingDefinition(EncodingDefinition encodingDefinition)
encodingDefinition
- Encoding definitionDatatypeCoder unwrap()
boolean equals(java.lang.Object other)
Equality: same basic type (ie: wire protocol/JNA type + endianness) and same encoding definition.
This does not need to take into account the encoding factory, as usage should be limited to datatype coders derived from the same connection.
equals
in class java.lang.Object
other
- Object to compare totrue
if other is an equivalent datatype coder.int hashCode()
hashCode
in class java.lang.Object
Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.