Class AbstractGenerator
java.lang.Object
org.orekit.files.ccsds.utils.generation.AbstractGenerator
- All Implemented Interfaces:
AutoCloseable,Generator
- Direct Known Subclasses:
KvnGenerator,XmlGenerator
Base class for both Key-Value Notation and eXtended Markup Language generators for CCSDS messages.
- Since:
- 11.0
- Author:
- Luc Maisonobe
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractGenerator(Appendable output, String outputName, double maxRelativeOffset, boolean writeUnits, Formatter formatter) Simple constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close the generator.protected voidComplain about a missing value.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.voidenterSection(String name) Enter into a new section.Exit last section.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.unitsListToString(List<Unit> units) Convert a list of units to a bracketed string.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.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.booleanwriteUnits(Unit unit) Check if unit must be written.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.files.ccsds.utils.generation.Generator
endMessage, getFormat, startMessage, writeComments, writeEntry, writeEntry
-
Constructor Details
-
AbstractGenerator
protected AbstractGenerator(Appendable output, String outputName, double maxRelativeOffset, boolean writeUnits, Formatter formatter) Simple constructor.- Parameters:
output- destination of generated outputoutputName- output name for error messagesmaxRelativeOffset- maximum offset in seconds to use relative dates (if a date is too far from reference, it will be displayed as calendar elements)writeUnits- if true, units must be writtenformatter- how to format date and double to string.
-
-
Method Details
-
getOutputName
Get the name of the output (for error messages).- Specified by:
getOutputNamein interfaceGenerator- Returns:
- name of the output
-
getFormatter
Used to format dates and doubles to string.- Specified by:
getFormatterin interfaceGenerator- Returns:
- formatter
-
writeUnits
Check if unit must be written.- Parameters:
unit- entry unit- Returns:
- true if units must be written
-
close
Close the generator.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceGenerator- Throws:
IOException- if an I/O error occurs.
-
newLine
Finish current line.- Specified by:
newLinein interfaceGenerator- Throws:
IOException- if an I/O error occurs.
-
writeEntry
Write a single key/value entry.- Specified by:
writeEntryin interfaceGenerator- 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.- Specified by:
writeEntryin interfaceGenerator- 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
public void writeEntry(String key, TimeConverter converter, AbsoluteDate date, boolean forceCalendar, boolean mandatory) throws IOException Write a single key/value entry.- Specified by:
writeEntryin interfaceGenerator- 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.- Specified by:
writeEntryin interfaceGenerator- 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.- Specified by:
writeEntryin interfaceGenerator- 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.- Specified by:
writeEntryin interfaceGenerator- 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. UseGenerator.writeEntry(String, Integer, boolean)for integer values that may not be present.- Specified by:
writeEntryin interfaceGenerator- 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:
-
writeRawData
Write raw data.- Specified by:
writeRawDatain interfaceGenerator- Parameters:
data- raw data to write- Throws:
IOException- if an I/O error occurs.
-
writeRawData
Write raw data.- Specified by:
writeRawDatain interfaceGenerator- Parameters:
data- raw data to write- Throws:
IOException- if an I/O error occurs.
-
enterSection
Enter into a new section.- Specified by:
enterSectionin interfaceGenerator- Parameters:
name- section name- Throws:
IOException- if an I/O error occurs.
-
exitSection
Exit last section.- Specified by:
exitSectionin interfaceGenerator- Returns:
- section name
- Throws:
IOException- if an I/O error occurs.
-
complain
Complain about a missing value.- Parameters:
key- the keyword to writemandatory- if true, triggers en exception, otherwise do nothing
-
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.
- Specified by:
doubleToStringin interfaceGenerator- Parameters:
value- value to format- Returns:
- formatted value, with all original value accuracy preserved, or null
if value is null or
Double.NaN
-
dateToString
Convert a date to string value with high precision.- Specified by:
dateToStringin interfaceGenerator- 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.- Specified by:
dateToCalendarStringin interfaceGenerator- Parameters:
converter- converter for datesdate- date to write- Returns:
- date as a calendar string
-
dateToString
Convert a date to string value with high precision.- Specified by:
dateToStringin interfaceGenerator- Parameters:
year- yearmonth- monthday- dayhour- hourminute- minuteseconds- seconds- Returns:
- date as a string
-
unitsListToString
Convert a list of units to a bracketed string.- Specified by:
unitsListToStringin interfaceGenerator- 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.- Specified by:
siToCcsdsNamein interfaceGenerator- Parameters:
siName- si unit name- Returns:
- CCSDS name for the unit
-