EMMA Coverage Report (generated Tue May 18 22:13:27 CDT 2004)
[all classes][org.apache.velocity.runtime.visitor]

COVERAGE SUMMARY FOR SOURCE FILE [VMReferenceMungeVisitor.java]

nameclass, %method, %block, %line, %
VMReferenceMungeVisitor.java100% (1/1)100% (2/2)100% (30/30)100% (9/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class VMReferenceMungeVisitor100% (1/1)100% (2/2)100% (30/30)100% (9/9)
VMReferenceMungeVisitor (Map): void 100% (1/1)100% (9/9)100% (4/4)
visit (ASTReference, Object): Object 100% (1/1)100% (21/21)100% (5/5)

1package org.apache.velocity.runtime.visitor;
2 
3/*
4 * Copyright 2001,2004 The Apache Software Foundation.
5 * 
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 * 
10 *      http://www.apache.org/licenses/LICENSE-2.0
11 * 
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18 
19import java.util.Map;
20 
21import org.apache.velocity.runtime.parser.node.ASTReference;
22 
23/**
24 *  This class is a visitor used by the VM proxy to change the 
25 *  literal representation of a reference in a VM.  The reason is
26 *  to preserve the 'render literal if null' behavior w/o making
27 *  the VMProxy stuff more complicated than it is already.
28 *
29 * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
30 * @version $Id: VMReferenceMungeVisitor.java,v 1.2.4.1 2004/03/03 23:23:03 geirm Exp $
31 */ 
32public class VMReferenceMungeVisitor extends BaseVisitor
33{
34    /**
35     *  Map containing VM arg to instance-use reference
36     *  Passed in with CTOR
37     */
38    private Map argmap = null;
39 
40    /**
41     *  CTOR - takes a map of args to reference
42     */
43    public VMReferenceMungeVisitor( Map map )
44    {
45        argmap = map;
46    }
47 
48    /**
49     *  Visitor method - if the literal is right, will
50     *  set the literal in the ASTReference node
51     *
52     *  @param node ASTReference to work on
53     *  @param data Object to pass down from caller
54     */
55    public Object visit( ASTReference node, Object data)
56    {
57        /*
58         *  see if there is an override value for this
59         *  reference
60         */
61        String override = (String) argmap.get( node.literal().substring(1) );
62 
63        /*
64         *  if so, set in the node
65         */
66        if( override != null)
67        {
68            node.setLiteral( override );
69        }
70 
71        /*
72         *  feed the children...
73         */
74        data = node.childrenAccept(this, data);   
75 
76        return data;
77    }
78}
79 

[all classes][org.apache.velocity.runtime.visitor]
EMMA 2.0.4015 (stable) (C) Vladimir Roubtsov