More friendly output of byte arrays for property values in HSMFDump
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1496982 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
43886b815b
commit
c5893c8c34
@ -62,6 +62,42 @@ public class ByteChunk extends Chunk {
|
|||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the data in a debug-friendly string format
|
||||||
|
*/
|
||||||
|
public String toString() {
|
||||||
|
return toDebugFriendlyString(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Formats the byte array in a debug-friendly way,
|
||||||
|
* showing all of a short array, and the start of a
|
||||||
|
* longer one.
|
||||||
|
*/
|
||||||
|
protected static String toDebugFriendlyString(byte[] value) {
|
||||||
|
if (value == null)
|
||||||
|
return "(Null Byte Array)";
|
||||||
|
|
||||||
|
StringBuffer text = new StringBuffer();
|
||||||
|
text.append("Bytes len=").append(value.length);
|
||||||
|
text.append(" [");
|
||||||
|
|
||||||
|
int limit = Math.min(value.length, 16);
|
||||||
|
if (value.length > 16) {
|
||||||
|
limit = 12;
|
||||||
|
}
|
||||||
|
for (int i=0; i<limit; i++) {
|
||||||
|
if (i > 0)
|
||||||
|
text.append(',');
|
||||||
|
text.append(value[i]);
|
||||||
|
}
|
||||||
|
if (value.length > 16) {
|
||||||
|
text.append(",....");
|
||||||
|
}
|
||||||
|
text.append("]");
|
||||||
|
return text.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the data, formatted as a string assuming it
|
* Returns the data, formatted as a string assuming it
|
||||||
* was a non-unicode string.
|
* was a non-unicode string.
|
||||||
|
@ -60,7 +60,16 @@ public class PropertyValue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return property + " = " + getValue();
|
Object v = getValue();
|
||||||
|
if (v == null)
|
||||||
|
return "(No value available)";
|
||||||
|
|
||||||
|
if (v instanceof byte[]) {
|
||||||
|
return ByteChunk.toDebugFriendlyString((byte[])v);
|
||||||
|
} else {
|
||||||
|
// Just use the normal toString on the value
|
||||||
|
return v.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO classes for the other important value types
|
// TODO classes for the other important value types
|
||||||
|
Loading…
Reference in New Issue
Block a user