package org.bigtop.bigpetstore.generator;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.mapreduce.InputSplit;
import org.bigtop.bigpetstore.generator.TransactionIteratorFactory.STATE;
/**
* What does an `InputSplit` actually do? From the Javadocs, it looks like ...
* absolutely nothing.
*
* Note: for some reason, you *have* to implement Writable, even if your methods
* do nothing, or you will got strange and un-debuggable null pointer
* exceptions.
*/
public class PetStoreTransactionInputSplit extends InputSplit implements
Writable {
public PetStoreTransactionInputSplit() {
}
public int records;
public STATE state;
public PetStoreTransactionInputSplit(int records, STATE state) {
this.records = records;
this.state = state;
}
public void readFields(DataInput arg0) throws IOException {
records = arg0.readInt();
state = STATE.valueOf(arg0.readUTF());
}
public void write(DataOutput arg0) throws IOException {
arg0.writeInt(records);
arg0.writeUTF(state.name());
}
@Override
public String[] getLocations() throws IOException, InterruptedException {
return new String[] {};
}
@Override
public long getLength() throws IOException, InterruptedException {
return 100;
}
}