View Javadoc

1   package org.apache.maven.jelly.tags.maven;
2   
3   /* ====================================================================
4    *   Licensed to the Apache Software Foundation (ASF) under one or more
5    *   contributor license agreements.  See the NOTICE file distributed with
6    *   this work for additional information regarding copyright ownership.
7    *   The ASF licenses this file to You under the Apache License, Version 2.0
8    *   (the "License"); you may not use this file except in compliance with
9    *   the License.  You may obtain a copy of the License at
10   *
11   *       http://www.apache.org/licenses/LICENSE-2.0
12   *
13   *   Unless required by applicable law or agreed to in writing, software
14   *   distributed under the License is distributed on an "AS IS" BASIS,
15   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   *   See the License for the specific language governing permissions and
17   *   limitations under the License.
18   * ====================================================================
19   */
20  
21  import org.apache.commons.jelly.JellyTagException;
22  import org.apache.commons.jelly.MissingAttributeException;
23  import org.apache.commons.jelly.XMLOutput;
24  import org.apache.maven.jelly.tags.BaseTagSupport;
25  
26  /**
27   * A Maven Jelly tag that attempts to retrieve a property from the MavenJellyContext
28   * context and uses the provided default value in the event there is no valid value
29   * retrieved using the key name provided. You may also optionally provide the name
30   * you would like to give the resultant property in the MavenJellyContext.
31   *
32   * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
33   *
34   */
35  public class PropertyTag
36      extends BaseTagSupport
37  {
38      private String name;
39  
40      private String defaultValue;
41  
42      private String var;
43  
44      public void setName( String name )
45      {
46          this.name = name;
47      }
48  
49      public void setDefaultValue( String defaultValue )
50      {
51          this.defaultValue = defaultValue;
52      }
53  
54      public void setVar( String var )
55      {
56          this.var = var;
57      }
58  
59      /* (non-Javadoc)
60       * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput)
61       */
62      public void doTag( XMLOutput output )
63          throws MissingAttributeException, JellyTagException
64      {
65          checkAttribute( name, "name" );
66  
67          checkAttribute( defaultValue, "defaultValue" );
68  
69          String property = (String) getContext().getVariable( name );
70  
71          if ( property == null )
72          {
73              property = defaultValue;
74          }
75  
76          if ( var != null )
77          {
78              getContext().setVariable( var, property );
79          }
80          else
81          {
82              getContext().setVariable( name, property );
83          }
84      }
85  }