public static void handlePrimitiveWritableComparable()

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()));
  }