1 package org.apache.maven.jelly.tags.maven;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
60
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 }