Programming your own Selectors

あなたのセレクターをプログラミングする

Selector Programming API

セレクタープログラミングAPI

Want to define your own selectors? It's easy!

あなたのセレクターを定義したいですか? 簡単にできますよ!

First, pick the type of selector that you want to define. There are three types, and a recipe for each one follows. Chances are you'll want to work with the first one, Custom Selectors.

まず、あなたが定義したいセレクターの型を決めます。 型には3種類あり、それぞれについてのレシピは次のようになります。 最初のセレクターを扱いたいと思うかも知れませんね、カスタムセレクターです。

Custom Selectors

カスタムセレクター

This is the category that Ant provides specifically for youto define your own Selectors. Anywhere you want to use your selector you use the <custom> element and specify the class name of your selector within it. See the Custom Selectors section of the Selector page for details. The <custom> element can be used anywhere the core selectors can be used. It can be contained within Selector Containers, for example.

これはあなたが自身のセレクターを定義するために特別にAntが提供するカテゴリーです。 あなたが自身の自身のセレクターを使用したい場所ならどこでも あなたは<custom> 要素を使用し、 その中に含まれる自身のセレクターのクラス名を指定できます。 詳しくはセレクターページのカスタムセレクター の章を見てください。 <custom> 要素はコアセレクターを使用できるところならどこでも使用できます。 It can be contained within 例えば<custom> 要素は セレクターコンテナに含めることができます。

To create a new Custom Selector, you have to create a class that implements org.apache.tools.ant.types.selectors.ExtendFileSelector. The easiest way to do that is through the convenience base class org.apache.tools.ant.types.selectors.BaseExtendSelector, which provides all of the methods for supporting <param> tags. First, override the isSelected() method, and optionally the verifySettings() method. If your custom selector requires parameters to be set, you can also override the setParameters() method and interpret the parameters that are passed in any way you like. Several of the core selectors demonstrate how to do that because they can also be used as custom selectors.

To create a new Custom Selector, you have to create a class that

新しいカスタムセレクターを作成するには、 org.apache.tools.ant.types.selectors.ExtendFileSelector. を実装したクラスを作成する必要があります。 それをするのに最も簡単な方法は <param> タグをサポートする全てのメソッドを提供する org.apache.tools.ant.types.selectors.BaseExtendSelector, コンビニエンスベースクラスを通すことです。 まず、 isSelected() メソッドをオーバーライドし、オプション的に verifySettings() メソッドも。 もしあなたのカスタムセレクターにパラメータの設定が必要なら、 setParameters()メソッドをオーバーライドすることもできますし、 渡されたパラメータをあなたの好きなように解釈することもできます。 コアセレクターのいくつかはそのやり方を実演します、というのはそれらも カスタムセレクターとして使用されているからです。

Note: If you don't need to set variables on your selector with the the embedded <param> elements, your custom selector could just implement the org.apache.tools.ant.types.selectors.FileSelector interface rather than the full org.apache.tools.ant.types.selectors.ExtendFileSelector interface. Using the latter will give you the most flexibility, though.

注: If you don't need to set variables on your selector もし組み込み<param>要素を持つあなたのセレクターに 変数を設定する必要がないなら、あなたのカスタムセレクターは全ての org.apache.tools.ant.types.selectors.ExtendFileSelector インターフェースを実装するのではなく org.apache.tools.ant.types.selectors.FileSelector インターフェースだけを実装するだけで良いかも知れません。 でも、前者(org.apache.tools.ant.types.selectors.ExtendFileSelector)の使用は 最も柔軟性があります。

Note: If you inherit from org.apache.tools.ant.types.selectors.BaseExtendSelector or org.apache.tools.ant.types.selectors.BaseSelector, any selector container will perform a validation pass before calling the isSelected() method. Make sure that all initialization is performed before the validation is done.

注: もしあなたが org.apache.tools.ant.types.selectors.BaseExtendSelectororg.apache.tools.ant.types.selectors.BaseSelector から継承しているなら、どのセレクターコンテナも isSelected()メソッドを呼ぶ前に バリデーションパスを振舞います。 バリデーションが行われる前に全ての初期化が実行されることを確認してください。

Core Selectors

コアセレクター

These are the selectors used by Ant itself. To implement one of these, you will have to alter some of the classes contained within Ant.

これらはAnt自身によって使用されているセレクターです。これらのうちの1つを実装するには、 Antに含まれているクラスのいくつかを変更しなければならないでしょう。

Selector Containers

セレクターコンテナ

Got an idea for a new Selector Container? Creating a new one is no problem:

新しいセレクターコンテナのアイディアを思いつきましたか?新しいものを作るのに何の問題もありません:


Copyright © 2002 Apache Software Foundation. All rights Reserved.

[訳注:これは下地寛武が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]