EnumeratedAttribute

Antタスクの属性で、「ある決まった値の中から1つのみを指定させる」というようにしたい場合がある。
例えば、echoタスクのlevel属性の指定(errorやらinfoやら)みたいに。
これを実現するためのクラスとして、EnumeratedAttributeがある。


これを使えば、EclipseのAntエディタでコード補完したときに、
属性の値を選択肢から選べるようになる。


んで、このように使うらしい。


public class TekitouTask extends Task {

public static class MyEnumAttr extends EnumeratedAttribute {
public String[] getValues() {
return new String[]{"ykhr", "kokko", "hogefoo"};
}
}

private String attr;
public void setAttr(MyEnumAttr attr) {
this.attr = attr.getValue();
}

public void execute() throws BuildException {
if (attr == null) {
throw new BuildException("attr is null.");
}
System.out.println(attr);
}

}


意外に簡単なんだなぁ。
使えばよかったorz