Class GenericResultDescription

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

    public final class GenericResultDescription
    extends java.lang.Object
    implements ResultDescription, Formatable
    GenericResultDescription: basic implementation of result description, used in conjunction with the other implementations in this package. This implementation of ResultDescription may be used by anyone.
    See Also:
    Serialized Form
    • Field Detail

      • columns

        private ResultColumnDescriptor[] columns
        This class implements Formatable. That means that it can write itself to and from a formatted stream. If you add more fields to this class, make sure that you also write/read them with the writeExternal()/readExternal() methods. If, inbetween releases, you add more fields to this class, then you should bump the version number emitted by the getTypeFormatId() method.
      • statementType

        private java.lang.String statementType
      • columnNameMap

        private java.util.Map<java.lang.String,​java.lang.Integer> columnNameMap
        A map which maps a column name to a column number. Entries only added when accessing columns with the name.
    • Constructor Detail

      • GenericResultDescription

        public GenericResultDescription()
        Niladic constructor for Formatable
      • GenericResultDescription

        public GenericResultDescription​(ResultColumnDescriptor[] columns,
                                        java.lang.String statementType)
        Build a GenericResultDescription from columns and type
        Parameters:
        columns - an array of col descriptors
        statementType - the type
      • GenericResultDescription

        public GenericResultDescription​(ResultDescription rd,
                                        int[] theCols)
        Build a GenericResultDescription
        Parameters:
        rd - the result description
        theCols - the columns to take from the input rd
    • Method Detail

      • getStatementType

        public java.lang.String getStatementType()
        Description copied from interface: ResultDescription
        Returns an identifier that tells what type of statement has been executed. This can be used to determine what other methods to call to get the results back from a statement. For example, a SELECT statement returns rows and columns, while other statements don't, so you would only call getColumnCount() or getColumnType() for SELECT statements.
        Specified by:
        getStatementType in interface ResultDescription
        Returns:
        A String identifier telling what type of statement this is.
        See Also:
        ResultDescription.getStatementType()
      • truncateColumns

        public ResultDescription truncateColumns​(int truncateFrom)
        Get a new result description that has been truncated from input column number. If the input column is 5, then columns 5 to getColumnCount() are removed. The new ResultDescription points to the same ColumnDescriptors (this method performs a shallow copy.
        Specified by:
        truncateColumns in interface ResultDescription
        Parameters:
        truncateFrom - the starting column to remove
        Returns:
        a new ResultDescription
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Write this object out
        Specified by:
        writeExternal in interface java.io.Externalizable
        Parameters:
        out - write bytes here
        Throws:
        java.io.IOException - thrown on error
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Read this object from a stream of stored objects.
        Specified by:
        readExternal in interface java.io.Externalizable
        Parameters:
        in - read this.
        Throws:
        java.io.IOException - thrown on error
        java.lang.ClassNotFoundException - thrown on error
      • getTypeFormatId

        public int getTypeFormatId()
        Get the formatID which corresponds to this class.
        Specified by:
        getTypeFormatId in interface TypedFormat
        Returns:
        the formatID of this class
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • setMetaData

        public void setMetaData​(java.sql.ResultSetMetaData rsmd)
        Set the meta data if it has not already been set.
        Specified by:
        setMetaData in interface ResultDescription
      • getMetaData

        public java.sql.ResultSetMetaData getMetaData()
        Get the saved meta data.
        Specified by:
        getMetaData in interface ResultDescription
      • findColumnInsenstive

        public int findColumnInsenstive​(java.lang.String columnName)
        Find a column name based upon the JDBC rules for getXXX and setXXX. Name matching is case-insensitive, matching the first name (1-based) if there are multiple columns that map to the same name.
        Specified by:
        findColumnInsenstive in interface ResultDescription
        Returns:
        Position of the column (1-based), -1 if no match.