Package uk.ac.starlink.ecsv
Class EcsvTableWriter
- java.lang.Object
-
- uk.ac.starlink.table.formats.DocumentedStreamStarTableWriter
-
- uk.ac.starlink.ecsv.EcsvTableWriter
-
- All Implemented Interfaces:
uk.ac.starlink.table.Documented
,uk.ac.starlink.table.formats.DocumentedIOHandler
,uk.ac.starlink.table.StarTableWriter
public class EcsvTableWriter extends uk.ac.starlink.table.formats.DocumentedStreamStarTableWriter
TableWriter for ECSV output format. The format currently supported is ECSV 1.0, as documented at Astropy APE6.The current implementation avoids use of any YAML serialization library, it just uses print statements. This may facilitate its use in some contexts, and doing it like this seems straightforward enough. However if it turns out that the serialization is more complicated or error-prone than I thought it was, it might be worth revisiting this decision and using for instance the serialization facilities of the YAML parser library that is in any case a dependency of this package.
- Since:
- 29 Apr 2020
- Author:
- Mark Taylor
-
-
Field Summary
Fields Modifier and Type Field Description static EcsvTableWriter
COMMA_WRITER
Instance using commas for delimiters.static EcsvTableWriter
SPACE_WRITER
Instance using spaces for delimiters.static java.lang.String
TABLENAME_METAKEY
Meta map key for table name string value.static java.lang.String
UCD_METAKEY
Meta map key for UCD string value.static java.lang.String
UTYPE_METAKEY
Meta map key for Utype string value.static java.lang.String
XTYPE_METAKEY
Meta map key for Xtype string value.
-
Constructor Summary
Constructors Constructor Description EcsvTableWriter()
Constructs a writer with default characteristics.EcsvTableWriter(char delimiter, java.lang.String nameSuffix)
Constructs a writer with a given delimiter character.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
docIncludesExample()
char
getDelimiter()
Returns the delimiter character, either a space or a comma.java.lang.String
getFormatName()
java.lang.String
getMimeType()
Returns "text/plain".static uk.ac.starlink.table.StarTableWriter[]
getStarTableWriters()
Returns a list of ECSV writers with variant characteristics.java.lang.String
getXmlDescription()
void
setDelimiter(java.lang.String delimiter)
Sets the delimiter.void
writeStarTable(uk.ac.starlink.table.StarTable table, java.io.OutputStream out)
-
Methods inherited from class uk.ac.starlink.table.formats.DocumentedStreamStarTableWriter
getExtensions, looksLikeFile, writeStarTable
-
-
-
-
Field Detail
-
TABLENAME_METAKEY
public static final java.lang.String TABLENAME_METAKEY
Meta map key for table name string value.- See Also:
- Constant Field Values
-
UCD_METAKEY
public static final java.lang.String UCD_METAKEY
Meta map key for UCD string value.- See Also:
- Constant Field Values
-
UTYPE_METAKEY
public static final java.lang.String UTYPE_METAKEY
Meta map key for Utype string value.- See Also:
- Constant Field Values
-
XTYPE_METAKEY
public static final java.lang.String XTYPE_METAKEY
Meta map key for Xtype string value.- See Also:
- Constant Field Values
-
SPACE_WRITER
public static final EcsvTableWriter SPACE_WRITER
Instance using spaces for delimiters.
-
COMMA_WRITER
public static final EcsvTableWriter COMMA_WRITER
Instance using commas for delimiters.
-
-
Constructor Detail
-
EcsvTableWriter
public EcsvTableWriter()
Constructs a writer with default characteristics.
-
EcsvTableWriter
public EcsvTableWriter(char delimiter, java.lang.String nameSuffix)
Constructs a writer with a given delimiter character.- Parameters:
delimiter
- field delimiter character; should be a space or commanameSuffix
- string to append to "ECSV" to provide the format name
-
-
Method Detail
-
getFormatName
public java.lang.String getFormatName()
-
getMimeType
public java.lang.String getMimeType()
Returns "text/plain".
-
docIncludesExample
public boolean docIncludesExample()
-
getXmlDescription
public java.lang.String getXmlDescription()
-
setDelimiter
@ConfigMethod(property="delimiter", doc="<p>Delimiter character, which for ECSV may be either a space or a comma. Permitted values are \"<code>space</code>\" or \"<code>comma</code>\".</p>", usage="comma|space", example="comma") public void setDelimiter(java.lang.String delimiter)
Sets the delimiter. ECSV only permits the space or comma.- Parameters:
delimiter
- delimiter character; may be "space", "comma", " " or ","- Throws:
java.lang.IllegalArgumentException
- if not one of the permitted values
-
getDelimiter
public char getDelimiter()
Returns the delimiter character, either a space or a comma.- Returns:
- delimiter character
-
writeStarTable
public void writeStarTable(uk.ac.starlink.table.StarTable table, java.io.OutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
getStarTableWriters
public static uk.ac.starlink.table.StarTableWriter[] getStarTableWriters()
Returns a list of ECSV writers with variant characteristics.- Returns:
- variant EcsvTableWriters
-
-