uk.ac.starlink.table.formats
Class IpacTableWriter

java.lang.Object
  extended by uk.ac.starlink.table.StreamStarTableWriter
      extended by uk.ac.starlink.table.formats.AbstractTextTableWriter
          extended by uk.ac.starlink.table.formats.IpacTableWriter
All Implemented Interfaces:
StarTableWriter

public class IpacTableWriter
extends AbstractTextTableWriter

A StarTableWriter which writes to the IPAC text format. The data format is defined at http://irsa.ipac.caltech.edu/applications/DDGEN/Doc/ipac_tbl.html.

Since:
20 Sep 2012

Field Summary
static java.lang.String NULL
          String representation for null values.
 
Constructor Summary
IpacTableWriter()
          Constructor.
 
Method Summary
 java.lang.String formatValue(java.lang.Object val, ValueInfo info, int width)
          Formats a data value for output.
 java.lang.String getFormatName()
          Returns "IPAC".
protected  int getMaximumParameterLength()
          The comments parameter may be many lines long.
 int getMaxWidth()
          Returns the maximum width for a given column.
 java.lang.String getMimeType()
          Returns "text/plain".
 int getMinNameWidth(ColumnInfo info)
          Returns the minimum width required to output the actual characters of the name for a given column.
 boolean looksLikeFile(java.lang.String location)
          Returns true for files with extension ".ipac" or ".tbl".
 void printColumnHeads(java.io.OutputStream out, int[] colwidths, ColumnInfo[] cinfos)
          Outputs headings for the table columns.
protected  void printLine(java.io.OutputStream out, int[] colwidths, java.lang.String[] data)
          Outputs a line of table data.
protected  void printParam(java.io.OutputStream out, java.lang.String name, java.lang.String value, java.lang.Class clazz)
          Outputs a parameter and its value.
protected  void printSeparator(java.io.OutputStream out, int[] colwidths)
          Outputs a decorative separator line, of the sort you might find between the column headings and the table data.
 
Methods inherited from class uk.ac.starlink.table.formats.AbstractTextTableWriter
getBytes, getSampledRows, getWriteParameters, setWriteParameters, writeStarTable
 
Methods inherited from class uk.ac.starlink.table.StreamStarTableWriter
writeStarTable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NULL

public static java.lang.String NULL
String representation for null values.

Constructor Detail

IpacTableWriter

public IpacTableWriter()
Constructor.

Method Detail

getFormatName

public java.lang.String getFormatName()
Returns "IPAC".

Specified by:
getFormatName in interface StarTableWriter
Overrides:
getFormatName in class AbstractTextTableWriter
Returns:
"text"

getMimeType

public java.lang.String getMimeType()
Returns "text/plain".

Specified by:
getMimeType in interface StarTableWriter
Overrides:
getMimeType in class AbstractTextTableWriter
Returns:
MIME content type

looksLikeFile

public boolean looksLikeFile(java.lang.String location)
Returns true for files with extension ".ipac" or ".tbl".

Parameters:
location - the location name (probably filename)
Returns:
true iff it looks like a file this writer would normally write

getMaxWidth

public int getMaxWidth()
Description copied from class: AbstractTextTableWriter
Returns the maximum width for a given column. Values longer than this may be truncated.

Specified by:
getMaxWidth in class AbstractTextTableWriter
Returns:
maximum permitted column width in characters

getMinNameWidth

public int getMinNameWidth(ColumnInfo info)
Description copied from class: AbstractTextTableWriter
Returns the minimum width required to output the actual characters of the name for a given column. Padding applied subsequently by this object's AbstractTextTableWriter.printColumnHeads(java.io.OutputStream, int[], uk.ac.starlink.table.ColumnInfo[]) method does not need to be included.

Overrides:
getMinNameWidth in class AbstractTextTableWriter
Parameters:
info - column metadata
Returns:
minimum number of characters required for column title

formatValue

public java.lang.String formatValue(java.lang.Object val,
                                    ValueInfo info,
                                    int width)
Description copied from class: AbstractTextTableWriter
Formats a data value for output.

Specified by:
formatValue in class AbstractTextTableWriter
Parameters:
val - the value
info - 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

printColumnHeads

public void printColumnHeads(java.io.OutputStream out,
                             int[] colwidths,
                             ColumnInfo[] cinfos)
                      throws java.io.IOException
Description copied from class: AbstractTextTableWriter
Outputs headings for the table columns.

Specified by:
printColumnHeads in class AbstractTextTableWriter
Parameters:
out - stream to write into
colwidths - column widths in characters
cinfos - array of column headings
Throws:
java.io.IOException

printLine

protected void printLine(java.io.OutputStream out,
                         int[] colwidths,
                         java.lang.String[] data)
                  throws java.io.IOException
Description copied from class: AbstractTextTableWriter
Outputs a line of table data.

Specified by:
printLine in class AbstractTextTableWriter
Parameters:
out - stream to write into
colwidths - column widths in characters
data - array of strings to be output, one per column
Throws:
java.io.IOException

printSeparator

protected void printSeparator(java.io.OutputStream out,
                              int[] colwidths)
Description copied from class: AbstractTextTableWriter
Outputs a decorative separator line, of the sort you might find between the column headings and the table data.

Specified by:
printSeparator in class AbstractTextTableWriter
Parameters:
out - stream to write into
colwidths - column widths in characters

printParam

protected void printParam(java.io.OutputStream out,
                          java.lang.String name,
                          java.lang.String value,
                          java.lang.Class clazz)
                   throws java.io.IOException
Description copied from class: AbstractTextTableWriter
Outputs a parameter and its value.

Specified by:
printParam in class AbstractTextTableWriter
Parameters:
out - stream to write into
name - parameter name
value - formatted parameter value
clazz - type of value
Throws:
java.io.IOException

getMaximumParameterLength

protected int getMaximumParameterLength()
The comments parameter may be many lines long.

Overrides:
getMaximumParameterLength in class AbstractTextTableWriter
Returns:
maximum length for output string parameters