Class PropertyTable

  • All Implemented Interfaces:
    BATManaged, BlockWritable

    public class PropertyTable
    extends Object
    implements BATManaged, BlockWritable
    This class embodies the Property Table for the filesystem; this is basically the dsirectory for all of the documents in the filesystem.
    Author:
    Marc Johnson (mjohnson at apache dot org)
    • Constructor Detail

      • PropertyTable

        public PropertyTable()
        Default constructor
      • PropertyTable

        public PropertyTable​(int startBlock,
                             RawDataBlockList blockList)
                      throws IOException
        reading constructor (used when we've read in a file and we want to extract the property table from it). Populates the properties thoroughly
        Parameters:
        startBlock - the first block of the property table
        blockList - the list of blocks
        Throws:
        IOException - if anything goes wrong (which should be a result of the input being NFG)
    • Method Detail

      • addProperty

        public void addProperty​(Property property)
        Add a property to the list of properties we manage
        Parameters:
        property - the new Property to manage
      • removeProperty

        public void removeProperty​(Property property)
        Remove a property from the list of properties we manage
        Parameters:
        property - the Property to be removed
      • getRoot

        public RootProperty getRoot()
        Get the root property
        Returns:
        the root property
      • preWrite

        public void preWrite()
        Prepare to be written
      • getStartBlock

        public int getStartBlock()
        Get the start block for the property table
        Returns:
        start block index
      • countBlocks

        public int countBlocks()
        Return the number of BigBlock's this instance uses
        Specified by:
        countBlocks in interface BATManaged
        Returns:
        count of BigBlock instances
      • setStartBlock

        public void setStartBlock​(int index)
        Set the start block for this instance
        Specified by:
        setStartBlock in interface BATManaged
        Parameters:
        index - index into the array of BigBlock instances making up the the filesystem
      • writeBlocks

        public void writeBlocks​(OutputStream stream)
                         throws IOException
        Write the storage to an OutputStream
        Specified by:
        writeBlocks in interface BlockWritable
        Parameters:
        stream - the OutputStream to which the stored data should be written
        Throws:
        IOException - on problems writing to the specified stream