org.apache.poi.openxml4j.opc

## Class PackagePartCollection

- java.lang.Object
- - org.apache.poi.openxml4j.opc.PackagePartCollection

- All Implemented Interfaces:
    java.io.Serializable

      public final class PackagePartCollection
      extends java.lang.Object
      implements java.io.Serializable

  A package part collection.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PackagePartCollection()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsKey(PackagePartName partName)`
    `PackagePart` | `get(PackagePartName partName)`
    `int` | `getUnusedPartIndex(java.lang.String nameTemplate)` Get an unused part index based on the namePattern, which doesn't exist yet and has the lowest positive index
    `PackagePart` | `put(PackagePartName partName, PackagePart part)` Check rule [M1.11]: a package implementer shall neither create nor recognize a part with a part name derived from another part name by appending segments to it.
    `PackagePart` | `remove(PackagePartName key)`
    `int` | `size()`
    `java.util.Collection<PackagePart>` | `sortedValues()` The values themselves should be returned in sorted order.

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

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

- - ### Constructor Detail

    - #### PackagePartCollection

          public PackagePartCollection()

  - ### Method Detail

    - #### put

          public PackagePart put(PackagePartName partName,
                                 PackagePart part)

      Check rule [M1.11]: a package implementer shall neither create nor recognize a part with a part name derived from another part name by appending segments to it.
      Parameters:
        `partName` - name of part
        `part` - part to put
      Returns:
        the previous value associated with `partName`, or `null` if there was no mapping for `partName`.
      Throws:
        `InvalidOperationException` - Throws if you try to add a part with a name derived from another part name.

    - #### remove

          public PackagePart remove(PackagePartName key)

    - #### sortedValues

          public java.util.Collection<PackagePart> sortedValues()

      The values themselves should be returned in sorted order. Doing it here avoids paying the high cost of Natural Ordering per insertion.
      Returns:
        unmodifiable collection of parts

    - #### containsKey

          public boolean containsKey(PackagePartName partName)

    - #### get

          public PackagePart get(PackagePartName partName)

    - #### size

          public int size()

    - #### getUnusedPartIndex

          public int getUnusedPartIndex(java.lang.String nameTemplate)
                                 throws InvalidFormatException

      Get an unused part index based on the namePattern, which doesn't exist yet and has the lowest positive index
      Parameters:
        `nameTemplate` - The template for new part names containing a `'#'` for the index, e.g. "/ppt/slides/slide#.xml"
      Returns:
        the next available part name index
      Throws:
        `InvalidFormatException` - if the nameTemplate is null or doesn't contain the index char (#) or results in an invalid part name

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