Package org.firebirdsql.gds.ng.fields
Class RowValueBuilder
- java.lang.Object
-
- org.firebirdsql.gds.ng.fields.RowValueBuilder
-
public class RowValueBuilder extends java.lang.ObjectBuilder forRowValueinstances.This class allows for sparse population of column values (ie:
nullvalues 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: skippingnullvalues).- 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 RowValueBuilderat(int index)Convenience shortcut forsetFieldIndex(int).byte[]get(int index)Retrieves the field data set at the specified index.intgetSize()RowValueBuilderreset()Resets this builder to a new RowValue.RowValueBuilderset(byte[] fieldData)Sets the field data of the current field.RowValueBuildersetFieldIndex(int index)Sets the index of the current field to populate.RowValuetoRowValue(boolean initialize)Returns the populatedRowValueand 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- Whenindexis 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
-
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 populatedRowValueand resets the RowValueBuilder.- Parameters:
initialize-trueset field data to null for all uninitialized fields,falseleaves fields uninitialized. In most cases you want to usetrue.- Returns:
- The row value object
- See Also:
reset()
-
-