class SPPEncoder implements MALEncoder, MALListEncoder {

	@Override
	public void encodeBlob(final Blob att) throws IllegalArgumentException, MALException {
		if (att == null) {
			throw new IllegalArgumentException(ILLEGAL_NULL_ARGUMENT);
		}
		// PENDING: Bug in MAL Java API: If the Blob is URL based, getLength() returns 0. Here:
		// Workaround by directly querying the length of the value byte array in this case.
		int length = att.isURLBased() ? att.getValue().length : att.getLength();
		encodeUInteger(new UInteger(length));
		byte[] value = att.getValue();
		if (null != value) {
			write(value);
		}
	}

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

}