[jboss-cvs] jboss-seam ...
Gavin King
gavin.king at jboss.com
Fri Jan 26 13:15:40 EST 2007
User: gavin
Date: 07/01/26 13:15:40
Modified: jboss-seam seam-text.g
Log:
finish the link support
Revision Changes Path
1.24 +23 -10 jboss-seam/seam-text.g
(In the diff below, changes in quantity of whitespace are not shown.)
Index: seam-text.g
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/seam-text.g,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- seam-text.g 26 Jan 2007 16:02:40 -0000 1.23
+++ seam-text.g 26 Jan 2007 18:15:40 -0000 1.24
@@ -12,20 +12,17 @@
private java.util.Set htmlElements = new java.util.HashSet( java.util.Arrays.asList( new String[] { "a", "p", "quote", "code", "pre", "table", "tr", "td", "th", "ul", "ol", "li", "b", "i", "u", "tt", "del", "em", "hr", "br", "div", "span", "h1", "h2", "h3", "h4", "img" } ) );
private java.util.Set htmlAttributes = new java.util.HashSet( java.util.Arrays.asList( new String[] { "src", "href", "lang", "class", "id" } ) );
- private StringBuilder builder = new StringBuilder();
+ private StringBuilder mainBuilder = new StringBuilder();
+ private StringBuilder builder = mainBuilder;
public String toString() {
return builder.toString();
}
- public void append(String... strings) {
+ private void append(String... strings) {
for (String string: strings) builder.append(string);
}
- public void append(StringBuilder sb) {
- builder.append(sb);
- }
-
private static boolean hasMultiple(String string, char c) {
return string.indexOf(c)!=string.lastIndexOf(c);
}
@@ -42,6 +39,22 @@
}
}
+ private void beginCapture() {
+ builder = new StringBuilder();
+ }
+
+ private String endCapture() {
+ String result = builder.toString();
+ builder = mainBuilder;
+ return result;
+ }
+
+ protected String linkUrl(String linkText) { return linkText.trim(); }
+
+ protected String linkDescription(String descriptionText, String linkText) {
+ return descriptionText.toString().trim().length()>0 ? descriptionText : linkText;
+ }
+
}
startRule: (newline)* ( (heading (newline)* )? text (heading (newline)* text)* )?
@@ -96,13 +109,13 @@
;
link: OPEN
- { StringBuilder main=builder; builder = new StringBuilder(); }
+ { beginCapture(); }
(plain)*
- { StringBuilder text=builder; builder=main; }
+ { String text=endCapture(); }
EQ GT
- { append("<a href=\""); }
+ { beginCapture(); }
attributeValue
- { append("\">"); append(text); append("</a>"); }
+ { String link = endCapture(); append("<a href=\""); append( linkUrl(link) ); append("\">"); append( linkDescription(text, link) ); append("</a>"); }
CLOSE
;
More information about the jboss-cvs-commits
mailing list