From: Sergey Vladimirov Date: Tue, 23 Aug 2011 15:10:37 +0000 (+0000) Subject: dump FIB field values (starting from 154 offset) X-Git-Tag: REL_3_8_BETA5~216 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=56fe9f8685847cb7ae96818807d4597d32ef1d3b;p=poi.git dump FIB field values (starting from 154 offset) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1160735 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java b/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java index b2f4ce51db..a3b4f398a0 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java @@ -248,4 +248,59 @@ public final class FIBFieldHandler } } } + + private static String leftPad( String text, int value, char padChar ) + { + if ( text.length() >= value ) + return text; + + StringBuilder result = new StringBuilder(); + for ( int i = 0; i < ( value - text.length() ); i++ ) + { + result.append( padChar ); + } + result.append( text ); + return result.toString(); + } + + @Override + public String toString() + { + StringBuilder result = new StringBuilder(); + result.append( "[FIBFieldHandler]:\n" ); + + result.append( "\tFields:\n" ); + result.append( "\t" ); + result.append( leftPad( "Index", 8, ' ' ) ); + result.append( leftPad( "FIB offset", 15, ' ' ) ); + result.append( leftPad( "Offset", 8, ' ' ) ); + result.append( leftPad( "Size", 8, ' ' ) ); + result.append( '\n' ); + for ( int x = 0; x < _fields.length / 2; x++ ) + { + result.append( '\t' ); + result.append( leftPad( Integer.toString( x ), 8, ' ' ) ); + result.append( leftPad( + Integer.toString( 154 + x * LittleEndian.INT_SIZE * 2 ), 6, + ' ' ) ); + result.append( " 0x" ); + result.append( leftPad( + Integer.toHexString( 154 + x * LittleEndian.INT_SIZE * 2 ), + 4, '0' ) ); + result.append( leftPad( Integer.toString( getFieldOffset( x ) ), 8, + ' ' ) ); + result.append( leftPad( Integer.toString( getFieldSize( x ) ), 8, + ' ' ) ); + + UnhandledDataStructure structure = _unknownMap.get( Integer + .valueOf( x ) ); + if ( structure != null ) + { + result.append( " => Unknown structure of size " ); + result.append( structure._buf.length ); + } + result.append( '\n' ); + } + return result.toString(); + } } diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java b/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java index e8f4062783..b13da95222 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java @@ -150,6 +150,7 @@ public final class FileInformationBlock extends FIBAbstractType stringBuilder.append( getNotesTextPositionsSize( noteType ) ); stringBuilder.append( " bytes\n" ); } + stringBuilder.append( _fieldHandler ); try { stringBuilder.append( "\tJava reflection info:\n" );