5.8 Conditions

Conditions are nested elements of the condition, if and waitfor tasks.

5.8.1 not

The <not> element expects exactly one other condition to be nested into this element, negating the result of the condition. It doesn't have any attributes and accepts all nested elements of the condition task as nested elements as well.

5.8.2 and

The <and> element doesn't have any attributes and accepts an arbitrary number of conditions as nested elements. This condition is true if all of its contained conditions are, conditions will be evaluated in the order they have been specified in the build file.

The <and> condition has the same shortcut semantics as the && operator in some programming languages, as soon as one of the nested conditions is false, no other condition will be evaluated.

5.8.3 or

The <or> element doesn't have any attributes and accepts an arbitrary number of conditions as nested elements. This condition is true if at least one of its contained conditions is, conditions will be evaluated in the order they have been specified in the build file.

The <or> condition has the same shortcut semantics as the || operator in some programming languages, as soon as one of the nested conditions is true, no other condition will be evaluated.

5.8.4 os

Test whether the current operating system is of a given type.

Table 5.1: OS Attributes

AttributeDescriptionRequired
familyThe name of the operating system family to expect.Yes

Supported values for the family attribute are:

  • windows (for all versions of Microsoft Windows)

  • mac (for all Apple Macintosh systems)

  • unix (for all Unix and Unix-like operating systems)

5.8.5 equals

Tests whether the two given Strings are identical

Table 5.2: equals Attributes

AttributeDescriptionRequired
arg1First string to test.Yes
arg2Second string to test.Yes
casesensitivePerform a case sensitive comparision. Default is true.No
trimTrim whitespace from arguments before comparing them. Default is false.No

5.8.6 isset

Test whether a given property has been set in this project.

Table 5.3: isset Attributes

AttributeDescriptionRequired
propertyThe name of the property to test.Yes

5.8.7 contains

Tests whether a string contains another one.

Table 5.4: contains Attributes

AttributeDescriptionRequired
stringThe string to search in.Yes
substringThe string to search for.Yes
casesensitivePerform a case sensitive comparision. Default is true.No

5.8.8 istrue

Tests whether a string evaluates to true.

Table 5.5: istrue Attributes

AttributeDescriptionRequired
valuevalue to testYes

<istrue value="${someproperty}"/>
<istrue value="false"/>

5.8.9 isfalse

Tests whether a string evaluates to not true, the negation of <istrue>

Table 5.6: isfalse Attributes

AttributeDescriptionRequired
valuevalue to testYes

<isfalse value="${someproperty}"/>
<isfalse value="false"/>

5.8.10 referenceexists

Tests whether a specified reference exists.

Table 5.7: referenceexists Attributes

AttributeDescriptionRequired
refreference to test forYes

<referenceexists ref="${someid}"/>

5.8.11 available

This condition is identical to the Available task, all attributes and nested elements of that task are supported, the property and value attributes are redundant and will be ignored.