package com.mongodb.hadoop.pig.udf;
import com.mongodb.hadoop.pig.udf.types.PigBoxedBinary;
import org.apache.pig.data.DataByteArray;
import org.apache.pig.data.Tuple;
import java.io.IOException;
/**
* Pig UDF that transforms the incoming value into a BSON Binary object.
*/
public class ToBinary extends ByteArrayTypeEvalFunc<PigBoxedBinary> {
@Override
public PigBoxedBinary exec(final Tuple input) throws IOException {
if (null == input || input.size() == 0) {
return null;
}
Object o = input.get(0);
if (o instanceof String) {
return new PigBoxedBinary(((String) o).getBytes());
} else if (o instanceof DataByteArray) {
return new PigBoxedBinary(((DataByteArray) o).get());
}
throw new IOException(
"Need String or DataByteArray to build a Binary, not " + o);
}
}