geirm 01/06/18 20:34:20
Modified: src/java/org/apache/velocity/runtime/parser/node
ASTReference.java
Log:
Added small change to override literal(), so a VM can change the
literal representation for proper schmoo-like rendering.
Revision Changes Path
1.34 +40 -1
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java
Index: ASTReference.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- ASTReference.java 2001/05/20 19:50:06 1.33
+++ ASTReference.java 2001/06/19 03:34:20 1.34
@@ -83,7 +83,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Christoph Reck</a>
* @author <a href="mailto:[EMAIL PROTECTED]>Kent Johnson</a>
- * @version $Id: ASTReference.java,v 1.33 2001/05/20 19:50:06 geirm Exp $
+ * @version $Id: ASTReference.java,v 1.34 2001/06/19 03:34:20 geirm Exp $
*/
public class ASTReference extends SimpleNode
{
@@ -100,6 +100,8 @@
private String prefix = "";
private String firstTokenPrefix = "";
private String identifier = "";
+
+ private String literal = null;
private int numChildren = 0;
@@ -663,6 +665,43 @@
public Object getVariableValue(Context context, String variable)
{
return context.get(variable);
+ }
+
+
+ /**
+ * Routine to allow the literal representation to be
+ * externally overridden. Used now in the VM system
+ * to override a reference in a VM tree with the
+ * literal of the calling arg to make it work nicely
+ * when calling arg is null. It seems a bit much, but
+ * does keep things consistant.
+ *
+ * Note, you can only set the literal once...
+ *
+ * @param literal String to render to when null
+ */
+ public void setLiteral( String literal )
+ {
+ /*
+ * do only once
+ */
+
+ if( this.literal == null)
+ this.literal = literal;
+ }
+
+ /**
+ * Override of the SimpleNode method literal()
+ * Returns the literal representation of the
+ * node. Should be something like
+ * $<token>.
+ */
+ public String literal()
+ {
+ if (literal != null)
+ return literal;
+
+ return super.literal();
}
}