Add Dumper support for outputting multiline strings

PiperOrigin-RevId: 570348425
This commit is contained in:
jbibik 2023-10-03 04:45:20 -07:00 committed by Copybara-Service
parent c8aac24ffd
commit b83f12c4ba
2 changed files with 19 additions and 6 deletions

View File

@ -1029,7 +1029,7 @@ public final class Util {
}
/**
* Splits a string using {@code value.split(regex, -1}). Note: this is is similar to {@link
* Splits a string using {@code value.split(regex, -1}). Note: this is similar to {@link
* String#split(String)} but empty matches at the end of the string will not be omitted from the
* returned array.
*

View File

@ -15,9 +15,12 @@
*/
package androidx.media3.test.utils;
import static androidx.media3.common.util.Assertions.checkNotNull;
import androidx.annotation.Nullable;
import androidx.media3.common.C;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Arrays;
import java.util.Locale;
@ -47,7 +50,16 @@ public final class Dumper {
@CanIgnoreReturnValue
public Dumper add(String field, @Nullable Object value) {
return addString(field + " = " + value + '\n');
checkNotNull(value);
String[] lines = Util.split(value.toString(), "\n");
addLine(field + " = " + lines[0]);
int fieldValueAdditionalIndent = field.length() + 3;
indent += fieldValueAdditionalIndent;
for (int i = 1; i < lines.length; i++) {
addLine(lines[i]);
}
indent -= fieldValueAdditionalIndent;
return this;
}
@CanIgnoreReturnValue
@ -61,11 +73,11 @@ public final class Dumper {
String string =
String.format(
Locale.US,
"%s = length %d, hash %X\n",
"%s = length %d, hash %X",
field,
value == null ? 0 : value.length,
Arrays.hashCode(value));
return addString(string);
return addLine(string);
}
@CanIgnoreReturnValue
@ -75,7 +87,7 @@ public final class Dumper {
@CanIgnoreReturnValue
public Dumper startBlock(String name) {
addString(name + ":\n");
addLine(name + ":");
indent += INDENT_SIZE_IN_SPACES;
return this;
}
@ -92,11 +104,12 @@ public final class Dumper {
}
@CanIgnoreReturnValue
private Dumper addString(String string) {
private Dumper addLine(String string) {
for (int i = 0; i < indent; i++) {
sb.append(' ');
}
sb.append(string);
sb.append('\n');
return this;
}
}