in gobblin-compaction/src/main/java/org/apache/gobblin/compaction/mapreduce/orc/OrcUtils.java [321:411]
public static void handlePrimitiveWritableComparable(WritableComparable from, WritableComparable to) {
if (from instanceof ByteWritable) {
if (to instanceof ByteWritable) {
((ByteWritable) to).set(((ByteWritable) from).get());
return;
} else if (to instanceof ShortWritable) {
((ShortWritable) to).set(((ByteWritable) from).get());
return;
} else if (to instanceof IntWritable) {
((IntWritable) to).set(((ByteWritable) from).get());
return;
} else if (to instanceof LongWritable) {
((LongWritable) to).set(((ByteWritable) from).get());
return;
} else if (to instanceof DoubleWritable) {
((DoubleWritable) to).set(((ByteWritable) from).get());
return;
}
} else if (from instanceof ShortWritable) {
if (to instanceof ShortWritable) {
((ShortWritable) to).set(((ShortWritable) from).get());
return;
} else if (to instanceof IntWritable) {
((IntWritable) to).set(((ShortWritable) from).get());
return;
} else if (to instanceof LongWritable) {
((LongWritable) to).set(((ShortWritable) from).get());
return;
} else if (to instanceof DoubleWritable) {
((DoubleWritable) to).set(((ShortWritable) from).get());
return;
}
} else if (from instanceof IntWritable) {
if (to instanceof IntWritable) {
((IntWritable) to).set(((IntWritable) from).get());
return;
} else if (to instanceof LongWritable) {
((LongWritable) to).set(((IntWritable) from).get());
return;
} else if (to instanceof DoubleWritable) {
((DoubleWritable) to).set(((IntWritable) from).get());
return;
}
} else if (from instanceof LongWritable) {
if (to instanceof LongWritable) {
((LongWritable) to).set(((LongWritable) from).get());
return;
} else if (to instanceof DoubleWritable) {
((DoubleWritable) to).set(((LongWritable) from).get());
return;
}
// Following from this branch, type-widening is not allowed and only value-copy will happen.
} else if (from instanceof DoubleWritable) {
if (to instanceof DoubleWritable) {
((DoubleWritable) to).set(((DoubleWritable) from).get());
return;
}
} else if (from instanceof BytesWritable) {
if (to instanceof BytesWritable) {
((BytesWritable) to).set((BytesWritable) from);
return;
}
} else if (from instanceof FloatWritable) {
if (to instanceof FloatWritable) {
((FloatWritable) to).set(((FloatWritable) from).get());
return;
}
} else if (from instanceof Text) {
if (to instanceof Text) {
((Text) to).set((Text) from);
return;
}
} else if (from instanceof DateWritable) {
if (to instanceof DateWritable) {
((DateWritable) to).set(((DateWritable) from).get());
return;
}
} else if (from instanceof OrcTimestamp && to instanceof OrcTimestamp) {
((OrcTimestamp) to).set(((OrcTimestamp) from).toString());
return;
} else if (from instanceof HiveDecimalWritable && to instanceof HiveDecimalWritable) {
((HiveDecimalWritable) to).set(((HiveDecimalWritable) from).getHiveDecimal());
return;
} else if (from instanceof BooleanWritable && to instanceof BooleanWritable) {
((BooleanWritable) to).set(((BooleanWritable) from).get());
return;
}
throw new UnsupportedOperationException(String
.format("The conversion of primitive-type WritableComparable object from %s to %s is not supported",
from.getClass(), to.getClass()));
}