package ch.unibe.scg.cells.hadoop; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import javax.inject.Inject; import org.apache.hadoop.hbase.client.HTable; import com.google.common.base.Charsets; class SerializableHTable implements Serializable { final private static long serialVersionUID = 1L; transient HTable hTable; final private HTableFactory tableFactory; @Inject SerializableHTable(HTable hTable, HTableFactory tableFactory) { this.hTable = hTable; this.tableFactory = tableFactory; } private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeUTF(new String(hTable.getTableName(), Charsets.UTF_8)); } private void readObject(ObjectInputStream in) throws ClassNotFoundException, IOException { in.defaultReadObject(); String tableName = in.readUTF(); hTable = tableFactory.make(tableName); } }