in iotdb-collector/collector-core/src/main/java/org/apache/iotdb/collector/utils/sorter/PipeTabletEventSorter.java [31:93]
public static Object reorderValueList(
final int deduplicatedSize,
final Object valueList,
final TSDataType dataType,
final Integer[] index) {
switch (dataType) {
case BOOLEAN:
final boolean[] boolValues = (boolean[]) valueList;
final boolean[] deduplicatedBoolValues = new boolean[boolValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedBoolValues[i] = boolValues[index[i]];
}
return deduplicatedBoolValues;
case INT32:
final int[] intValues = (int[]) valueList;
final int[] deduplicatedIntValues = new int[intValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedIntValues[i] = intValues[index[i]];
}
return deduplicatedIntValues;
case DATE:
final LocalDate[] dateValues = (LocalDate[]) valueList;
final LocalDate[] deduplicatedDateValues = new LocalDate[dateValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedDateValues[i] = dateValues[index[i]];
}
return deduplicatedDateValues;
case INT64:
case TIMESTAMP:
final long[] longValues = (long[]) valueList;
final long[] deduplicatedLongValues = new long[longValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedLongValues[i] = longValues[index[i]];
}
return deduplicatedLongValues;
case FLOAT:
final float[] floatValues = (float[]) valueList;
final float[] deduplicatedFloatValues = new float[floatValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedFloatValues[i] = floatValues[index[i]];
}
return deduplicatedFloatValues;
case DOUBLE:
final double[] doubleValues = (double[]) valueList;
final double[] deduplicatedDoubleValues = new double[doubleValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedDoubleValues[i] = doubleValues[index[i]];
}
return deduplicatedDoubleValues;
case TEXT:
case BLOB:
case STRING:
final Binary[] binaryValues = (Binary[]) valueList;
final Binary[] deduplicatedBinaryValues = new Binary[binaryValues.length];
for (int i = 0; i < deduplicatedSize; i++) {
deduplicatedBinaryValues[i] = binaryValues[index[i]];
}
return deduplicatedBinaryValues;
default:
throw new UnSupportedDataTypeException(
String.format("Data type %s is not supported.", dataType));
}
}