Class RawDataBlockList

java.lang.Object
org.docx4j.org.apache.poi.poifs.storage.RawDataBlockList
All Implemented Interfaces:
BlockList

public class RawDataBlockList
extends java.lang.Object
A list of RawDataBlocks instances, and methods to manage the list
Author:
Marc Johnson (mjohnson at apache dot org
  • Constructor Summary

    Constructors 
    Constructor Description
    RawDataBlockList​(java.io.InputStream stream, POIFSBigBlockSize bigBlockSize)
    Constructor RawDataBlockList
  • Method Summary

    Modifier and Type Method Description
    int blockCount()
    Returns the count of the number of blocks
    ListManagedBlock[] fetchBlocks​(int startBlock, int headerPropertiesStartBlock)
    get the blocks making up a particular stream in the list.
    protected ListManagedBlock get​(int index)
    Unit testing method.
    protected int remainingBlocks()
    Returns the number of remaining blocks
    ListManagedBlock remove​(int index)
    remove and return the specified block from the list
    void setBAT​(BlockAllocationTableReader bat)
    set the associated BlockAllocationTable
    protected void setBlocks​(ListManagedBlock[] blocks)
    provide blocks to manage
    void zap​(int index)
    remove the specified block from the list

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RawDataBlockList

      public RawDataBlockList​(java.io.InputStream stream, POIFSBigBlockSize bigBlockSize) throws java.io.IOException
      Constructor RawDataBlockList
      Parameters:
      stream - the InputStream from which the data will be read
      bigBlockSize - The big block size, either 512 bytes or 4096 bytes
      Throws:
      java.io.IOException - on I/O errors, and if an incomplete block is read
  • Method Details

    • setBlocks

      protected void setBlocks​(ListManagedBlock[] blocks)
      provide blocks to manage
      Parameters:
      blocks - blocks to be managed
    • zap

      public void zap​(int index)
      remove the specified block from the list
      Specified by:
      zap in interface BlockList
      Parameters:
      index - the index of the specified block; if the index is out of range, that's ok
    • get

      protected ListManagedBlock get​(int index)
      Unit testing method. Gets, without sanity checks or removing.
    • remove

      public ListManagedBlock remove​(int index) throws java.io.IOException
      remove and return the specified block from the list
      Specified by:
      remove in interface BlockList
      Parameters:
      index - the index of the specified block
      Returns:
      the specified block
      Throws:
      java.io.IOException - if the index is out of range or has already been removed
    • fetchBlocks

      public ListManagedBlock[] fetchBlocks​(int startBlock, int headerPropertiesStartBlock) throws java.io.IOException
      get the blocks making up a particular stream in the list. The blocks are removed from the list.
      Specified by:
      fetchBlocks in interface BlockList
      Parameters:
      startBlock - the index of the first block in the stream
      headerPropertiesStartBlock - the index of the first header block in the stream
      Returns:
      the stream as an array of correctly ordered blocks
      Throws:
      java.io.IOException - if blocks are missing
    • setBAT

      public void setBAT​(BlockAllocationTableReader bat) throws java.io.IOException
      set the associated BlockAllocationTable
      Specified by:
      setBAT in interface BlockList
      Parameters:
      bat - the associated BlockAllocationTable
      Throws:
      java.io.IOException
    • blockCount

      public int blockCount()
      Returns the count of the number of blocks
      Specified by:
      blockCount in interface BlockList
    • remainingBlocks

      protected int remainingBlocks()
      Returns the number of remaining blocks