aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-24 08:16:16 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-24 08:16:16 +0000
commit3e2786a004eddf968a5fa7d5a92dff5b1b5f7734 (patch)
tree7fa1bcc1e484cd0ef782f64baf504ee83333d397 /src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
parent0dc3a12affc2e46c1a0df2899cf51a1ae3fdbd61 (diff)
Create internal package
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());
+ }
+}