@Override
  public String toString() {
    return attributes.entrySet().stream()
        .collect(
            Collectors.toMap(
                Entry::getKey,
                entry -> {
                  final String value = ValueHider.hide(entry.getKey(), entry.getValue());
                  return value == null ? "null" : value;
                },
                (v1, v2) -> {
                  final boolean v1IsNull = isNullValue(v1);
                  final boolean v2IsNull = isNullValue(v2);
                  if (v1IsNull && v2IsNull) {
                    return "null";
                  }
                  if (v1IsNull) {
                    return v2;
                  }
                  if (v2IsNull) {
                    return v1;
                  }
                  return v1;
                },
                TreeMap::new))
        .toString();
  }
When exposing the content of this `PipeParameters` to external sources (such as `show pipes` or
logging), please use this `toString` method to prevent the leakage of private information.
iotdb-api/pipe-api/src/main/java/org/apache/iotdb/pipe/api/customizer/parameter/PipeParameters.java