@Override
  public void transform(RowWindow rowWindow, PointCollector collector) throws Exception {
    TimestampRepair ts = new TimestampRepair(rowWindow.getRowIterator(), intervalMode, 2);
    ts.dpRepair();
    long[] timestamp = ts.getRepaired();
    double[] value = ts.getRepairedValue();
    switch (rowWindow.getDataType(0)) {
      case DOUBLE:
        for (int i = 0; i < timestamp.length; i++) {
          collector.putDouble(timestamp[i], value[i]);
        }
        break;
      case FLOAT:
        for (int i = 0; i < timestamp.length; i++) {
          collector.putFloat(timestamp[i], (float) value[i]);
        }
        break;
      case INT32:
        for (int i = 0; i < timestamp.length; i++) {
          collector.putInt(timestamp[i], (int) value[i]);
        }
        break;
      case INT64:
        for (int i = 0; i < timestamp.length; i++) {
          collector.putLong(timestamp[i], (long) value[i]);
        }
        break;
      case DATE:
      case TIMESTAMP:
      case BLOB:
      case BOOLEAN:
      case TEXT:
      case STRING:
      default:
        throw new UDFException("");
    }
  }
This function is used for timestamp repair.
library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFTimestampRepair.java