package org.pentaho.reporting.engine.classic.core.modules.misc.connections.parser; import org.pentaho.database.model.IDatabaseConnection; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class DatabaseConnectionCollection implements Serializable { private byte[] connections; public DatabaseConnectionCollection( final IDatabaseConnection[] result ) throws IOException { final ByteArrayOutputStream bout = new ByteArrayOutputStream(); final ObjectOutputStream out = new ObjectOutputStream( bout ); out.writeObject( result ); out.close(); connections = bout.toByteArray(); } public IDatabaseConnection[] getConnections() throws IOException { try { // return a copy, by deserializing the result. final ByteArrayInputStream bin = new ByteArrayInputStream( connections ); final ObjectInputStream in = new ObjectInputStream( bin ); return (IDatabaseConnection[]) in.readObject(); } catch ( ClassNotFoundException e ) { throw new IOException( "Unable to deserialize database connections.", e ); } } }