Jakarta Commons CLI

Jakarta Commons CLIというコマンド行の解析ライブラリを使ってみた。サンプルに以下のようなコードが出てくる。

Option logfile   = OptionBuilder.withArgName( "file" )
                                .hasArg()
                                .withDescription(  "use given file for log" )
                                .create( "file" );

ここでwithArgName,hasArg,withDescriptionはOptionBuilderオブジェクトを返すstaticメソッドである(createはOptionオブジェクトを返すstaticメソッド)。こんな風にstaticメソッドをカスケードで呼べるのでしょうか? > 識者

OptionBuilder.withArgName( "file" )

これでOptionBuilderのインスタンスが生成されて,それに対してhasArgメソッドを投げているためにエラーになる気がする..(実際にエラーになる)。サンプルがインチキなのか,またオレが壮大な勘違いをしているのか..