public abstract class AbstractGenerator extends Object implements Generator
Constructor and Description |
---|
AbstractGenerator(Appendable output, String outputName, double maxRelativeOffset, boolean writeUnits)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
关闭生成器。
|
protected void |
complain(String key, boolean mandatory)
报告缺少值。
|
String |
dateToCalendarString(TimeConverter converter, AbsoluteDate date)
将日期转换为具有高精度的日历字符串值。
|
String |
dateToString(int year, int month, int day, int hour, int minute, double seconds)
将日期转换为具有高精度的字符串值。
|
String |
dateToString(TimeConverter converter, AbsoluteDate date)
将日期转换为具有高精度的字符串值。
|
String |
doubleToString(double value)
将双精度数转换为具有高精度的字符串值。
|
void |
enterSection(String name)
进入新的部分。
|
String |
exitSection()
退出上一个部分。
|
String |
getOutputName()
获取输出的名称(用于错误消息)。
|
void |
newLine()
完成当前行。
|
String |
siToCcsdsName(String siName)
将SI单位名称转换为CCSDS名称。
|
String |
unitsListToString(List<Unit> units)
将单位列表转换为带括号的字符串。
|
void |
writeEntry(String key, char value, boolean mandatory)
写入单个键/值条目。
|
void |
writeEntry(String key, double value, Unit unit, boolean mandatory)
写入单个键/值条目。
|
void |
writeEntry(String key, Double value, Unit unit, boolean mandatory)
写入单个键/值条目。
|
void |
writeEntry(String key, Enum<?> value, boolean mandatory)
写入单个键/值条目。
|
void |
writeEntry(String key, int value, boolean mandatory)
写入单个键/值条目。
|
void |
writeEntry(String key, List<String> value, boolean mandatory)
写入单个键/值条目。
|
void |
writeEntry(String key, TimeConverter converter, AbsoluteDate date, boolean forceCalendar, boolean mandatory)
写入单个键/值条目。
|
void |
writeRawData(char data)
写入原始数据。
|
void |
writeRawData(CharSequence data)
写入原始数据。
|
boolean |
writeUnits(Unit unit)
检查是否必须写入单位。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
endMessage, getFormat, startMessage, writeComments, writeEntry
public AbstractGenerator(Appendable output, String outputName, double maxRelativeOffset, boolean writeUnits)
output
- 生成输出的目的地
outputName
- 用于错误消息的输出名称
maxRelativeOffset
- 使用相对日期的最大偏移量(如果日期与参考日期相距太远,则将其显示为日历元素)
writeUnits
- 如果为true,则必须写入单位
public String getOutputName()
getOutputName
在接口 Generator
public boolean writeUnits(Unit unit)
unit
- 条目单位
public void close() throws IOException
close
在接口 AutoCloseable
close
在接口 Generator
IOException
- 如果发生I/O错误。
public void newLine() throws IOException
newLine
在接口 Generator
IOException
- 如果发生I/O错误。
public void writeEntry(String key, List<String> value, boolean mandatory) throws IOException
writeEntry
在接口 Generator
key
- 要写入的关键字
value
- 要写入的值
mandatory
- 如果为true,则空值会触发异常,否则它们会被静默忽略
IOException
- 如果发生I/O错误。
public void writeEntry(String key, Enum<?> value, boolean mandatory) throws IOException
writeEntry
在接口 Generator
key
- 要写入的关键字
value
- 要写入的值
mandatory
- 如果为true,则空值会触发异常,否则它们会被静默忽略
IOException
- 如果发生I/O错误。
public void writeEntry(String key, TimeConverter converter, AbsoluteDate date, boolean forceCalendar, boolean mandatory) throws IOException
writeEntry
在接口 Generator
key
- 要写入的关键字
converter
- 用于日期的转换器
date
- 要写入的日期
forceCalendar
- 如果为true,则日期被强制为日历格式
mandatory
- 如果为true,则空值会触发异常,否则它们会被静默忽略
IOException
- 如果发生I/O错误。
public void writeEntry(String key, double value, Unit unit, boolean mandatory) throws IOException
writeEntry
在接口 Generator
key
- 要写入的关键字
value
- 要写入的值(以SI单位)
unit
- 输出单位
mandatory
- 如果为true,则空值会触发异常,否则它们会被静默忽略
IOException
- 如果发生I/O错误。
public void writeEntry(String key, Double value, Unit unit, boolean mandatory) throws IOException
writeEntry
在接口 Generator
key
- 要写入的关键字
value
- 要写入的值(以SI单位)
unit
- 输出单位
mandatory
- 如果为true,则空值会触发异常,否则它们会被静默忽略
IOException
- 如果发生I/O错误。
public void writeEntry(String key, char value, boolean mandatory) throws IOException
writeEntry
in interface Generator
key
- the keyword to write
value
- the value to write
mandatory
- if true, null values triggers exception, otherwise they are silently ignored
IOException
- if an I/O error occurs.
public void writeEntry(String key, int value, boolean mandatory) throws IOException
writeEntry
在接口 Generator
key
- 要写入的关键字
value
- 要写入的值
mandatory
- 如果为true,则触发异常,否则将被静默忽略
IOException
- 如果发生I/O错误。
public void writeRawData(char data) throws IOException
writeRawData
在接口 Generator
data
- 要写入的原始数据
IOException
- 如果发生I/O错误。
public void writeRawData(CharSequence data) throws IOException
writeRawData
在接口 Generator
data
- 要写入的原始数据
IOException
- 如果发生I/O错误。
public void enterSection(String name) throws IOException
enterSection
在接口 Generator
name
- 部分名称
IOException
- 如果发生I/O错误。
public String exitSection() throws IOException
exitSection
在接口 Generator
IOException
- 如果发生I/O错误。
protected void complain(String key, boolean mandatory)
key
- 要写入的关键字
mandatory
- 如果为true,则触发异常,否则不执行任何操作
public String doubleToString(double value)
在写入双精度数时,我们不希望丢失内部精度,但我们也不希望出现 STEP = 1.25000000000000000 这样的丑陋表示,因此我们首先尝试几种简单的格式,如果不起作用,则退回到科学计数法。
doubleToString
在接口 Generator
value
- 要格式化的值
Double.NaN
则返回null
public String dateToString(TimeConverter converter, AbsoluteDate date)
dateToString
在接口 Generator
converter
- 日期转换器
date
- 要写入的日期
public String dateToCalendarString(TimeConverter converter, AbsoluteDate date)
dateToCalendarString
在接口 Generator
converter
- 日期转换器
date
- 要写入的日期
public String dateToString(int year, int month, int day, int hour, int minute, double seconds)
dateToString
在接口 Generator
year
- 年
month
- 月
day
- 日
hour
- 小时
minute
- 分钟
seconds
- 秒
public String unitsListToString(List<Unit> units)
unitsListToString
在接口 Generator
units
- 要输出的列表(可以为null或空)
public String siToCcsdsName(String siName)
siToCcsdsName
在接口 Generator
siName
- SI单位名称
Copyright © 2002-2023 CS GROUP. All rights reserved.