From cde09b91e08a48b2a0e0022c4147f0bb2e1fb8b7 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 8 Jun 2025 09:52:52 +0100 Subject: Add HasChildren::replaceChildren() --- .../zwobble/mammoth/internal/documents/Document.java | 8 +++++++- .../mammoth/internal/documents/HasChildren.java | 3 ++- .../zwobble/mammoth/internal/documents/Hyperlink.java | 7 ++++++- .../zwobble/mammoth/internal/documents/Paragraph.java | 8 +++++++- .../org/zwobble/mammoth/internal/documents/Run.java | 19 ++++++++++++++++++- .../org/zwobble/mammoth/internal/documents/Table.java | 7 ++++++- .../zwobble/mammoth/internal/documents/TableCell.java | 7 ++++++- .../zwobble/mammoth/internal/documents/TableRow.java | 7 ++++++- 8 files changed, 58 insertions(+), 8 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Document.java b/src/main/java/org/zwobble/mammoth/internal/documents/Document.java index 5adc50d..b1807d5 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/Document.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Document.java @@ -2,7 +2,7 @@ package org.zwobble.mammoth.internal.documents; import java.util.List; -public class Document implements HasChildren { +public class Document implements HasChildren { private final List children; private final Notes notes; private final List comments; @@ -13,10 +13,16 @@ public class Document implements HasChildren { this.comments = comments; } + @Override public List getChildren() { return children; } + @Override + public Document replaceChildren(List newChildren) { + return new Document(newChildren, this.notes, this.comments); + } + public Notes getNotes() { return notes; } diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/HasChildren.java b/src/main/java/org/zwobble/mammoth/internal/documents/HasChildren.java index 2a5280e..11789b0 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/HasChildren.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/HasChildren.java @@ -2,6 +2,7 @@ package org.zwobble.mammoth.internal.documents; import java.util.List; -public interface HasChildren { +public interface HasChildren { List getChildren(); + T replaceChildren(List newChildren); } diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Hyperlink.java b/src/main/java/org/zwobble/mammoth/internal/documents/Hyperlink.java index c3fe794..bf86ffe 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/Hyperlink.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Hyperlink.java @@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.documents; import java.util.List; import java.util.Optional; -public class Hyperlink implements DocumentElement, HasChildren { +public class Hyperlink implements DocumentElement, HasChildren { public static Hyperlink href(String href, Optional targetFrame, List children) { return new Hyperlink(Optional.of(href), Optional.empty(), targetFrame, children); } @@ -41,6 +41,11 @@ public class Hyperlink implements DocumentElement, HasChildren { return children; } + @Override + public Hyperlink replaceChildren(List newChildren) { + return new Hyperlink(this.href, this.anchor, this.targetFrame, newChildren); + } + @Override public T accept(DocumentElementVisitor visitor, U context) { return visitor.visit(this, context); diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Paragraph.java b/src/main/java/org/zwobble/mammoth/internal/documents/Paragraph.java index 58c3453..c9859b6 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/Paragraph.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Paragraph.java @@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.documents; import java.util.List; import java.util.Optional; -public class Paragraph implements DocumentElement, HasChildren { +public class Paragraph implements DocumentElement, HasChildren { private final Optional