View Javadoc
1   package net.sourceforge.pmd.lang.vm.directive;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "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  /**
23   *  Macro implements the macro definition directive of VTL.
24   *
25   *  example :
26   *
27   *  #macro( isnull $i )
28   *     #if( $i )
29   *         $i
30   *      #end
31   *  #end
32   *
33   *  This object is used at parse time to mainly process and register the
34   *  macro.  It is used inline in the parser when processing a directive.
35   *
36   * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
37   * @author <a href="hps@intermeta.de">Henning P. Schmiedehausen</a>
38   * @version $Id: Macro.java 746438 2009-02-21 05:41:24Z nbubna $
39   */
40  public class Macro extends Directive
41  {
42      /**
43       * Return name of this directive.
44       * @return The name of this directive.
45       */
46      public String getName()
47      {
48          return "macro";
49      }
50  
51      /**
52       * Return type of this directive.
53       * @return The type of this directive.
54       */
55      public int getType()
56      {
57          return BLOCK;
58      }
59  
60      /**
61       * Since this class does no processing of content,
62       * there is never a need for an internal scope.
63       */
64      public boolean isScopeProvided()
65      {
66          return false;
67      }
68  }