Package uk.ac.starlink.ecsv
Class EcsvEncoder
- java.lang.Object
-
- uk.ac.starlink.ecsv.EcsvEncoder
-
public abstract class EcsvEncoder extends java.lang.Object
Converts values for a given column into strings suitable for inclusion in the body of an ECSV file.- Since:
- 28 Apr 2020
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
EcsvEncoder(java.lang.String datatype, java.lang.String subtype)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static EcsvEncoder
createEncoder(uk.ac.starlink.table.ColumnInfo info, char delimiter)
Returns an encoder suitable for encoding data from a column with given metadata.abstract java.lang.String
encode(java.lang.Object value)
Formats a value of this encoder's datatype for insertion into the body of an ECSV file.java.lang.String
getDatatype()
Returns the ECSV datatype handled by this encoder.java.lang.String
getSubtype()
Returns the ECSV subtype for this decoder.static java.lang.String
quoteString(java.lang.String txt, char delimiter)
Returns a suitably escaped value of a string, ensuring that no ECSV control characters are present in the result.
-
-
-
Method Detail
-
encode
public abstract java.lang.String encode(java.lang.Object value)
Formats a value of this encoder's datatype for insertion into the body of an ECSV file. The output string must include any required quoting, for instance it may not include unescaped delimiters, newlines or double quote characters. As a special case, null may be returned instead if no conversion can be performed.- Parameters:
value
- typed value to encode- Returns:
- formatted string representation, or null
-
getDatatype
public java.lang.String getDatatype()
Returns the ECSV datatype handled by this encoder.- Returns:
- datatype string
-
getSubtype
public java.lang.String getSubtype()
Returns the ECSV subtype for this decoder.- Returns:
- subtype, may be null
-
createEncoder
public static EcsvEncoder createEncoder(uk.ac.starlink.table.ColumnInfo info, char delimiter)
Returns an encoder suitable for encoding data from a column with given metadata.- Parameters:
info
- column metadatadelimiter
- delimiter value, must be comma or space, required to determine quoting details- Returns:
- encoder, or null for unknown or unsupported data type
-
quoteString
public static java.lang.String quoteString(java.lang.String txt, char delimiter)
Returns a suitably escaped value of a string, ensuring that no ECSV control characters are present in the result.- Parameters:
txt
- raw stringdelimiter
- delimiter character to be avoided, must be comma or space- Returns:
- sanitised version of the string
-
-