aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
new file mode 100644
index 0000000..6300d29
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
@@ -0,0 +1,41 @@
+package org.zwobble.mammoth.internal.styles;
+
+import com.google.common.collect.ImmutableList;
+import org.zwobble.mammoth.internal.documents.Paragraph;
+import org.zwobble.mammoth.internal.documents.Run;
+
+public class StyleMapBuilder {
+ private HtmlPath underline;
+ private HtmlPath strikethrough;
+ private final ImmutableList.Builder<StyleMapping<Paragraph>> paragraphStyles = ImmutableList.builder();
+ private final ImmutableList.Builder<StyleMapping<Run>> runStyles = ImmutableList.builder();
+
+ public StyleMapBuilder() {
+ this.underline = HtmlPath.EMPTY;
+ this.strikethrough = HtmlPath.collapsibleElement("s");
+ }
+
+ public StyleMapBuilder underline(HtmlPath path) {
+ this.underline = path;
+ return this;
+ }
+
+ public StyleMapBuilder strikethrough(HtmlPath path) {
+ this.strikethrough = path;
+ return this;
+ }
+
+ public StyleMapBuilder mapParagraph(ParagraphMatcher matcher, HtmlPath path) {
+ paragraphStyles.add(new StyleMapping<Paragraph>(matcher, path));
+ return this;
+ }
+
+ public StyleMapBuilder mapRun(RunMatcher matcher, HtmlPath path) {
+ runStyles.add(new StyleMapping<Run>(matcher, path));
+ return this;
+ }
+
+ public StyleMap build() {
+ return new StyleMap(underline, strikethrough, paragraphStyles.build(), runStyles.build());
+ }
+}