return;
}
final Writable[] subValues = array.get();
final int fieldCount = type.getFieldCount();
for (int field = 0; field < fieldCount; ++field) {
final Type subType = type.getType(field);
recordConsumer.startField(subType.getName(), field);
for (int i = 0; i < subValues.length; ++i) {
final Writable subValue = subValues[i];
if (subValue != null) {
if (subType.isPrimitive()) {
if (subValue instanceof ArrayWritable) {
writePrimitive(((ArrayWritable) subValue).get()[field]);// 0 ?
} else {
writePrimitive(subValue);
}
} else {
if (!(subValue instanceof ArrayWritable)) {
throw new RuntimeException("This should be a ArrayWritable: " + subValue);
} else {
recordConsumer.startGroup();
writeData((ArrayWritable) subValue, subType.asGroupType());
recordConsumer.endGroup();
}
}
}
}
recordConsumer.endField(subType.getName(), field);
}
}