package com.twitter.elephantbird.pig.util;
import com.google.protobuf.Message;
import com.twitter.elephantbird.mapreduce.io.ProtobufWritable;
/**
* @author Andy Schlaikjer
*/
public abstract class AbstractTestProtobufWritableConverter<M extends Message> extends
AbstractTestWritableConverter<ProtobufWritable<M>, ProtobufWritableConverter<M>> {
public AbstractTestProtobufWritableConverter(Class<M> protobufClass, ProtobufWritable<M>[] data,
String[] expected, String valueSchema) {
super(castProtobufWritableClass(protobufClass, ProtobufWritable.class),
castProtobufWritableConverterClass(protobufClass, ProtobufWritableConverter.class),
protobufClass.getName(), data, expected, valueSchema);
}
@SuppressWarnings("unchecked")
private static <M extends Message> Class<ProtobufWritable<M>> castProtobufWritableClass(
Class<M> protobufClass, Class<?> cls) {
return (Class<ProtobufWritable<M>>) cls;
}
@SuppressWarnings("unchecked")
private static <M extends Message> Class<ProtobufWritableConverter<M>> castProtobufWritableConverterClass(
Class<M> protobufClass, Class<?> cls) {
return (Class<ProtobufWritableConverter<M>>) cls;
}
}