Conditions

Conditionsは、<condition> タスクや<waitfor>タスクのネストされた要素です。 コア条件とカスタム条件があります。カスタム条件は、 Custom Conditions で記述されています。 コア条件は以下に記述されています。

コア条件

<condition> および<waitfor>タスクにおいて、 条件を示すために、ネストした要素として使用できます。

not

<not>要素は、この要素内にネストした条件の結果の否定を示します。 この要素は、一切の属性を持ちません。また、conditionタスクにおいて利用可能な全ての要素を、 ネストした要素として利用する事ができます。

and

<and>要素は、属性を一切もたず、 任意の数の条件をネストした要素として受け付けます。 conditionタスクにおいて利用可能な全ての要素を、 ネストした要素として利用する事ができます。 この条件は、含まれている条件の全てが真であれば、真となります。 条件は、ビルドファイルに記述された順に評価されます。

<and>条件は、 Javaの&&オぺレ−タと同一のショ−トカットセマンティクスを持ちます。 すなわち、ネストされた条件の1つでも偽であれば、その他の条件は評価されません。

or

<or>要素は、属性を一切もたず、 任意の数の条件をネストした要素として受け付けます。 conditionタスクにおいて利用可能な全ての要素を、 ネストした要素として利用する事ができます。この条件は、 含まれている条件の1つでも真であれば、真となります。条件は、 ビルドファイルに記述された順に評価されます。

<or>条件は、 Javaの || オぺレ−タと同一のショ−トカットセマンティクスを持ちます。 すなわち、ネストした条件の1つが真であれば、その他の条件は評価されません。

available

この条件は、Availableタスクと同一です。 Availableタスクの全ての属性とネストした要素が使用できます。 プロパティ属性およびvalue属性は、不要なものとして無視されます。

uptodate

この条件はUptodateタスクと同一です。 Uptodateタスクの全ての属性とネスした要素を使用できます。 プロパティ属性およびvalue属性は、不要なものとして無視されます。

os

現在のオペレーティングシステム(OS)が指定されたタイプであるかどうか、 テストします。それぞれの属性についてテストが行われ、 全てが満たされている場合にのみ、タスクの実行結果が真となります。

属性 説明 必須
family 期待するOSファミリーの名前。 No
name 期待するOSの名前。 No
arch OSに対して期待されるアーキテクチャ。 No
version 期待されるOSのバージョン。 No

family属性に適用可能な値:

equals

二つの文字列が同一かどうかをテストします。

属性 説明 必須
arg1 比較対象となる文字列。 Yes
arg2 もう一方の比較対象文字列。 Yes
casesensitive 文字列の大小を考慮した比較を行うかどうかのフラグ。デフォルト値はtrueです。 No
trim 比較前に空白文字をトリムするかどうかの比較。デフォルト値はfalseです。 No

isset

プロジェクトにおいて、指定されたプロパティが設定されているかどうか、テストします。

属性 説明 必須
property 設定されているかどうかテストするプロパティの名前。 Yes

checksum

この条件はChecksumタスクとまったく同じ働きをします。 Checksumタスクの全ての属性およびネストした要素が使用可能ですが、 propertyおよびoverwrite属性は冗長なため、無視されます。

http

http条件は、指定されたURLで示されるWebサーバから、 妥当なレスポンスが返されるかどうか、テストします。 通常は、400以上のエラーコードで示される応答が返された場合、 妥当でないと判断します。

属性 説明 必須
url 要求するページの完全なURL。 Webサーバは<errorsBeginAtの下で示されるエラーコードを返さなくてはいけません。 Yes.
errorsBeginAt エラーの発生を示す最低のHTTP応答コード。 デフォルト値は400であり、サーバエラーや認証不可、存在しないファイル、 およびそれに類するものが検出されます。 No

socket

socket条件は、指定されたホストの指定されたポートにおける、 TCP/IPリスナの存在をテストします。

属性 説明 必須
server サーバのDNS名もしくはIPアドレスを指定します。 Yes.
port 接続先のポート番号。 Yes.

filesmatch

2つのファイルの一致をテストします。いずれか一方のファイルが存在しない場合、 結果は"偽"となります。このファイルの比較はバイト単位で行われるため、 テストはファイルのバイト数分、行われます。 ファイルのサイズが異なる場合やファイルが存在しない場合、 ファイル名が一致しない場合などの結果が明白な場合は、詳細な比較は省略されます。

属性 説明 必須
file1 比較対照のファイル。 Yes.
file2 もう一方の比較対象のファイル。 Yes.

contains

文字列がもう一方の文字列を含んでいるか、テストします。

属性 説明 必須
string 部分文字列の検索元となる文字列。 Yes
substring 検索対象となる部分文字列。 Yes
casesensitive 文字の大小を区別した判定を行うかどうかを指定します。デフォルト値はtrueです。 No

istrue

文字列が、"true"や"yes"、"on"といった、Antで定義するtrueを示すものであるかどうか、テストします。

属性 説明 必須
value テスト対象の値。 Yes
    <istrue value="${someproperty}"/>
    <istrue value="false"/>

isfalse

<istrue>とは逆に、文字列がtrueを示す文字列でないことを確認します。

属性 説明 必須
value テスト対象の値。 Yes
    <isfalse value="${someproperty}"/>
    <isfalse value="false"/>

isreference

与えられた参照が既に定義されているかと、(任意で)期待する型であるかどうか、テストします。

この条件は、Apache Ant 1.6. から追加されました。

属性 説明 必須
refid テストする参照id Yes
type 期待されるデータ型名または、タスク名 No

[訳注:これは山崎政憲の訳を参考に、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]