package at.ac.ait.archistar.engine.dataobjects; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /** * convert incoming user file objects into byte arrays (and vice versa) * * @author andy */ public class CustomSerializer implements Serializer { @Override public byte[] serialize(FSObject input) { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try (ObjectOutputStream out = new ObjectOutputStream(bos)) { out.writeObject(input); } return bos.toByteArray(); } catch (IOException e) { return new byte[0]; } } @Override public FSObject deserialize(byte[] data) { if (data == null) { return null; } try (ObjectInputStream reader = new ObjectInputStream(new ByteArrayInputStream(data))){ return (FSObject) reader.readObject(); } catch (IOException | ClassNotFoundException e) { assert(false); } return null; } }