Class ExecRowBuilder
java.lang.Object
org.apache.derby.iapi.sql.execute.ExecRowBuilder
- All Implemented Interfaces:
Externalizable, Serializable, Formatable, TypedFormat
A class used for storing information on how to build ExecRow
instances. Typically created by the compiler and used during execution
to produce and reset row templates.
This class must be Formatable so that it can be stored in the
database as part of a stored prepared statement generated for trigger
actions or metadata queries. The stored format does not need to be stable
across different versions, since the stored prepared statements are
discarded on upgrade and will never be read by other Derby versions than
the one that originally wrote them.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int[]Array of 1-based column numbers for the columns to access.private intThe number of columns to set in the row.private booleanIf true, the row should be anExecIndexRow.private intThe highest column number in the row.private Object[]Array of templates used for creating NULL values to put in the row. -
Constructor Summary
ConstructorsConstructorDescriptionPublic no-arg constructor required by theFormatableinterface.ExecRowBuilder(int size, boolean indexable) Create an instance that produces anExecRowinstance of the specified size. -
Method Summary
Modifier and TypeMethodDescriptionBuild a newExecRowinstance with the columns specified by thesetColumn(int, Object)method initialized to empty (NULL) values.intGet a universally unique identifier for the type of this object.voidvoidReset a row by creating fresh NULL values.voidAdd a template from which a NULL value of the correct type can be created.void
-
Field Details
-
indexable
private boolean indexableIf true, the row should be anExecIndexRow. -
template
Array of templates used for creating NULL values to put in the row. The templates are eitherDataValueDescriptors orDataTypeDescriptors. -
columns
private int[] columnsArray of 1-based column numbers for the columns to access. -
count
private int countThe number of columns to set in the row. -
maxColumnNumber
private int maxColumnNumberThe highest column number in the row.
-
-
Constructor Details
-
ExecRowBuilder
public ExecRowBuilder(int size, boolean indexable) Create an instance that produces anExecRowinstance of the specified size.- Parameters:
size- the number of columns to initialize in the produced rowindexable-trueif the returned row should be anExecIndexRow,falseotherwise
-
ExecRowBuilder
public ExecRowBuilder()Public no-arg constructor required by theFormatableinterface. Should not be called directly.
-
-
Method Details
-
setColumn
Add a template from which a NULL value of the correct type can be created. It should either be aDataValueDescriptoror aDataTypeDescriptor.- Parameters:
column- the column numbercolumnTemplate- a template from which a NULL value can be created (either aDataValueDescriptoror aDataTypeDescriptor)
-
build
Build a newExecRowinstance with the columns specified by thesetColumn(int, Object)method initialized to empty (NULL) values.- Parameters:
ef- an execution factory used to create a row- Returns:
- a row initialized with NULL values of the requested types
- Throws:
StandardException
-
reset
Reset a row by creating fresh NULL values.- Parameters:
row- the row to reset- Throws:
StandardException
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
getTypeFormatId
public int getTypeFormatId()Description copied from interface:TypedFormatGet a universally unique identifier for the type of this object.- Specified by:
getTypeFormatIdin interfaceTypedFormat- Returns:
- The identifier. (A UUID stuffed in an array of 16 bytes).
-