Class AbstractTextTableWriter

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected AbstractTextTableWriter​(java.lang.String[] extensions, boolean writeParams)
      Constructor.
    • Constructor Detail

      • AbstractTextTableWriter

        protected AbstractTextTableWriter​(java.lang.String[] extensions,
                                          boolean writeParams)
        Constructor.
        Parameters:
        extensions - list of lower-cased filename extensions, excluding the '.' character
        writeParams - whether parameters will be written by default
    • Method Detail

      • getFormatName

        public java.lang.String getFormatName()
        Returns "text";
        Returns:
        "text"
      • getMimeType

        public java.lang.String getMimeType()
        Description copied from interface: StarTableWriter
        Returns a string suitable for use as the value of a MIME Content-Type header. If no suitable MIME type is available or known, one of "application/octet-stream" (for binary formats) or "text/plain" for ASCII ones) is recommended.
        Returns:
        MIME content type
      • writeStarTable

        public void writeStarTable​(StarTable startab,
                                   java.io.OutputStream strm)
                            throws java.io.IOException
        Description copied from interface: StarTableWriter
        Writes a StarTable object to a given output stream. The implementation can assume that out is suitable for direct writing (for instance it should not normally wrap it in a BufferedOutputStream), and should not close it at the end of the call.

        Not all table writers are capable of writing to a stream; an implementation may throw a TableFormatException to indicate that it cannot do so.

        Parameters:
        startab - the table to write
        strm - the output stream to which startab should be written
        Throws:
        TableFormatException - if this table cannot be written to a stream
        java.io.IOException - if there is some I/O error
      • setMaximumParameterLength

        @ConfigMethod(property="maxParam",
                      doc="<p>Maximum width in characters of an output table parameter. Parameters with values longer than this will be truncated.</p>")
        public void setMaximumParameterLength​(int maxParamLength)
        Sets the maximum length for the value of a parameter that will be output.
        Parameters:
        maxParamLength - maximum printable parameter length
      • setWriteParameters

        @ConfigMethod(property="params",
                      doc="<p>Whether to output table parameters as well as row data.</p>")
        public void setWriteParameters​(boolean writeParams)
        Set whether the output should include table parameters. If so they are written as name:value pairs one per line before the start of the table proper.
        Parameters:
        writeParams - true iff you want table parameters to be output as well as the table data
      • getWriteParameters

        public boolean getWriteParameters()
        Finds out whether the output will include table parameters.
        Returns:
        true iff the table parameters will be output as well as the table data
      • setMaxWidth

        @ConfigMethod(property="maxCell",
                      doc="<p>Maximum width in characters of an output table cell. Cells longer than this will be truncated.</p>")
        public void setMaxWidth​(int maxWidth)
        Sets the maximum width in characters for any output column. Values longer than this may be truncated.
        Parameters:
        maxWidth - maximum column value width in characters
      • getMaxWidth

        public int getMaxWidth()
        Returns the maximum width for any output column. Values longer than this may be truncated.
        Returns:
        maximum permitted column width in characters
      • setSampledRows

        public void setSampledRows​(int sampledRows)
        Sets the number of rows which will be sampled before output is commenced to work out the column widths.
        Parameters:
        sampledRows - number of rows to be sampled
      • getSampledRows

        public int getSampledRows()
        Returns the number of rows which will be sampled to work out the column width.
        Returns:
        number of rows scanned
      • formatValue

        protected abstract java.lang.String formatValue​(java.lang.Object val,
                                                        ValueInfo vinfo,
                                                        int width)
        Formats a data value for output.
        Parameters:
        val - the value
        vinfo - the metadata object describing val's type
        width - maximum preferred width into which the value should be formatted
        Returns:
        formatted string meaning value, preferably no longer than width characters
      • printSeparator

        protected abstract void printSeparator​(java.io.OutputStream strm,
                                               int[] colwidths)
                                        throws java.io.IOException
        Outputs a decorative separator line, of the sort you might find between the column headings and the table data.
        Parameters:
        strm - stream to write into
        colwidths - column widths in characters
        Throws:
        java.io.IOException
      • printColumnHeads

        protected abstract void printColumnHeads​(java.io.OutputStream strm,
                                                 int[] colwidths,
                                                 ColumnInfo[] cinfos)
                                          throws java.io.IOException
        Outputs headings for the table columns.
        Parameters:
        strm - stream to write into
        colwidths - column widths in characters
        cinfos - array of column headings
        Throws:
        java.io.IOException
      • printLine

        protected abstract void printLine​(java.io.OutputStream strm,
                                          int[] colwidths,
                                          java.lang.String[] data)
                                   throws java.io.IOException
        Outputs a line of table data.
        Parameters:
        strm - stream to write into
        colwidths - column widths in characters
        data - array of strings to be output, one per column
        Throws:
        java.io.IOException
      • printParam

        protected abstract void printParam​(java.io.OutputStream strm,
                                           java.lang.String name,
                                           java.lang.String value,
                                           java.lang.Class<?> clazz)
                                    throws java.io.IOException
        Outputs a parameter and its value.
        Parameters:
        strm - stream to write into
        name - parameter name
        value - formatted parameter value
        clazz - type of value
        Throws:
        java.io.IOException
      • getBytes

        protected byte[] getBytes​(java.lang.String str)
        Returns a byte array corresponding to a given string.
        Parameters:
        str - string to decode