Package org.firebirdsql.jdbc.metadata
Class RowValueBuilder
- java.lang.Object
-
- org.firebirdsql.jdbc.metadata.RowValueBuilder
-
public final class RowValueBuilder extends java.lang.Object
Builder forRowValue
instances.This class allows for sparse population of column values (ie:
null
values can be skipped). It is intended for use in tests and classes likeFBDatabaseMetaData
.The main advantage over
RowValue.of(RowDescriptor, byte[][])
is that it is clearer to which field the value is assigned, and it allows for sparse population (ie: skippingnull
values).- Author:
- Mark Rotteveel
- See Also:
RowValue.of(RowDescriptor, byte[][])
-
-
Constructor Summary
Constructors Constructor Description RowValueBuilder(RowDescriptor rowDescriptor)
Creates instance of RowValueBuilder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RowValueBuilder
at(int index)
Convenience shortcut forsetFieldIndex(int)
.byte[]
get(int index)
Retrieves the field data set at the specified index.int
getSize()
RowValueBuilder
reset()
Resets this builder to a new RowValue.RowValueBuilder
set(byte[] fieldData)
Sets the field data of the current field.RowValueBuilder
setFieldIndex(int index)
Sets the index of the current field to populate.RowValueBuilder
setInt(int value)
Sets the field data by encoding the providedint
.RowValueBuilder
setInt(java.lang.Number value)
Sets the field data by encoding the providedNumber
ornull
.RowValueBuilder
setShort(int value)
Sets the field data by encoding the providedint
as ashort
.RowValueBuilder
setShort(short value)
Sets the field data by encoding the providedshort
.RowValueBuilder
setShort(java.lang.Number value)
Sets the field data by encoding the providedNumber
as ashort
ornull
.RowValueBuilder
setString(java.lang.String value)
Sets the field data by encoding the providedString
.RowValue
toRowValue(boolean initialize)
Returns the populatedRowValue
and resets the RowValueBuilder.
-
-
-
Constructor Detail
-
RowValueBuilder
public RowValueBuilder(RowDescriptor rowDescriptor)
Creates instance of RowValueBuilder.- Parameters:
rowDescriptor
- The RowDescriptor for the row(s) to be created
-
-
Method Detail
-
setFieldIndex
public RowValueBuilder setFieldIndex(int index)
Sets the index of the current field to populate.- Parameters:
index
- Index of the field- Returns:
- this builder
- Throws:
java.lang.IndexOutOfBoundsException
- Whenindex
is not between 0 (inclusive) andgetSize()
(exclusive)
-
at
public RowValueBuilder at(int index)
Convenience shortcut forsetFieldIndex(int)
.- Parameters:
index
- Index- Returns:
- this builder
- See Also:
setFieldIndex(int)
-
set
public RowValueBuilder set(byte[] fieldData)
Sets the field data of the current field.- Parameters:
fieldData
- Data- Returns:
- this builder
-
setInt
public RowValueBuilder setInt(int value)
Sets the field data by encoding the providedint
.- Parameters:
value
- value- Returns:
- this builder
- Since:
- 5
-
setInt
public RowValueBuilder setInt(java.lang.Number value)
Sets the field data by encoding the providedNumber
ornull
.- Parameters:
value
- value- Returns:
- this builder
- Since:
- 5
-
setShort
public RowValueBuilder setShort(int value)
Sets the field data by encoding the providedint
as ashort
.- Parameters:
value
- value- Returns:
- this builder
- Since:
- 5
- See Also:
setShort(short)
-
setShort
public RowValueBuilder setShort(java.lang.Number value)
Sets the field data by encoding the providedNumber
as ashort
ornull
.- Parameters:
value
- value- Returns:
- this builder
- Since:
- 5
- See Also:
setShort(short)
-
setShort
public RowValueBuilder setShort(short value)
Sets the field data by encoding the providedshort
.- Parameters:
value
- value- Returns:
- this builder
- Since:
- 5
- See Also:
setShort(int)
-
setString
public RowValueBuilder setString(java.lang.String value)
Sets the field data by encoding the providedString
.- Parameters:
value
- value- Returns:
- this builder
- Since:
- 5
-
get
public byte[] get(int index)
Retrieves the field data set at the specified index.- Parameters:
index
- Index- Returns:
- The field data
- Throws:
java.lang.IndexOutOfBoundsException
- When @{code index} is not between 0 (inclusive) andgetSize()
(exclusive)
-
reset
public RowValueBuilder reset()
Resets this builder to a new RowValue. All previous values set are cleared.- Returns:
- this builder.
-
getSize
public int getSize()
- Returns:
- Number of fields in the row
-
toRowValue
public RowValue toRowValue(boolean initialize)
Returns the populatedRowValue
and resets the RowValueBuilder.- Parameters:
initialize
-true
set field data to null for all uninitialized fields,false
leaves fields uninitialized. In most cases you want to usetrue
.- Returns:
- The row value object
- See Also:
reset()
-
-