Interface Generator
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
AbstractGenerator,KvnGenerator,XmlGenerator
Generation interface for CCSDS messages.
- Since:
- 11.0
- Author:
- Luc Maisonobe
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close the generator.dateToCalendarString(TimeConverter converter, AbsoluteDate date) Convert a date to calendar string value with high precision.dateToString(int year, int month, int day, int hour, int minute, double seconds) Convert a date to string value with high precision.dateToString(TimeConverter converter, AbsoluteDate date) Convert a date to string value with high precision.doubleToString(double value) Convert a double to string value with high precision.voidendMessage(String root) End CCSDS message.voidenterSection(String name) Enter into a new section.Exit last section.Get the generated file format.Used to format dates and doubles to string.Get the name of the output (for error messages).voidnewLine()Finish current line.siToCcsdsName(String siName) Convert a SI unit name to a CCSDS name.voidstartMessage(String root, String messageTypeKey, double version) Start CCSDS message.unitsListToString(List<Unit> units) Convert a list of units to a bracketed string.voidwriteComments(List<String> comments) Write comment lines.voidwriteEntry(String key, char value, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, double value, Unit unit, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, int value, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, Double value, Unit unit, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, Enum<?> value, boolean mandatory) Write a single key/value entry.default voidwriteEntry(String key, Integer value, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, String value, Unit unit, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, List<String> value, boolean mandatory) Write a single key/value entry.voidwriteEntry(String key, TimeConverter converter, AbsoluteDate date, boolean forceCalendar, boolean mandatory) Write a single key/value entry.voidwriteRawData(char data) Write raw data.voidwriteRawData(CharSequence data) Write raw data.
-
Method Details
-
getOutputName
String getOutputName()Get the name of the output (for error messages).- Returns:
- name of the output
-
getFormat
FileFormat getFormat()Get the generated file format.- Returns:
- generated file format
-
getFormatter
Formatter getFormatter()Used to format dates and doubles to string.- Returns:
- formatter
-
startMessage
Start CCSDS message.- Parameters:
root- root element for XML filesmessageTypeKey- key for message typeversion- format version- Throws:
IOException- if an I/O error occurs.
-
endMessage
End CCSDS message.- Parameters:
root- root element for XML files- Throws:
IOException- if an I/O error occurs.
-
writeComments
Write comment lines.- Parameters:
comments- comments to write- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to writeunit- output unit (may be null)mandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to writemandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to writemandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
void writeEntry(String key, TimeConverter converter, AbsoluteDate date, boolean forceCalendar, boolean mandatory) throws IOException Write a single key/value entry.- Parameters:
key- the keyword to writeconverter- converter to use for datesdate- the date to writeforceCalendar- if true, the date is forced to calendar formatmandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to writemandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.Note that the
mandatoryflag has no effect and a value is always written because the whole domain ofvalueis treated as valid. UsewriteEntry(String, Integer, boolean)for integer values that may not be present.- Parameters:
key- the keyword to writevalue- the value to writemandatory- if true, null values triggers exception, otherwise they are silently ignored.- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to writemandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to write (in SI units)unit- output unitmandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Parameters:
key- the keyword to writevalue- the value to write (in SI units)unit- output unitmandatory- if true, null values triggers exception, otherwise they are silently ignored- Throws:
IOException- if an I/O error occurs.
-
newLine
Finish current line.- Throws:
IOException- if an I/O error occurs.
-
writeRawData
Write raw data.- Parameters:
data- raw data to write- Throws:
IOException- if an I/O error occurs.
-
writeRawData
Write raw data.- Parameters:
data- raw data to write- Throws:
IOException- if an I/O error occurs.
-
enterSection
Enter into a new section.- Parameters:
name- section name- Throws:
IOException- if an I/O error occurs.
-
exitSection
Exit last section.- Returns:
- section name
- Throws:
IOException- if an I/O error occurs.
-
close
Close the generator.- Specified by:
closein interfaceAutoCloseable- Throws:
IOException- if an I/O error occurs.
-
dateToString
Convert a date to string value with high precision.- Parameters:
converter- converter for datesdate- date to write- Returns:
- date as a string (may be either a relative date or a calendar date)
-
dateToCalendarString
Convert a date to calendar string value with high precision.- Parameters:
converter- converter for datesdate- date to write- Returns:
- date as a calendar string
- Since:
- 12.0
-
dateToString
Convert a date to string value with high precision.- Parameters:
year- yearmonth- monthday- dayhour- hourminute- minuteseconds- seconds- Returns:
- date as a string
-
doubleToString
Convert a double to string value with high precision.We don't want to loose internal accuracy when writing doubles but we also don't want to have ugly representations like STEP = 1.25000000000000000 so we try a few simple formats first and fall back to scientific notation if it doesn't work.
- Parameters:
value- value to format- Returns:
- formatted value, with all original value accuracy preserved, or null
if value is null or
Double.NaN
-
unitsListToString
Convert a list of units to a bracketed string.- Parameters:
units- lists to output (may be null or empty)- Returns:
- bracketed string (null if units list is null or empty)
-
siToCcsdsName
Convert a SI unit name to a CCSDS name.- Parameters:
siName- si unit name- Returns:
- CCSDS name for the unit
-