public static WritableComparable createValue()

in java/mapreduce/src/java/org/apache/orc/mapred/OrcStruct.java [170:205]


  public static WritableComparable createValue(TypeDescription type) {
    switch (type.getCategory()) {
      case BOOLEAN: return new BooleanWritable();
      case BYTE: return new ByteWritable();
      case SHORT: return new ShortWritable();
      case INT: return new IntWritable();
      case LONG: return new LongWritable();
      case FLOAT: return new FloatWritable();
      case DOUBLE: return new DoubleWritable();
      case BINARY: return new BytesWritable();
      case CHAR:
      case VARCHAR:
      case STRING:
        return new Text();
      case DATE:
        return new DateWritable();
      case TIMESTAMP:
      case TIMESTAMP_INSTANT:
        return new OrcTimestamp();
      case DECIMAL:
        return new HiveDecimalWritable();
      case STRUCT: {
        OrcStruct result = new OrcStruct(type);
        int c = 0;
        for(TypeDescription child: type.getChildren()) {
          result.setFieldValue(c++, createValue(child));
        }
        return result;
      }
      case UNION: return new OrcUnion(type);
      case LIST: return new OrcList(type);
      case MAP: return new OrcMap(type);
      default:
        throw new IllegalArgumentException("Unknown type " + type);
    }
  }