aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2025-06-08 09:52:52 +0100
committerMichael Williamson <mike@zwobble.org>2025-06-08 09:52:52 +0100
commitcde09b91e08a48b2a0e0022c4147f0bb2e1fb8b7 (patch)
treeabc2e7c11dd7fe10f5134fd2fd29b74fcdfa09d3 /src/main/java/org/zwobble
parent778953dd078dcb1139b427e8e410350c0411d394 (diff)
Add HasChildren::replaceChildren()
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Document.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/HasChildren.java3
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Hyperlink.java7
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Paragraph.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Run.java19
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Table.java7
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java7
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java7
8 files changed, 58 insertions, 8 deletions
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<Document> {
private final List<DocumentElement> children;
private final Notes notes;
private final List<Comment> comments;
@@ -13,10 +13,16 @@ public class Document implements HasChildren {
this.comments = comments;
}
+ @Override
public List<DocumentElement> getChildren() {
return children;
}
+ @Override
+ public Document replaceChildren(List<DocumentElement> 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<T> {
List<DocumentElement> getChildren();
+ T replaceChildren(List<DocumentElement> 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<Hyperlink> {
public static Hyperlink href(String href, Optional<String> targetFrame, List<DocumentElement> children) {
return new Hyperlink(Optional.of(href), Optional.empty(), targetFrame, children);
}
@@ -42,6 +42,11 @@ public class Hyperlink implements DocumentElement, HasChildren {
}
@Override
+ public Hyperlink replaceChildren(List<DocumentElement> newChildren) {
+ return new Hyperlink(this.href, this.anchor, this.targetFrame, newChildren);
+ }
+
+ @Override
public <T, U> T accept(DocumentElementVisitor<T, U> 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<Paragraph> {
private final Optional<Style> style;
private final Optional<NumberingLevel> numbering;
private final ParagraphIndent indent;
@@ -33,11 +33,17 @@ public class Paragraph implements DocumentElement, HasChildren {
return indent;
}
+ @Override
public List<DocumentElement> getChildren() {
return children;
}
@Override
+ public Paragraph replaceChildren(List<DocumentElement> newChildren) {
+ return new Paragraph(this.style, this.numbering, this.indent, newChildren);
+ }
+
+ @Override
public <T, U> T accept(DocumentElementVisitor<T, U> visitor, U context) {
return visitor.visit(this, context);
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Run.java b/src/main/java/org/zwobble/mammoth/internal/documents/Run.java
index cb8bf1f..d1de84a 100644
--- a/src/main/java/org/zwobble/mammoth/internal/documents/Run.java
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/Run.java
@@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.documents;
import java.util.List;
import java.util.Optional;
-public class Run implements DocumentElement, HasChildren {
+public class Run implements DocumentElement, HasChildren<Run> {
private final Optional<String> highlight;
private final boolean isBold;
private final boolean isItalic;
@@ -75,11 +75,28 @@ public class Run implements DocumentElement, HasChildren {
return style;
}
+ @Override
public List<DocumentElement> getChildren() {
return children;
}
@Override
+ public Run replaceChildren(List<DocumentElement> newChildren) {
+ return new Run(
+ this.highlight,
+ this.isBold,
+ this.isItalic,
+ this.isUnderline,
+ this.isStrikethrough,
+ this.isAllCaps,
+ this.isSmallCaps,
+ this.verticalAlignment,
+ this.style,
+ newChildren
+ );
+ }
+
+ @Override
public <T, U> T accept(DocumentElementVisitor<T, U> visitor, U context) {
return visitor.visit(this, context);
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Table.java b/src/main/java/org/zwobble/mammoth/internal/documents/Table.java
index c58808c..6f1751a 100644
--- a/src/main/java/org/zwobble/mammoth/internal/documents/Table.java
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/Table.java
@@ -3,7 +3,7 @@ package org.zwobble.mammoth.internal.documents;
import java.util.List;
import java.util.Optional;
-public class Table implements DocumentElement, HasChildren {
+public class Table implements DocumentElement, HasChildren<Table> {
private final Optional<Style> style;
private final List<DocumentElement> children;
@@ -22,6 +22,11 @@ public class Table implements DocumentElement, HasChildren {
}
@Override
+ public Table replaceChildren(List<DocumentElement> newChildren) {
+ return new Table(this.style, newChildren);
+ }
+
+ @Override
public <T, U> T accept(DocumentElementVisitor<T, U> visitor, U context) {
return visitor.visit(this, context);
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java b/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java
index 2837725..14900aa 100644
--- a/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/TableCell.java
@@ -2,7 +2,7 @@ package org.zwobble.mammoth.internal.documents;
import java.util.List;
-public class TableCell implements DocumentElement, HasChildren {
+public class TableCell implements DocumentElement, HasChildren<TableCell> {
private final int rowspan;
private final int colspan;
private final List<DocumentElement> children;
@@ -27,6 +27,11 @@ public class TableCell implements DocumentElement, HasChildren {
}
@Override
+ public TableCell replaceChildren(List<DocumentElement> newChildren) {
+ return new TableCell(this.rowspan, this.colspan, newChildren);
+ }
+
+ @Override
public <T, U> T accept(DocumentElementVisitor<T, U> visitor, U context) {
return visitor.visit(this, context);
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java b/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java
index 0b5721d..00edc5f 100644
--- a/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/TableRow.java
@@ -2,7 +2,7 @@ package org.zwobble.mammoth.internal.documents;
import java.util.List;
-public class TableRow implements DocumentElement, HasChildren {
+public class TableRow implements DocumentElement, HasChildren<TableRow> {
private final List<DocumentElement> children;
private final boolean isHeader;
@@ -17,6 +17,11 @@ public class TableRow implements DocumentElement, HasChildren {
}
@Override
+ public TableRow replaceChildren(List<DocumentElement> newChildren) {
+ return new TableRow(newChildren, this.isHeader);
+ }
+
+ @Override
public <T, U> T accept(DocumentElementVisitor<T, U> visitor, U context) {
return visitor.visit(this, context);
}