01: package org.apache.velocity.runtime.parser.node;
02:
03: /*
04: * Licensed to the Apache Software Foundation (ASF) under one
05: * or more contributor license agreements. See the NOTICE file
06: * distributed with this work for additional information
07: * regarding copyright ownership. The ASF licenses this file
08: * to you under the Apache License, Version 2.0 (the
09: * "License"); you may not use this file except in compliance
10: * with the License. You may obtain a copy of the License at
11: *
12: * http://www.apache.org/licenses/LICENSE-2.0
13: *
14: * Unless required by applicable law or agreed to in writing,
15: * software distributed under the License is distributed on an
16: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17: * KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations
19: * under the License.
20: */
21:
22: import java.io.Writer;
23: import java.io.IOException;
24:
25: import org.apache.velocity.context.InternalContextAdapter;
26: import org.apache.velocity.runtime.parser.Parser;
27: import org.apache.velocity.runtime.parser.ParserVisitor;
28:
29: /**
30: * This class is responsible for handling Escapes
31: * in VTL.
32: *
33: * Please look at the Parser.jjt file which is
34: * what controls the generation of this class.
35: *
36: * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
37: * @version $Id: ASTEscape.java 471381 2006-11-05 08:56:58Z wglass $
38: */
39: public class ASTEscape extends SimpleNode {
40: /** Used by the parser */
41: public String val;
42: private char[] ctext;
43:
44: /**
45: * @param id
46: */
47: public ASTEscape(int id) {
48: super (id);
49: }
50:
51: /**
52: * @param p
53: * @param id
54: */
55: public ASTEscape(Parser p, int id) {
56: super (p, id);
57: }
58:
59: /**
60: * @see org.apache.velocity.runtime.parser.node.SimpleNode#jjtAccept(org.apache.velocity.runtime.parser.ParserVisitor, java.lang.Object)
61: */
62: public Object jjtAccept(ParserVisitor visitor, Object data) {
63: return visitor.visit(this , data);
64: }
65:
66: /**
67: * @see org.apache.velocity.runtime.parser.node.SimpleNode#init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)
68: */
69: public Object init(InternalContextAdapter context, Object data) {
70: ctext = val.toCharArray();
71: return data;
72: }
73:
74: /**
75: * @see org.apache.velocity.runtime.parser.node.SimpleNode#render(org.apache.velocity.context.InternalContextAdapter, java.io.Writer)
76: */
77: public boolean render(InternalContextAdapter context, Writer writer)
78: throws IOException {
79: if (context.getAllowRendering()) {
80: writer.write(ctext);
81: }
82: return true;
83: }
84: }
|