// Path: src/main/java/com/urbanairship/datacube/Deserializer.java
// public interface Deserializer<O extends Op> {
//     O fromBytes(byte[] bytes);
// }


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.ArrayUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.io.hfile.Compression.Algorithm;
import org.apache.hadoop.hbase.regionserver.StoreFile.BloomType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.urbanairship.datacube.Deserializer;
/*
Copyright 2012 Urban Airship and Contributors
*/

package com.urbanairship.datacube.backfill;




public class HBaseBackfill implements Runnable {
    private static final Logger log = LoggerFactory.getLogger(HBaseBackfill.class);
    
    private final Configuration conf;
    private final HBaseBackfillCallback backfillCallback;
    private final byte[] liveDataTableName;
    private final byte[] snapshotTableName;
    private final byte[] backfillTableName;
    private final byte[] cf;
// Path: src/main/java/com/urbanairship/datacube/Deserializer.java
// public interface Deserializer<O extends Op> {
//     O fromBytes(byte[] bytes);
// }


// Path: src/main/java/com/urbanairship/datacube/backfill/HBaseBackfill.java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.ArrayUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.io.hfile.Compression.Algorithm;
import org.apache.hadoop.hbase.regionserver.StoreFile.BloomType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.urbanairship.datacube.Deserializer;

/*
Copyright 2012 Urban Airship and Contributors
*/

package com.urbanairship.datacube.backfill;




public class HBaseBackfill implements Runnable {
    private static final Logger log = LoggerFactory.getLogger(HBaseBackfill.class);
    
    private final Configuration conf;
    private final HBaseBackfillCallback backfillCallback;
    private final byte[] liveDataTableName;
    private final byte[] snapshotTableName;
    private final byte[] backfillTableName;
    private final byte[] cf;
    Class<? extends Deserializer<?>> opDeserializerCls;