comparison src/org/nwoca/ssdt/tools/html2wiki/TagTransformer.java @ 4:22ed6d93442c

Start modifying transformers to Confluence wiki syntax
author smith@nwoca.org
date Tue, 25 Jan 2011 21:59:31 -0500
parents f8b1ea49d065
children
comparison
equal deleted inserted replaced
3:4417b025157e 4:22ed6d93442c
1 package org.nwoca.ssdt.tools.html2wiki; 1 package org.nwoca.ssdt.tools.html2wiki;
2 2
3 import java.util.regex.*; 3 import java.util.regex.*;
4 4
5 class TagTransformer implements Transformer { 5 class TagTransformer implements Transformer {
6
6 private Pattern tagPattern; 7 private Pattern tagPattern;
7 private String replacementBegin; 8 private String replacementBegin;
8 private String replacementEnd; 9 private String replacementEnd;
9 10
10 public TagTransformer(String regexp, String replacementBegin, String replacementEnd) { 11 public TagTransformer(String regexp, String replacementBegin, String replacementEnd) {
11 tagPattern = Pattern.compile(regexp); 12 this(regexp, false, replacementBegin, replacementEnd);
13 }
14
15 public TagTransformer(String regexp, boolean multiline, String replacementBegin, String replacementEnd) {
16 tagPattern = multiline
17 ? Pattern.compile(regexp, Pattern.MULTILINE + Pattern.DOTALL)
18 : Pattern.compile(regexp);
19
12 this.replacementBegin = replacementBegin; 20 this.replacementBegin = replacementBegin;
13 this.replacementEnd = replacementEnd; 21 this.replacementEnd = replacementEnd;
14 22
15 } 23 }
24
16 public TagTransformer(String regexp, String replacement) { 25 public TagTransformer(String regexp, String replacement) {
17 this(regexp,replacement,replacement); 26 this(regexp, replacement, replacement);
18 } 27 }
19 28
20 public void apply(StringBuffer buffer) { 29 public void apply(StringBuffer buffer) {
21 Matcher matcher = tagPattern.matcher(buffer); 30 Matcher matcher = tagPattern.matcher(buffer);
22 31
23 boolean first = true; 32 boolean first = true;
24 while (matcher.find(first ? 0 : matcher.start())) { 33 while (matcher.find(first ? 0 : matcher.start())) {
25 buffer.replace(matcher.start(),matcher.end(),replacementBegin + matcher.group(1) + replacementEnd); 34 buffer.replace(matcher.start(), matcher.end(), replacementBegin + matcher.group(1) + replacementEnd);
26 first = false; 35 first = false;
27 } 36 }
28 37
29 }
30
31 public String toString() {
32 return "Replace: " + tagPattern.pattern() + " with " +replacementBegin + "..." + replacementEnd;
33 } 38 }
34 39
40 public String toString() {
41 return "Replace: " + tagPattern.pattern() + " with " + replacementBegin + "..." + replacementEnd;
42 }
35 } 43 }