Fix inconsistent whitespace

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1688031 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2015-06-28 17:54:20 +00:00
parent cc909dfa75
commit 7c00beb63e

View File

@ -43,138 +43,138 @@ import org.apache.poi.util.IntList;
* down the source of corruption in a file. * down the source of corruption in a file.
*/ */
public class POIFSHeaderDumper { public class POIFSHeaderDumper {
/** /**
* Display the entries of multiple POIFS files * Display the entries of multiple POIFS files
* *
* @param args the names of the files to be displayed * @param args the names of the files to be displayed
*/ */
public static void main(final String args[]) throws Exception { public static void main(final String args[]) throws Exception {
if (args.length == 0) { if (args.length == 0) {
System.err.println("Must specify at least one file to view"); System.err.println("Must specify at least one file to view");
System.exit(1); System.exit(1);
} }
for (int j = 0; j < args.length; j++) { for (int j = 0; j < args.length; j++) {
viewFile(args[j]); viewFile(args[j]);
} }
} }
public static void viewFile(final String filename) throws Exception { public static void viewFile(final String filename) throws Exception {
System.out.println("Dumping headers from: " + filename); System.out.println("Dumping headers from: " + filename);
InputStream inp = new FileInputStream(filename); InputStream inp = new FileInputStream(filename);
// Header // Header
HeaderBlock header_block = new HeaderBlock(inp); HeaderBlock header_block = new HeaderBlock(inp);
displayHeader(header_block); displayHeader(header_block);
// Raw blocks // Raw blocks
POIFSBigBlockSize bigBlockSize = header_block.getBigBlockSize(); POIFSBigBlockSize bigBlockSize = header_block.getBigBlockSize();
RawDataBlockList data_blocks = new RawDataBlockList(inp, bigBlockSize); RawDataBlockList data_blocks = new RawDataBlockList(inp, bigBlockSize);
displayRawBlocksSummary(data_blocks); displayRawBlocksSummary(data_blocks);
// Main FAT Table // Main FAT Table
BlockAllocationTableReader batReader = BlockAllocationTableReader batReader =
new BlockAllocationTableReader( new BlockAllocationTableReader(
header_block.getBigBlockSize(), header_block.getBigBlockSize(),
header_block.getBATCount(), header_block.getBATCount(),
header_block.getBATArray(), header_block.getBATArray(),
header_block.getXBATCount(), header_block.getXBATCount(),
header_block.getXBATIndex(), header_block.getXBATIndex(),
data_blocks); data_blocks);
displayBATReader("Big Blocks", batReader); displayBATReader("Big Blocks", batReader);
// Properties Table // Properties Table
PropertyTable properties = PropertyTable properties =
new PropertyTable(header_block, data_blocks); new PropertyTable(header_block, data_blocks);
// Mini Fat // Mini Fat
BlockAllocationTableReader sbatReader = BlockAllocationTableReader sbatReader =
SmallBlockTableReader._getSmallDocumentBlockReader( SmallBlockTableReader._getSmallDocumentBlockReader(
bigBlockSize, data_blocks, properties.getRoot(), bigBlockSize, data_blocks, properties.getRoot(),
header_block.getSBATStart() header_block.getSBATStart()
); );
displayBATReader("Small Blocks", sbatReader); displayBATReader("Small Blocks", sbatReader);
// Summary of the properties // Summary of the properties
displayPropertiesSummary(properties); displayPropertiesSummary(properties);
} }
public static void displayHeader(HeaderBlock header_block) throws Exception { public static void displayHeader(HeaderBlock header_block) throws Exception {
System.out.println("Header Details:"); System.out.println("Header Details:");
System.out.println(" Block size: " + header_block.getBigBlockSize().getBigBlockSize()); System.out.println(" Block size: " + header_block.getBigBlockSize().getBigBlockSize());
System.out.println(" BAT (FAT) header blocks: " + header_block.getBATArray().length); System.out.println(" BAT (FAT) header blocks: " + header_block.getBATArray().length);
System.out.println(" BAT (FAT) block count: " + header_block.getBATCount()); System.out.println(" BAT (FAT) block count: " + header_block.getBATCount());
if (header_block.getBATCount() > 0) if (header_block.getBATCount() > 0)
System.out.println(" BAT (FAT) block 1 at: " + header_block.getBATArray()[0]); System.out.println(" BAT (FAT) block 1 at: " + header_block.getBATArray()[0]);
System.out.println(" XBAT (FAT) block count: " + header_block.getXBATCount()); System.out.println(" XBAT (FAT) block count: " + header_block.getXBATCount());
System.out.println(" XBAT (FAT) block 1 at: " + header_block.getXBATIndex()); System.out.println(" XBAT (FAT) block 1 at: " + header_block.getXBATIndex());
System.out.println(" SBAT (MiniFAT) block count: " + header_block.getSBATCount()); System.out.println(" SBAT (MiniFAT) block count: " + header_block.getSBATCount());
System.out.println(" SBAT (MiniFAT) block 1 at: " + header_block.getSBATStart()); System.out.println(" SBAT (MiniFAT) block 1 at: " + header_block.getSBATStart());
System.out.println(" Property table at: " + header_block.getPropertyStart()); System.out.println(" Property table at: " + header_block.getPropertyStart());
System.out.println(""); System.out.println("");
} }
public static void displayRawBlocksSummary(RawDataBlockList data_blocks) throws Exception { public static void displayRawBlocksSummary(RawDataBlockList data_blocks) throws Exception {
System.out.println("Raw Blocks Details:"); System.out.println("Raw Blocks Details:");
System.out.println(" Number of blocks: " + data_blocks.blockCount()); System.out.println(" Number of blocks: " + data_blocks.blockCount());
Method gbm = data_blocks.getClass().getSuperclass().getDeclaredMethod("get", int.class); Method gbm = data_blocks.getClass().getSuperclass().getDeclaredMethod("get", int.class);
gbm.setAccessible(true); gbm.setAccessible(true);
for(int i=0; i<Math.min(16, data_blocks.blockCount()); i++) { for(int i=0; i<Math.min(16, data_blocks.blockCount()); i++) {
ListManagedBlock block = (ListManagedBlock)gbm.invoke(data_blocks, Integer.valueOf(i)); ListManagedBlock block = (ListManagedBlock)gbm.invoke(data_blocks, Integer.valueOf(i));
byte[] data = new byte[Math.min(48, block.getData().length)]; byte[] data = new byte[Math.min(48, block.getData().length)];
System.arraycopy(block.getData(), 0, data, 0, data.length); System.arraycopy(block.getData(), 0, data, 0, data.length);
System.out.println(" Block #" + i + ":"); System.out.println(" Block #" + i + ":");
System.out.println(HexDump.dump(data, 0, 0)); System.out.println(HexDump.dump(data, 0, 0));
} }
System.out.println(""); System.out.println("");
} }
public static void displayBATReader(String type, BlockAllocationTableReader batReader) throws Exception { public static void displayBATReader(String type, BlockAllocationTableReader batReader) throws Exception {
System.out.println("Sectors, as referenced from the "+type+" FAT:"); System.out.println("Sectors, as referenced from the "+type+" FAT:");
Field entriesF = batReader.getClass().getDeclaredField("_entries"); Field entriesF = batReader.getClass().getDeclaredField("_entries");
entriesF.setAccessible(true); entriesF.setAccessible(true);
IntList entries = (IntList)entriesF.get(batReader); IntList entries = (IntList)entriesF.get(batReader);
for(int i=0; i<entries.size(); i++) { for(int i=0; i<entries.size(); i++) {
int bn = entries.get(i); int bn = entries.get(i);
String bnS = Integer.toString(bn); String bnS = Integer.toString(bn);
if(bn == POIFSConstants.END_OF_CHAIN) { if(bn == POIFSConstants.END_OF_CHAIN) {
bnS = "End Of Chain"; bnS = "End Of Chain";
} else if(bn == POIFSConstants.DIFAT_SECTOR_BLOCK) { } else if(bn == POIFSConstants.DIFAT_SECTOR_BLOCK) {
bnS = "DI Fat Block"; bnS = "DI Fat Block";
} else if(bn == POIFSConstants.FAT_SECTOR_BLOCK) { } else if(bn == POIFSConstants.FAT_SECTOR_BLOCK) {
bnS = "Normal Fat Block"; bnS = "Normal Fat Block";
} else if(bn == POIFSConstants.UNUSED_BLOCK) { } else if(bn == POIFSConstants.UNUSED_BLOCK) {
bnS = "Block Not Used (Free)"; bnS = "Block Not Used (Free)";
} }
System.out.println(" Block # " + i + " -> " + bnS); System.out.println(" Block # " + i + " -> " + bnS);
} }
System.out.println(""); System.out.println("");
} }
public static void displayPropertiesSummary(PropertyTable properties) { public static void displayPropertiesSummary(PropertyTable properties) {
System.out.println("Properties and their block start:"); System.out.println("Properties and their block start:");
displayProperties(properties.getRoot(), ""); displayProperties(properties.getRoot(), "");
System.out.println(""); System.out.println("");
} }
public static void displayProperties(DirectoryProperty prop, String indent) { public static void displayProperties(DirectoryProperty prop, String indent) {
indent = indent + " "; indent = indent + " ";
System.out.println(prop.getName()); System.out.println(prop.getName());
for (Property cp : prop) { for (Property cp : prop) {
if (cp instanceof DirectoryProperty) { if (cp instanceof DirectoryProperty) {
displayProperties((DirectoryProperty)cp, indent); displayProperties((DirectoryProperty)cp, indent);
} else { } else {
// TODO // TODO
if (cp.shouldUseSmallBlocks()) { if (cp.shouldUseSmallBlocks()) {
} }
} }
} }
} }
} }