in yoko-core/src/main/java/org/apache/yoko/orb/OB/IORUtil.java [318:393]
public static void dump_octets(final byte[] oct, final int offset, final int count, final StringBuilder sb) {
if (count <= 0) {
return;
}
final StringBuilder ascii = new StringBuilder(18);
switch (offset%0x10) {
case 0:
break;
case 0xf: sb.append(" "); ascii.append(" ");
case 0xe: sb.append(" "); ascii.append(" ");
case 0xd: sb.append(" "); ascii.append(" ");
case 0xc: sb.append(" "); ascii.append(" ");
case 0xb: sb.append(" "); ascii.append(" ");
case 0xa: sb.append(" "); ascii.append(" ");
case 0x9: sb.append(" "); ascii.append(" ");
case 0x8: sb.append(" "); ascii.append(" ");
case 0x7: sb.append(" "); ascii.append(" ");
case 0x6: sb.append(" "); ascii.append(" ");
case 0x5: sb.append(" "); ascii.append(" ");
case 0x4: sb.append(" "); ascii.append(" ");
case 0x3: sb.append(" "); ascii.append(" ");
case 0x2: sb.append(" "); ascii.append(" ");
case 0x1: sb.append(" "); ascii.append(" ");
}
ascii.append(" \"");
for (int i = offset; i < (offset + count); i++) {
final int b = oct[i] & 0xff;
// build up the ascii string for the end of the line
ascii.append((PRINTABLE_CHAR_LOW < b && b < PRINTABLE_CHAR_HIGH)? (char)b : '.');
// print the high hex nybble
sb.append(HEX_DIGIT[b>>4]);
// and the low hex nybble
sb.append(HEX_DIGIT[b&0xf]);
if (i%0x4 == (0x4-1)) {
// space the columns on every 4-byte boundary
sb.append(' ');
if (i%0x10 == (0x10-1)) {
// write the ascii interpretation on the end of every line
sb.append(ascii).append("\"\n");
ascii.setLength(0);
ascii.append(" \"");
if (i%0x100 == (0x100-1)) {
// separating line every 0x100 bytes
// 00000000 00000000 00000000 00000000 "................"
sb.append("-----------------------------------\n");
}
}
}
}
switch ((offset+count)%0x10) {
case 0:
break;
case 0x1: sb.append(" ");
case 0x2: sb.append(" ");
case 0x3: sb.append(" ");
case 0x4: sb.append(" ");
case 0x5: sb.append(" ");
case 0x6: sb.append(" ");
case 0x7: sb.append(" ");
case 0x8: sb.append(" ");
case 0x9: sb.append(" ");
case 0xa: sb.append(" ");
case 0xb: sb.append(" ");
case 0xc: sb.append(" ");
case 0xd: sb.append(" ");
case 0xe: sb.append(" ");
case 0xf: sb.append(" ").append(ascii).append("\"\n");
}
}