ConditionTaskpublic class ConditionTask extends org.apache.tools.ant.taskdefs.condition.ConditionBase Task to set a property conditionally using <uptodate>, <available>,
and many other supported conditions.
This task supports boolean logic as well as pluggable conditions
to decide, whether a property should be set.
This task does not extend Task to take advantage of
ConditionBase. |
Fields Summary |
---|
private String | property | private String | value | private String | alternative |
Constructors Summary |
---|
public ConditionTask()Constructor, names this task "condition".
super("condition");
|
Methods Summary |
---|
public void | execute()See whether our nested condition holds and set the property.
if (countConditions() > 1) {
throw new BuildException("You must not nest more than one "
+ "condition into <"
+ getTaskName() + ">");
}
if (countConditions() < 1) {
throw new BuildException("You must nest a condition into <"
+ getTaskName() + ">");
}
if (property == null) {
throw new BuildException("The property attribute is required.");
}
Condition c = (Condition) getConditions().nextElement();
if (c.eval()) {
log("Condition true; setting " + property + " to " + value,
Project.MSG_DEBUG);
getProject().setNewProperty(property, value);
} else if (alternative != null) {
log("Condition false; setting " + property + " to " + alternative,
Project.MSG_DEBUG);
getProject().setNewProperty(property, alternative);
} else {
log("Condition false; not setting " + property,
Project.MSG_DEBUG);
}
| public void | setElse(java.lang.String e)The value for the property to set, if condition evaluates to false.
If this attribute is not specified, the property will not be set.
alternative = e;
| public void | setProperty(java.lang.String p)The name of the property to set. Required.
property = p;
| public void | setValue(java.lang.String v)The value for the property to set, if condition evaluates to true.
Defaults to "true".
value = v;
|
|