class SPPEncoder implements MALEncoder, MALListEncoder {

	@Override
	public void encodeTime(final Time att) throws IllegalArgumentException, MALException {
		if (att == null) {
			throw new IllegalArgumentException(ILLEGAL_NULL_ARGUMENT);
		}
		// PENDING: Epoch for Time in MAL Java API unclear. Here: Use Java epoch.
		// Construct our own Java epoch due to bug in Orekit library (https://www.orekit.org/forge/issues/142).
		AbsoluteDate epoch = CCSDSTime.createEpoch(Configuration.JAVA_EPOCH, Configuration.JAVA_EPOCH_TIMESCALE);
		// Split into coarseTime and fineTime in order to minimize rounding errors.
		long ct = att.getValue() / 1000;
		double ft = (att.getValue() - ct * 1000) / 1000.0;
		AbsoluteDate coarseTime = new AbsoluteDate(epoch, ct);
		AbsoluteDate fineTime = coarseTime.shiftedBy(ft);
		byte[] tField = getTimeFormatter().getEncodedTime(coarseTime, fineTime, false);
		write(tField);
	}

	public  SPPEncoder(final OutputStream outputStream, final Map properties);

}