Java源码示例:org.apache.hadoop.hive.serde2.objectinspector.SettableListObjectInspector

示例1
@Override
public void add(StdData e) {
  if (_listObjectInspector instanceof SettableListObjectInspector) {
    SettableListObjectInspector settableListObjectInspector = (SettableListObjectInspector) _listObjectInspector;
    int originalSize = size();
    settableListObjectInspector.resize(_object, originalSize + 1);
    settableListObjectInspector.set(_object, originalSize,
        ((HiveData) e).getUnderlyingDataForObjectInspector(_elementObjectInspector));
    _isObjectModified = true;
  } else {
    throw new RuntimeException("Attempt to modify an immutable Hive object of type: "
        + _listObjectInspector.getClass());
  }
}
 
示例2
/**
 * Returns a converter that converts objects from one OI to another OI. The
 * returned (converted) object does not belong to the converter. Hence once convertor can be used
 * multiple times within one eval invocation.
 */
public Converter getConverter(ObjectInspector inputOI, ObjectInspector outputOI) {
  // If the inputOI is the same as the outputOI, just return an
  // IdentityConverter.
  if (inputOI.equals(outputOI)) {
    return new ObjectInspectorConverters.IdentityConverter();
  }
  Converter c = getConverterFromCache(inputOI, outputOI);
  if (c != null) {
    return c;
  }
  switch (outputOI.getCategory()) {
    case PRIMITIVE:
      return getConverter((PrimitiveObjectInspector) inputOI, (PrimitiveObjectInspector) outputOI);
    case STRUCT:
      c = new StructConverter(inputOI, (SettableStructObjectInspector) outputOI);
      break;
    case LIST:
      c = new ListConverter(inputOI, (SettableListObjectInspector) outputOI);
      break;
    case MAP:
      c = new MapConverter(inputOI, (SettableMapObjectInspector) outputOI);
      break;
    default:
      throw new UnsupportedOperationException(
          "Hive internal error: conversion of " + inputOI.getTypeName() + " to " + outputOI.getTypeName()
              + " not supported yet.");
  }
  cacheConverter(inputOI, outputOI, c);
  return c;
}
 
示例3
public ListConverter(ObjectInspector inputOI, SettableListObjectInspector outputOI) {
  if (inputOI instanceof ListObjectInspector) {
    this.inputOI = (ListObjectInspector) inputOI;
    this.outputOI = outputOI;
    inputElementOI = this.inputOI.getListElementObjectInspector();
    outputElementOI = outputOI.getListElementObjectInspector();
    elementConverter = getConverter(inputElementOI, outputElementOI);
  } else if (!(inputOI instanceof VoidObjectInspector)) {
    throw new UnsupportedOperationException(
        "Hive internal error: conversion of " + inputOI.getTypeName() + " to " + outputOI.getTypeName()
            + "not supported yet.");
  }
}