aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java b/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java
index d4d6f2e..bfd3fc3 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/Relationships.java
@@ -10,16 +10,25 @@ public class Relationships {
public static final Relationships EMPTY = new Relationships(list());
private final Map<String, String> targetsByRelationshipId;
+ private final Map<String, List<String>> targetsByType;
public Relationships(List<Relationship> relationships) {
this.targetsByRelationshipId = toMap(relationships, relationship -> entry(
relationship.getRelationshipId(),
relationship.getTarget()
));
+ this.targetsByType = toMultiMap(relationships, relationship -> entry(
+ relationship.getType(),
+ relationship.getTarget()
+ ));
}
public String findTargetByRelationshipId(String relationshipId) {
return lookup(targetsByRelationshipId, relationshipId)
.orElseThrow(() -> new RuntimeException("Could not find relationship '" + relationshipId + "'"));
}
+
+ public List<String> findTargetsByType(String type) {
+ return lookup(targetsByType, type).orElse(list());
+ }
}