Class ExecRowBuilder

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, Formatable, TypedFormat

    public class ExecRowBuilder
    extends java.lang.Object
    implements Formatable

    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:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int[] columns
      Array of 1-based column numbers for the columns to access.
      private int count
      The number of columns to set in the row.
      private boolean indexable
      If true, the row should be an ExecIndexRow.
      private int maxColumnNumber
      The highest column number in the row.
      private java.lang.Object[] template
      Array of templates used for creating NULL values to put in the row.
    • Constructor Summary

      Constructors 
      Constructor Description
      ExecRowBuilder()
      Public no-arg constructor required by the Formatable interface.
      ExecRowBuilder​(int size, boolean indexable)
      Create an instance that produces an ExecRow instance of the specified size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ExecRow build​(ExecutionFactory ef)
      Build a new ExecRow instance with the columns specified by the setColumn(int, Object) method initialized to empty (NULL) values.
      int getTypeFormatId()
      Get a universally unique identifier for the type of this object.
      void readExternal​(java.io.ObjectInput in)  
      void reset​(ExecRow row)
      Reset a row by creating fresh NULL values.
      void setColumn​(int column, java.lang.Object columnTemplate)
      Add a template from which a NULL value of the correct type can be created.
      void writeExternal​(java.io.ObjectOutput out)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • indexable

        private boolean indexable
        If true, the row should be an ExecIndexRow.
      • template

        private java.lang.Object[] template
        Array of templates used for creating NULL values to put in the row. The templates are either DataValueDescriptors or DataTypeDescriptors.
      • columns

        private int[] columns
        Array of 1-based column numbers for the columns to access.
      • count

        private int count
        The number of columns to set in the row.
      • maxColumnNumber

        private int maxColumnNumber
        The highest column number in the row.
    • Constructor Detail

      • ExecRowBuilder

        public ExecRowBuilder​(int size,
                              boolean indexable)
        Create an instance that produces an ExecRow instance of the specified size.
        Parameters:
        size - the number of columns to initialize in the produced row
        indexable - true if the returned row should be an ExecIndexRow, false otherwise
      • ExecRowBuilder

        public ExecRowBuilder()
        Public no-arg constructor required by the Formatable interface. Should not be called directly.
    • Method Detail

      • setColumn

        public void setColumn​(int column,
                              java.lang.Object columnTemplate)
        Add a template from which a NULL value of the correct type can be created. It should either be a DataValueDescriptor or a DataTypeDescriptor.
        Parameters:
        column - the column number
        columnTemplate - a template from which a NULL value can be created (either a DataValueDescriptor or a DataTypeDescriptor)
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • getTypeFormatId

        public int getTypeFormatId()
        Description copied from interface: TypedFormat
        Get a universally unique identifier for the type of this object.
        Specified by:
        getTypeFormatId in interface TypedFormat
        Returns:
        The identifier. (A UUID stuffed in an array of 16 bytes).