Interface Container.Hierarchical

    • Method Detail

      • getChildren

        Collection<?> getChildren​(Object itemId)
        Gets the IDs of all Items that are children of the specified Item. The returned collection is unmodifiable.
        Parameters:
        itemId - ID of the Item whose children the caller is interested in
        Returns:
        An unmodifiable collection containing the IDs of all other Items that are children in the container hierarchy; null if item does not have any children.
      • getParent

        Object getParent​(Object itemId)
        Gets the ID of the parent Item of the specified Item.
        Parameters:
        itemId - ID of the Item whose parent the caller wishes to find out.
        Returns:
        the ID of the parent Item. Will be null if the specified Item is a root element.
      • rootItemIds

        Collection<?> rootItemIds()
        Gets the IDs of all Items in the container that don't have a parent. Such items are called root Items. The returned collection is unmodifiable.
        Returns:
        An unmodifiable collection containing IDs of all root elements of the container
      • setParent

        boolean setParent​(Object itemId,
                          Object newParentId)
                   throws UnsupportedOperationException

        Sets the parent of an Item. The new parent item must exist and be able to have children. ( areChildrenAllowed(Object) == true ). It is also possible to detach a node from the hierarchy (and thus make it root) by setting the parent null.

        This operation is optional.

        Parameters:
        itemId - ID of the item to be set as the child of the Item identified with newParentId
        newParentId - ID of the Item that's to be the new parent of the Item identified with itemId
        Returns:
        true if the operation succeeded, false if not
        Throws:
        UnsupportedOperationException
      • areChildrenAllowed

        boolean areChildrenAllowed​(Object itemId)
        Tests if the Item with given ID can have children.
        Parameters:
        itemId - ID of the Item in the container whose child capability is to be tested
        Returns:
        true if the specified Item exists in the Container and it can have children, false if it's not found from the container or it can't have children.
      • isRoot

        boolean isRoot​(Object itemId)
        Tests if the Item specified with itemId is a root Item. The hierarchical container can have more than one root and must have at least one unless it is empty. The getParent(Object itemId) method always returns null for root Items.
        Parameters:
        itemId - ID of the Item whose root status is to be tested
        Returns:
        true if the specified Item is a root, false if not
      • hasChildren

        boolean hasChildren​(Object itemId)

        Tests if the Item specified with itemId has child Items or if it is a leaf. The getChildren(Object itemId) method always returns null for leaf Items.

        Note that being a leaf does not imply whether or not an Item is allowed to have children.

        Parameters:
        itemId - ID of the Item to be tested
        Returns:
        true if the specified Item has children, false if not (is a leaf)
      • removeItem

        boolean removeItem​(Object itemId)
                    throws UnsupportedOperationException

        Removes the Item identified by ItemId from the Container.

        Note that this does not remove any children the item might have.

        Specified by:
        removeItem in interface Container
        Parameters:
        itemId - ID of the Item to remove
        Returns:
        true if the operation succeeded, false if not
        Throws:
        UnsupportedOperationException - if the container does not support removing individual items