Parent (JDOM v1.1.1)
Date: 2018-05-07

org.jdom

## Interface Parent

- All Superinterfaces:
    java.lang.Cloneable, java.io.Serializable
  All Known Implementing Classes:
    Document, Element

      public interface Parent
      extends java.lang.Cloneable, java.io.Serializable

  Superclass for JDOM objects which are allowed to contain `Content` content.
  Version:
    $Revision: 1.13 $, $Date: 2007/11/10 05:28:59 $
  Author:
    Bradley S. Huffman, Jason Hunter
  See Also:
    `Content`, `Document`, `Element`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Obtain a deep, unattached copy of this parent and it's children.
    `java.util.List` | `cloneContent()` Returns a list containing detached clones of this parent's content list.
    `java.util.List` | `getContent()` Returns the full content of this parent as a `List` which contains objects of type `Content`.
    `java.util.List` | `getContent(Filter filter)` Returns as a `List` the content of this parent that matches the supplied filter.
    `Content` | `getContent(int index)` Returns the child at the given index.
    `int` | `getContentSize()` Returns the number of children in this parent's content list.
    `java.util.Iterator` | `getDescendants()` Returns an `Iterator` that walks over all descendants in document order.
    `java.util.Iterator` | `getDescendants(Filter filter)` Returns an `Iterator` that walks over all descendants in document order applying the Filter to return only elements that match the filter rule.
    `Document` | `getDocument()` Return this parent's owning document or null if the branch containing this parent is currently not attached to a document.
    `Parent` | `getParent()` Return this parent's parent, or null if this parent is currently not attached to another parent.
    `int` | `indexOf(Content child)` Returns the index of the supplied child in the content list, or -1 if not a child of this parent.
    `java.util.List` | `removeContent()` Removes all content from this parent and returns the detached children.
    `boolean` | `removeContent(Content child)` Removes a single child node from the content list.
    `java.util.List` | `removeContent(Filter filter)` Removes from this parent all child content matching the given filter and returns a list of the detached children.
    `Content` | `removeContent(int index)` Removes and returns the child at the given index, or returns null if there's no such child.

- - ### Method Detail

    - #### getContentSize

          int getContentSize()

      Returns the number of children in this parent's content list. Children may be any `Content` type.
      Returns:
        number of children

    - #### indexOf

          int indexOf(Content child)

      Returns the index of the supplied child in the content list, or -1 if not a child of this parent.
      Parameters:
        `child` - child to search for
      Returns:
        index of child, or -1 if not found

    - #### cloneContent

          java.util.List cloneContent()

      Returns a list containing detached clones of this parent's content list.
      Returns:
        list of cloned child content

    - #### getContent

          Content getContent(int index)

      Returns the child at the given index.
      Parameters:
        `index` - location of desired child
      Returns:
        child at the given index
      Throws:
        `java.lang.IndexOutOfBoundsException` - if index is negative or beyond the current number of children
        `java.lang.IllegalStateException` - if parent is a Document and the root element is not set

    - #### getContent

          java.util.List getContent()

      Returns the full content of this parent as a `List` which contains objects of type `Content`. The returned list is "live" and in document order. Any modifications to it affect the element's actual contents. Modifications are checked for conformance to XML 1.0 rules.

      Sequential traversal through the List is best done with an Iterator since the underlying implement of `List.size()` may require walking the entire list and indexed lookups may require starting at the beginning each time.

      Returns:
        a list of the content of the parent
      Throws:
        `java.lang.IllegalStateException` - if parent is a Document and the root element is not set

    - #### getContent

          java.util.List getContent(Filter filter)

      Returns as a `List` the content of this parent that matches the supplied filter. The returned list is "live" and in document order. Any modifications to it affect the element's actual contents. Modifications are checked for conformance to XML 1.0 rules.

      Sequential traversal through the List is best done with an Iterator since the underlying implement of `List.size()` may require walking the entire list and indexed lookups may require starting at the beginning each time.

      Parameters:
        `filter` - filter to apply
      Returns:
        a list of the content of the parent matching the filter
      Throws:
        `java.lang.IllegalStateException` - if parent is a Document and the root element is not set

    - #### removeContent

          java.util.List removeContent()

      Removes all content from this parent and returns the detached children.
      Returns:
        list of the old content detached from this parent

    - #### removeContent

          java.util.List removeContent(Filter filter)

      Removes from this parent all child content matching the given filter and returns a list of the detached children.
      Parameters:
        `filter` - filter to apply
      Returns:
        list of the detached children matching the filter

    - #### removeContent

          boolean removeContent(Content child)

      Removes a single child node from the content list.
      Parameters:
        `child` - child to remove
      Returns:
        whether the removal occurred

    - #### removeContent

          Content removeContent(int index)

      Removes and returns the child at the given index, or returns null if there's no such child.
      Parameters:
        `index` - index of child to remove
      Returns:
        detached child at given index or null if no
      Throws:
        `java.lang.IndexOutOfBoundsException` - if index is negative or beyond the current number of children

    - #### clone

          java.lang.Object clone()

      Obtain a deep, unattached copy of this parent and it's children.
      Returns:
        a deep copy of this parent and it's children.

    - #### getDescendants

          java.util.Iterator getDescendants()

      Returns an `Iterator` that walks over all descendants in document order.
      Returns:
        an iterator to walk descendants

    - #### getDescendants

          java.util.Iterator getDescendants(Filter filter)

      Returns an `Iterator` that walks over all descendants in document order applying the Filter to return only elements that match the filter rule. With filters you can match only Elements, only Comments, Elements or Comments, only Elements with a given name and/or prefix, and so on.
      Parameters:
        `filter` - filter to select which descendants to see
      Returns:
        an iterator to walk descendants that match a filter

    - #### getParent

          Parent getParent()

      Return this parent's parent, or null if this parent is currently not attached to another parent. This is the same method as in Content but also added to Parent to allow more easy up-the-tree walking.
      Returns:
        this parent's parent or null if none

    - #### getDocument

          Document getDocument()

      Return this parent's owning document or null if the branch containing this parent is currently not attached to a document.
      Returns:
        this child's owning document or null if none

Copyright ? 2007 Jason Hunter, Brett McLaughlin. All Rights Reserved.