package ecologylab.serialization.types.scalar; import java.nio.ByteBuffer; import ecologylab.generic.Base64Coder; import ecologylab.serialization.ScalarUnmarshallingContext; import ecologylab.serialization.TranslationContext; import ecologylab.serialization.annotations.simpl_inherit; import ecologylab.serialization.types.CrossLanguageTypeConstants; import ecologylab.serialization.types.ScalarType; @simpl_inherit public class BinaryDataType extends ScalarType<ByteBuffer> implements CrossLanguageTypeConstants { public BinaryDataType() { super(ByteBuffer.class, DOTNET_BINARY_DATA, null, null); } /** * read the Base64 encoded string . convert to byte array. */ @Override public ByteBuffer getInstance(String value, String[] formatStrings, ScalarUnmarshallingContext scalarUnmarshallingContext) { return ByteBuffer.wrap(Base64Coder.decode(value)); } /** * read the binary content of the input byteBuffer, and encode it using Base64 */ @Override public String marshall(ByteBuffer input, TranslationContext serializationContext) { return new String(Base64Coder.encode(input.array())); } }