package ecologylab.serialization.serializers.binaryformats;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import ecologylab.serialization.SIMPLTranslationException;
import ecologylab.serialization.TranslationContext;
import ecologylab.serialization.XMLTools;
import ecologylab.serialization.serializers.FormatSerializer;
public abstract class BinarySerializer extends FormatSerializer
{
@Override
public void serialize(Object object, OutputStream outputStream,
TranslationContext translationContext) throws SIMPLTranslationException
{
serialize(object, new DataOutputStream(outputStream), translationContext);
}
@Override
public void serialize(Object object, File outputFile, TranslationContext translationContext)
throws SIMPLTranslationException
{
try
{
XMLTools.createParentDirs(outputFile);
if (outputFile.getParentFile() != null)
translationContext.setBaseDirFile(outputFile.getParentFile());
FileOutputStream fStream = new FileOutputStream(outputFile);
serialize(object, fStream, translationContext);
fStream.close();
}
catch (IOException e)
{
throw new SIMPLTranslationException("IO Exception: ", e);
}
}
/**
*
* @param object
* @param dataOutputStream
* @param translationContext
* @throws SIMPLTranslationException
*/
public abstract void serialize(Object object, DataOutputStream dataOutputStream,
TranslationContext translationContext) throws SIMPLTranslationException;
}