java.lang.Object
org.docx4j.org.apache.poi.poifs.property.Property
All Implemented Interfaces:
POIFSViewable, Child
Direct Known Subclasses:
DirectoryProperty, DocumentProperty

public abstract class Property extends Object implements Child, POIFSViewable
This abstract base class is the ancestor of all classes implementing POIFS Property behavior.
  • Field Details

  • Constructor Details

    • Property

      protected Property()
    • Property

      protected Property(int index, byte[] array, int offset)
      Constructor from byte data
      Parameters:
      index - index number
      array - byte data
      offset - offset into byte data
  • Method Details

    • writeData

      public void writeData(OutputStream stream) throws IOException
      Write the raw data to an OutputStream.
      Parameters:
      stream - the OutputStream to which the data should be written.
      Throws:
      IOException - on problems writing to the specified stream.
    • setStartBlock

      public void setStartBlock(int startBlock)
      Set the start block for the document referred to by this Property.
      Parameters:
      startBlock - the start block index
    • getStartBlock

      public int getStartBlock()
      Returns:
      the start block
    • getSize

      public int getSize()
      find out the document size
      Returns:
      size in bytes
    • shouldUseSmallBlocks

      public boolean shouldUseSmallBlocks()
      Based on the currently defined size, should this property use small blocks?
      Returns:
      true if the size is less than _big_block_minimum_bytes
    • isSmall

      public static boolean isSmall(int length)
      does the length indicate a small document?
      Parameters:
      length - length in bytes
      Returns:
      true if the length is less than _big_block_minimum_bytes
    • getName

      public String getName()
      Get the name of this property
      Returns:
      property name as String
    • isDirectory

      public abstract boolean isDirectory()
      Returns:
      true if a directory type Property
    • getStorageClsid

      public ClassID getStorageClsid()
      Sets the storage clsid, which is the Class ID of a COM object which reads and writes this stream
      Returns:
      storage Class ID for this property stream
    • setName

      protected void setName(String name)
      Set the name; silently truncates the name if it's too long.
      Parameters:
      name - the new name
    • setStorageClsid

      public void setStorageClsid(ClassID clsidStorage)
      Sets the storage class ID for this property stream. This is the Class ID of the COM object which can read and write this property stream
      Parameters:
      clsidStorage - Storage Class ID
    • setPropertyType

      protected void setPropertyType(byte propertyType)
      Set the property type. Makes no attempt to validate the value.
      Parameters:
      propertyType - the property type (root, file, directory)
    • setNodeColor

      protected void setNodeColor(byte nodeColor)
      Set the node color.
      Parameters:
      nodeColor - the node color (red or black)
    • setChildProperty

      protected void setChildProperty(int child)
      Set the child property.
      Parameters:
      child - the child property's index in the Property Table
    • getChildIndex

      protected int getChildIndex()
      Get the child property (its index in the Property Table)
      Returns:
      child property index
    • setSize

      protected void setSize(int size)
      Set the size of the document associated with this Property
      Parameters:
      size - the size of the document, in bytes
    • setIndex

      protected void setIndex(int index)
      Set the index for this Property
      Parameters:
      index - this Property's index within its containing Property Table
    • getIndex

      protected int getIndex()
      get the index for this Property
      Returns:
      the index of this Property within its Property Table
    • preWrite

      protected abstract void preWrite()
      Perform whatever activities need to be performed prior to writing
    • getNextChildIndex

      int getNextChildIndex()
      get the next sibling
      Returns:
      index of next sibling
    • getPreviousChildIndex

      int getPreviousChildIndex()
      get the previous sibling
      Returns:
      index of previous sibling
    • isValidIndex

      static boolean isValidIndex(int index)
      determine whether the specified index is valid
      Parameters:
      index - value to be checked
      Returns:
      true if the index is valid
    • getNextChild

      public Child getNextChild()
      Get the next Child, if any
      Specified by:
      getNextChild in interface Child
      Returns:
      the next Child; may return null
    • getPreviousChild

      public Child getPreviousChild()
      Get the previous Child, if any
      Specified by:
      getPreviousChild in interface Child
      Returns:
      the previous Child; may return null
    • setNextChild

      public void setNextChild(Child child)
      Set the next Child
      Specified by:
      setNextChild in interface Child
      Parameters:
      child - the new 'next' child; may be null, which has the effect of saying there is no 'next' child
    • setPreviousChild

      public void setPreviousChild(Child child)
      Set the previous Child
      Specified by:
      setPreviousChild in interface Child
      Parameters:
      child - the new 'previous' child; may be null, which has the effect of saying there is no 'previous' child
    • getViewableArray

      public Object[] getViewableArray()
      Get an array of objects, some of which may implement POIFSViewable
      Specified by:
      getViewableArray in interface POIFSViewable
      Returns:
      an array of Object; may not be null, but may be empty
    • getViewableIterator

      public Iterator<Object> getViewableIterator()
      Get an Iterator of objects, some of which may implement POIFSViewable
      Specified by:
      getViewableIterator in interface POIFSViewable
      Returns:
      an Iterator; may not be null, but may have an empty back end store
    • preferArray

      public boolean preferArray()
      Give viewers a hint as to whether to call getViewableArray or getViewableIterator
      Specified by:
      preferArray in interface POIFSViewable
      Returns:
      true if a viewer should call getViewableArray, false if a viewer should call getViewableIterator
    • getShortDescription

      public String getShortDescription()
      Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.
      Specified by:
      getShortDescription in interface POIFSViewable
      Returns:
      short description