FileDocCategorySizeDatePackage
ConditionTask.javaAPI DocApache Ant 1.703795Wed Dec 13 06:16:20 GMT 2006org.apache.tools.ant.taskdefs

ConditionTask

public 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.

since
Ant 1.4
ant.task
category="control"

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 voidexecute()
See whether our nested condition holds and set the property.

since
Ant 1.4
exception
BuildException if an error occurs

        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 voidsetElse(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.

param
e the alternate value of the property.
since
Ant 1.6.3

        alternative = e;
    
public voidsetProperty(java.lang.String p)
The name of the property to set. Required.

param
p the name of the property
since
Ant 1.4

        property = p;
    
public voidsetValue(java.lang.String v)
The value for the property to set, if condition evaluates to true. Defaults to "true".

param
v the value of the property
since
Ant 1.4

        value = v;