public class X {
	X(String s) {
	}
	protected void foo() {
		cmd.createArgument().foo().test().error().setFile(
				(Name) (destDir()).getAbsoluteFile());
	}
}