1 package org.apache.velocity.runtime.parser.node;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.io.Writer;
24
25 import org.apache.velocity.context.InternalContextAdapter;
26 import org.apache.velocity.exception.MethodInvocationException;
27 import org.apache.velocity.exception.ParseErrorException;
28 import org.apache.velocity.exception.ResourceNotFoundException;
29 import org.apache.velocity.runtime.parser.Parser;
30 import org.apache.velocity.runtime.parser.ParserVisitor;
31 import org.apache.velocity.runtime.parser.Token;
32
33
34
35
36
37
38
39 public class ASTComment extends SimpleNode
40 {
41 private static final char[] ZILCH = "".toCharArray();
42
43 private char[] carr;
44
45
46
47
48 public ASTComment(int id)
49 {
50 super(id);
51 }
52
53
54
55
56
57 public ASTComment(Parser p, int id)
58 {
59 super(p, id);
60 }
61
62
63
64
65 public Object jjtAccept(ParserVisitor visitor, Object data)
66 {
67 return visitor.visit(this, data);
68 }
69
70
71
72
73
74
75
76 public Object init(InternalContextAdapter context, Object data)
77 {
78 Token t = getFirstToken();
79
80 int loc1 = t.image.indexOf("##");
81 int loc2 = t.image.indexOf("#*");
82
83 if (loc1 == -1 && loc2 == -1)
84 {
85 carr = ZILCH;
86 }
87 else
88 {
89 carr = t.image.substring(0, (loc1 == -1) ? loc2 : loc1).toCharArray();
90 }
91
92 return data;
93 }
94
95
96
97
98 public boolean render( InternalContextAdapter context, Writer writer)
99 throws IOException, MethodInvocationException, ParseErrorException, ResourceNotFoundException
100 {
101
102 if (context.getAllowRendering())
103 {
104 writer.write(carr);
105 }
106
107 return true;
108 }
109
110 }