aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Vladimirov <sergey@apache.org>2011-08-23 15:10:37 +0000
committerSergey Vladimirov <sergey@apache.org>2011-08-23 15:10:37 +0000
commit56fe9f8685847cb7ae96818807d4597d32ef1d3b (patch)
tree221684e449779472c2b7dc51323cbc5ff73fd1c4
parent16e9e11493c64414e81713d1f92cf19051ee1acd (diff)
downloadpoi-56fe9f8685847cb7ae96818807d4597d32ef1d3b.tar.gz
poi-56fe9f8685847cb7ae96818807d4597d32ef1d3b.zip
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
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java55
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java1
2 files changed, 56 insertions, 0 deletions
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" );