TestParser parser = new TestParser(new java.io.StringReader(args[0])); SimpleNode root = parser.program(); root.dump("");
@Override public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { return renderWithEscape(EscapeType.NO_ESCAPE, context, writer, node.jjtGetChild(0)); } }
AbstractExecutor executor = new PropertyExecutor(log, introspector, claz, identifier); if (!executor.isAlive()) { executor = new BooleanPropertyExecutor(log, introspector, claz, identifier); if (!executor.isAlive()) { executor = new MapGetExecutor(log, claz, identifier); if (!executor.isAlive()) { executor = new GetExecutor(log, introspector, claz, identifier); return executor.isAlive() ? new VelGetterImpl(executor) : null;
@Override public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { Node escapeTypeNode = node.jjtGetChild(0); Object escapeTypeObject = escapeTypeNode.value(context); String escapeTypeString = escapeTypeObject == null ? null : escapeTypeObject.toString(); EscapeType escapeType = EscapeType.getEscapeType(escapeTypeString); if (escapeType == null) { throw new ParseErrorException("Invalid escape type: " + escapeTypeObject + " at " + new Info(escapeTypeNode.getTemplateName(), escapeTypeNode.getColumn(), escapeTypeNode.getLine()) + ". Available escape types: " + EscapeType.getNames()); } return renderWithEscape(escapeType, context, writer, node.jjtGetChild(1)); } }
@Override public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException { super.init(rs, context, node); if (node.jjtGetNumChildren() != 1) { throw new TemplateInitException("Invalid args for #" + getName() + ". Expected 0 args.", context.getCurrentTemplateName(), node.getColumn(), node.getLine()); } }
private static boolean renderWithEscape(EscapeType escapeType, InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { EscapeType savedEscapeType = setEscapeType(escapeType, context); try { return node.render(context, writer); } finally { setEscapeType(savedEscapeType, context); } }
private SimpleNode traversNode(SimpleNode node) { int length = node.jjtGetNumChildren(); for (int i = 0; i < length; i++) { Node child = node.jjtGetChild(i); if (child instanceof ASTStringLiteral) { replaceStringLiteral(node, (ASTStringLiteral) child, i); } if (child instanceof SimpleNode) { traversNode((SimpleNode) child); } } return node; }
/** * @throws TemplateInitException * @see org.apache.velocity.runtime.parser.node.Node#init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object) */ public Object init( InternalContextAdapter context, Object data) throws TemplateInitException { Object obj = super.init(context, data); saveTokenImages(); cleanupParserAndTokens(); // drop reference to Parser and all JavaCC Tokens return obj; }
/** * @throws TemplateInitException * @see org.apache.velocity.runtime.parser.node.Node#init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object) */ public Object init( InternalContextAdapter context, Object data) throws TemplateInitException { Object obj = super.init(context, data); saveTokenImages(); cleanupParserAndTokens(); // drop reference to Parser and all JavaCC Tokens return obj; } }
/** * @throws TemplateInitException * @see org.apache.velocity.runtime.parser.node.Node#init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object) */ public Object init( InternalContextAdapter context, Object data) throws TemplateInitException { Object obj = super.init(context, data); cleanupParserAndTokens(); // drop reference to Parser and all JavaCC Tokens return obj; }
@Override public Object value(InternalContextAdapter context) { if (interpolate) { Object savedInterpolate = context.localPut(INTERPOLATE_KEY, Boolean.TRUE); try { return super.value(context); } finally { if (savedInterpolate == null) { context.remove(INTERPOLATE_KEY); } else { context.localPut(INTERPOLATE_KEY, savedInterpolate); } } } return super.value(context); } }
@Override public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { Node escapeTypeNode = node.jjtGetChild(0); Object escapeTypeObject = escapeTypeNode.value(context); String escapeTypeString = escapeTypeObject == null ? null : escapeTypeObject.toString(); EscapeType escapeType = EscapeType.getEscapeType(escapeTypeString); if (escapeType == null) { throw new ParseErrorException("Invalid escape type: " + escapeTypeObject + " at " + new Info(escapeTypeNode.getTemplateName(), escapeTypeNode.getColumn(), escapeTypeNode.getLine()) + ". Available escape types: " + EscapeType.getNames()); } return renderWithEscape(escapeType, context, writer, node.jjtGetChild(1)); } }
@Override public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException { super.init(rs, context, node); if (node.jjtGetNumChildren() != 1) { throw new TemplateInitException("Invalid args for #" + getName() + ". Expected 0 args.", context.getCurrentTemplateName(), node.getColumn(), node.getLine()); } }
AbstractExecutor executor = new PropertyExecutor(log, introspector, claz, identifier); if (!executor.isAlive()) { executor = new BooleanPropertyExecutor(log, introspector, claz, identifier); if (!executor.isAlive()) { executor = new MapGetExecutor(log, claz, identifier); if (!executor.isAlive()) { executor = new GetExecutor(log, introspector, claz, identifier); return executor.isAlive() ? new VelGetterImpl(executor) : null;
@Override public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { return renderWithEscape(EscapeType.NO_ESCAPE, context, writer, node.jjtGetChild(0)); } }
private static boolean renderWithEscape(EscapeType escapeType, InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException { EscapeType savedEscapeType = setEscapeType(escapeType, context); try { return node.render(context, writer); } finally { setEscapeType(savedEscapeType, context); } }
private SimpleNode traversNode(SimpleNode node) { int length = node.jjtGetNumChildren(); for (int i = 0; i < length; i++) { Node child = node.jjtGetChild(i); if (child instanceof ASTStringLiteral) { replaceStringLiteral(node, (ASTStringLiteral) child, i); } if (child instanceof SimpleNode) { traversNode((SimpleNode) child); } } return node; }
@Override public Object value(InternalContextAdapter context) { if (interpolate) { Object savedInterpolate = context.localPut(INTERPOLATE_KEY, Boolean.TRUE); try { return super.value(context); } finally { if (savedInterpolate == null) { context.remove(INTERPOLATE_KEY); } else { context.localPut(INTERPOLATE_KEY, savedInterpolate); } } } return super.value(context); } }
@Override public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException { super.init(rs, context, node); if (node.jjtGetNumChildren() != 2) { throw new TemplateInitException("Invalid args for #" + getName() + ". Expected 1 and only 1 string arg.", context.getCurrentTemplateName(), node.getColumn(), node.getLine()); } }
@Override public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException { super.init(rs, context, node); if (node.jjtGetNumChildren() != 2) { throw new TemplateInitException("Invalid args for #" + getName() + ". Expected 1 and only 1 string arg.", context.getCurrentTemplateName(), node.getColumn(), node.getLine()); } }