Class XMLObjectChildrenList<ElementType extends XMLObject>

  • Type Parameters:
    ElementType - type of elements added to the list
    All Implemented Interfaces:
    Iterable<ElementType>, Collection<ElementType>, List<ElementType>
    Direct Known Subclasses:
    IndexedXMLObjectChildrenList

    public class XMLObjectChildrenList<ElementType extends XMLObject>
    extends AbstractList<ElementType>
    Resizable list for the children of XMLObjects. This list implements all optional List operations and does nothing for null elements. XMLObjects added to, or removed from, this list will have their parent object appropriately set and, the underlying DOM will be released during mutation opertions.
    • Constructor Detail

      • XMLObjectChildrenList

        public XMLObjectChildrenList​(@Nonnull
                                     XMLObject newParent)
        Constructs an empty list with all added XMLObjects being assigned the given parent XMLObject.
        Parameters:
        newParent - the parent for all the added XMLObjects
      • XMLObjectChildrenList

        public XMLObjectChildrenList​(@Nonnull
                                     XMLObject newParent,
                                     @Nonnull
                                     Collection<ElementType> newElements)
        Constructs a list containing the elements in the specified collection, in the order they are returned by the collection's iterator, with each added XMLObject assigned the given parent XMLObject.

        An IllegalArgumentException is thrown if any of the XMLObjects in the given collection already have a parent other than the given parent

        Parameters:
        newParent - the parent for all the added XMLObjects
        newElements - the elements to be added
    • Method Detail

      • contains

        public boolean contains​(@Nonnull
                                ElementType element)
        Checks to see if the given element is contained in this list.
        Parameters:
        element - the element to check for
        Returns:
        true iff the element is in this list
      • set

        @Nullable
        public ElementType set​(int index,
                               @Nullable
                               ElementType element)
        Replaces the XMLObject at the specified index with the given element. A null input is ignored and returned.

        An IllegalArgumentException is thrown if the given XMLObject already has a parent other than the parent given at list construction time.

        Specified by:
        set in interface List<ElementType extends XMLObject>
        Overrides:
        set in class AbstractList<ElementType extends XMLObject>
        Parameters:
        index - index of the XMLObject to be replaced
        element - element to be stored at the given index
        Returns:
        the replaced XMLObject
      • add

        public void add​(int index,
                        @Nullable
                        ElementType element)
        Adds the given XMLObject to this list. A null element is ignored, as is an element already in the list.

        An IllegalArgumentException is thrown if the given XMLObject already has a parent other than the parent given at list construction time.

        Specified by:
        add in interface List<ElementType extends XMLObject>
        Overrides:
        add in class AbstractList<ElementType extends XMLObject>
        Parameters:
        index - index at which to add the given XMLObject
        element - element to be stored at the given index
      • remove

        public boolean remove​(@Nullable
                              ElementType element)
        Removes the element from the list.
        Parameters:
        element - the element to be removed
        Returns:
        true iff the element was in the list and removed
      • setParent

        protected void setParent​(@Nonnull
                                 ElementType element)
        Assigned the parent, given at list construction, to the given element if the element does not have a parent or its parent matches the one given at list construction time.

        An IllegalArgumentException is thrown if the given XMLObject already has a parent other than the parent given at list construction time.

        Parameters:
        element - the element to set the parent on