upayavira 2004/04/14 02:39:45
Modified: src/java/org/apache/cocoon/components/treeprocessor/variables
PreparedVariableResolver.java
src/test/org/apache/cocoon/components/treeprocessor/variables
PreparedVariableResolverTestCase.java
Log:
Fixing case were a colon occurs as a single text character, not a token, e.g:
{1}:{1}
As reported by Christian Mayrhuber on user list
Revision Changes Path
1.8 +3 -12
cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/variables/PreparedVariableResolver.java
Index: PreparedVariableResolver.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/treeprocessor/variables/PreparedVariableResolver.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PreparedVariableResolver.java 4 Apr 2004 06:38:16 -0000 1.7
+++ PreparedVariableResolver.java 14 Apr 2004 09:39:45 -0000 1.8
@@ -418,17 +418,8 @@
}
public Token(String value) {
- this.value = null;
- if (value.equals("{")) {
- this.type = OPEN;
- } else if (value.equals("}")) {
- this.type = CLOSE;
- } else if (value.equals(":")) {
- this.type = COLON;
- } else {
- this.type = TEXT;
- this.value = value;
- }
+ this.type = TEXT;
+ this.value = value;
}
public int getType() {
1.4 +17 -1
cocoon-2.1/src/test/org/apache/cocoon/components/treeprocessor/variables/PreparedVariableResolverTestCase.java
Index: PreparedVariableResolverTestCase.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/test/org/apache/cocoon/components/treeprocessor/variables/PreparedVariableResolverTestCase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PreparedVariableResolverTestCase.java 4 Apr 2004 06:38:16 -0000
1.3
+++ PreparedVariableResolverTestCase.java 14 Apr 2004 09:39:45 -0000
1.4
@@ -187,6 +187,21 @@
assertEquals(":colon-starts-this", resolver.resolve(context,
getObjectModel()));
}
+ public void testEmbeddedColon() throws PatternException {
+ String expr = "{1}:{1}";
+
+ InvokeContext context = new InvokeContext(true);
+ context.enableLogging(new LogKitLogger(getLogger()));
+
+ Map sitemapElements;
+ sitemapElements = new HashMap();
+ sitemapElements.put("1", "abc");
+ context.pushMap("label", sitemapElements);
+
+ PreparedVariableResolver resolver = new
PreparedVariableResolver(expr, manager);
+ assertEquals("abc:abc", resolver.resolve(context, getObjectModel()));
+ }
+
public void testEscapedBraces() throws PatternException {
String expr = "This is a \\{brace\\}";
@@ -200,4 +215,5 @@
PreparedVariableResolver resolver = new
PreparedVariableResolver(expr, manager);
assertEquals("This is a {brace}", resolver.resolve(context,
getObjectModel()));
}
+
}