org.apache.poi.openxml4j.opc

## Class PackageRelationshipCollection

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

- All Implemented Interfaces:
    java.lang.Iterable<PackageRelationship>

      public final class PackageRelationshipCollection
      extends java.lang.Object
      implements java.lang.Iterable<PackageRelationship>

  Represents a collection of PackageRelationship elements that are owned by a given PackagePart or the Package.
  Version:
    0.1
  Author:
    Julien Chable, CDubettier

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PackageRelationshipCollection(OPCPackage container)` Constructor.
    `PackageRelationshipCollection(OPCPackage container, PackagePart part)` Constructor.
    `PackageRelationshipCollection(PackagePart part)` Constructor.
    `PackageRelationshipCollection(PackageRelationshipCollection coll, java.lang.String filter)` Copy constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addRelationship(PackageRelationship relPart)` Add the specified relationship to the collection.
    `PackageRelationship` | `addRelationship(java.net.URI targetUri, TargetMode targetMode, java.lang.String relationshipType, java.lang.String id)` Add a relationship to the collection.
    `void` | `clear()` Clear all relationships.
    `PackageRelationship` | `findExistingInternalRelation(PackagePart packagePart)`
    `PackageRelationship` | `getRelationship(int index)` Retrieves a relationship by its index in the collection.
    `PackageRelationship` | `getRelationshipByID(java.lang.String id)` Retrieves a package relationship based on its id.
    `PackageRelationshipCollection` | `getRelationships(java.lang.String typeFilter)` Retrieves all relations with the specified type.
    `java.util.Iterator<PackageRelationship>` | `iterator()` Get this collection's iterator.
    `java.util.Iterator<PackageRelationship>` | `iterator(java.lang.String typeFilter)` Get an iterator of a collection with all relationship with the specified type.
    `void` | `parseRelationshipsPart(PackagePart relPart)` Parse the relationship part and add all relationship in this collection.
    `void` | `removeRelationship(java.lang.String id)` Remove a relationship by its ID.
    `int` | `size()` Get the numbe rof relationships in the collection.
    `java.lang.String` | `toString()`

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

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

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

      `forEach, spliterator`

- - ### Constructor Detail

    - #### PackageRelationshipCollection

          public PackageRelationshipCollection(PackageRelationshipCollection coll,
                                               java.lang.String filter)

      Copy constructor. This collection will contain only elements from the specified collection for which the type is compatible with the specified relationship type filter.
      Parameters:
        `coll` - Collection to import.
        `filter` - Relationship type filter.

    - #### PackageRelationshipCollection

          public PackageRelationshipCollection(OPCPackage container)
                                        throws InvalidFormatException

      Constructor.
      Throws:
        `InvalidFormatException`

    - #### PackageRelationshipCollection

          public PackageRelationshipCollection(PackagePart part)
                                        throws InvalidFormatException

      Constructor.
      Throws:
        `InvalidFormatException` - Throws if the format of the content part is invalid.
        `InvalidOperationException` - Throws if the specified part is a relationship part.

    - #### PackageRelationshipCollection

          public PackageRelationshipCollection(OPCPackage container,
                                               PackagePart part)
                                        throws InvalidFormatException

      Constructor. Parse the existing package relationship part if one exists.
      Parameters:
        `container` - The parent package.
        `part` - The part that own this relationships collection. If null then this part is considered as the package root.
      Throws:
        `InvalidFormatException` - If an error occurs during the parsing of the relatinships part fo the specified part.

  - ### Method Detail

    - #### addRelationship

          public void addRelationship(PackageRelationship relPart)

      Add the specified relationship to the collection.
      Parameters:
        `relPart` - The relationship to add.

    - #### addRelationship

          public PackageRelationship addRelationship(java.net.URI targetUri,
                                                     TargetMode targetMode,
                                                     java.lang.String relationshipType,
                                                     java.lang.String id)

      Add a relationship to the collection.
      Parameters:
        `targetUri` - Target URI.
        `targetMode` - The target mode : INTERNAL or EXTERNAL
        `relationshipType` - Relationship type.
        `id` - Relationship ID.
      Returns:
        The newly created relationship.
      See Also:
        `PackageAccess`

    - #### removeRelationship

          public void removeRelationship(java.lang.String id)

      Remove a relationship by its ID.
      Parameters:
        `id` - The relationship ID to remove.

    - #### getRelationship

          public PackageRelationship getRelationship(int index)

      Retrieves a relationship by its index in the collection.
      Parameters:
        `index` - Must be a value between [0-relationships_count-1]

    - #### getRelationshipByID

          public PackageRelationship getRelationshipByID(java.lang.String id)

      Retrieves a package relationship based on its id.
      Parameters:
        `id` - ID of the package relationship to retrieve.
      Returns:
        The package relationship identified by the specified id.

    - #### size

          public int size()

      Get the numbe rof relationships in the collection.

    - #### parseRelationshipsPart

          public void parseRelationshipsPart(PackagePart relPart)
                                      throws InvalidFormatException

      Parse the relationship part and add all relationship in this collection.
      Parameters:
        `relPart` - The package part to parse.
      Throws:
        `InvalidFormatException` - Throws if the relationship part is invalid.

    - #### getRelationships

          public PackageRelationshipCollection getRelationships(java.lang.String typeFilter)

      Retrieves all relations with the specified type.
      Parameters:
        `typeFilter` - Relationship type filter. If null then all relationships are returned.
      Returns:
        All relationships of the type specified by the filter.

    - #### iterator

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

      Get this collection's iterator.
      Specified by:
        `iterator` in interface `java.lang.Iterable<PackageRelationship>`

    - #### iterator

          public java.util.Iterator<PackageRelationship> iterator(java.lang.String typeFilter)

      Get an iterator of a collection with all relationship with the specified type.
      Parameters:
        `typeFilter` - Type filter.
      Returns:
        An iterator to a collection containing all relationships with the specified type contain in this collection.

    - #### clear

          public void clear()

      Clear all relationships.

    - #### findExistingInternalRelation

          public PackageRelationship findExistingInternalRelation(PackagePart packagePart)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

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