From 92764ff10d3059218b67fd5a15cb7c37db30bcd7 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Mon, 6 Jul 2015 21:15:57 +0000 Subject: Helper method to report the number of blocks used in a BAT git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1689504 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/poifs/storage/BATBlock.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/java') diff --git a/src/java/org/apache/poi/poifs/storage/BATBlock.java b/src/java/org/apache/poi/poifs/storage/BATBlock.java index 8712e65f6f..53099644ac 100644 --- a/src/java/org/apache/poi/poifs/storage/BATBlock.java +++ b/src/java/org/apache/poi/poifs/storage/BATBlock.java @@ -30,8 +30,6 @@ import org.apache.poi.util.LittleEndian; /** * A block of block allocation table entries. BATBlocks are created * only through a static factory method: createBATBlocks. - * - * @author Marc Johnson (mjohnson at apache dot org) */ public final class BATBlock extends BigBlock { /** @@ -301,6 +299,21 @@ public final class BATBlock extends BigBlock { public boolean hasFreeSectors() { return _has_free_sectors; } + /** + * How many sectors in this block are taken? + * Note that calling {@link #hasFreeSectors()} is much quicker + */ + public int getUsedSectors(boolean isAnXBAT) { + int usedSectors = 0; + int toCheck = _values.length; + if (isAnXBAT) toCheck--; // Last is a chain location + for(int k=0; k= _values.length) { -- cgit v1.2.3