org.apache.poi.poifs.property

## Class DirectoryProperty

- java.lang.Object
- - org.apache.poi.poifs.property.Property
  - - org.apache.poi.poifs.property.DirectoryProperty

- All Implemented Interfaces:
    java.lang.Iterable<Property>, POIFSViewable, Child, Parent
  Direct Known Subclasses:
    RootProperty

      public class DirectoryProperty
      extends Property
      implements Parent, java.lang.Iterable<Property>

  Directory property

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `DirectoryProperty.PropertyComparator`

  - ### Field Summary

    - ### Fields inherited from class org.apache.poi.poifs.property.Property

      `_NO_INDEX, _NODE_BLACK, _NODE_RED`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `DirectoryProperty(int index, byte[] array, int offset)` reader constructor
    `` | `DirectoryProperty(java.lang.String name)` Default constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addChild(Property property)` Add a new child to the collection of children
    `boolean` | `changeName(Property property, java.lang.String newName)` Change a Property's name
    `boolean` | `deleteChild(Property property)` Delete a Property
    `java.util.Iterator<Property>` | `getChildren()` Get an iterator over the children of this Parent; all elements are instances of Property.
    `boolean` | `isDirectory()`
    `java.util.Iterator<Property>` | `iterator()` Get an iterator over the children of this Parent, alias for `getChildren()` which supports foreach use
    `protected void` | `preWrite()` Perform whatever activities need to be performed prior to writing

    - ### Methods inherited from class org.apache.poi.poifs.property.Property

      `getChildIndex, getIndex, getName, getNextChild, getPreviousChild, getShortDescription, getSize, getStartBlock, getStorageClsid, getViewableArray, getViewableIterator, isSmall, preferArray, setChildProperty, setIndex, setName, setNextChild, setNodeColor, setPreviousChild, setPropertyType, setSize, setStartBlock, setStorageClsid, shouldUseSmallBlocks, writeData`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.poi.poifs.property.Parent

      `setNextChild, setPreviousChild`

    - ### Methods inherited from interface org.apache.poi.poifs.property.Child

      `getNextChild, getPreviousChild`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### DirectoryProperty

          public DirectoryProperty(java.lang.String name)

      Default constructor
      Parameters:
        `name` - the name of the directory

    - #### DirectoryProperty

          protected DirectoryProperty(int index,
                                      byte[] array,
                                      int offset)

      reader constructor
      Parameters:
        `index` - index number
        `array` - byte data
        `offset` - offset into byte data

  - ### Method Detail

    - #### changeName

          public boolean changeName(Property property,
                                    java.lang.String newName)

      Change a Property's name
      Parameters:
        `property` - the Property whose name is being changed
        `newName` - the new name for the Property
      Returns:
        true if the name change could be made, else false

    - #### deleteChild

          public boolean deleteChild(Property property)

      Delete a Property
      Parameters:
        `property` - the Property being deleted
      Returns:
        true if the Property could be deleted, else false

    - #### isDirectory

          public boolean isDirectory()

      Specified by:
        `isDirectory` in class `Property`
      Returns:
        true if a directory type Property

    - #### preWrite

          protected void preWrite()

      Perform whatever activities need to be performed prior to writing
      Specified by:
        `preWrite` in class `Property`

    - #### getChildren

          public java.util.Iterator<Property> getChildren()

      Get an iterator over the children of this Parent; all elements are instances of Property.
      Specified by:
        `getChildren` in interface `Parent`
      Returns:
        Iterator of children; may refer to an empty collection

    - #### iterator

          public java.util.Iterator<Property> iterator()

      Get an iterator over the children of this Parent, alias for `getChildren()` which supports foreach use
      Specified by:
        `iterator` in interface `java.lang.Iterable<Property>`

    - #### addChild

          public void addChild(Property property)
                        throws java.io.IOException

      Add a new child to the collection of children
      Specified by:
        `addChild` in interface `Parent`
      Parameters:
        `property` - the new child to be added; must not be null
      Throws:
        `java.io.IOException` - if we already have a child with the same name

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.