お決まりコードを設計書から自動生成するblancoCsvCoolなEclipseプラグイン(18)(2/3 ページ)

» 2007年06月06日 00時00分 公開
[菅原康友NTTデータ 基盤システム事業本部]

ファイル定義書からのコードの自動生成

ファイル定義書(CSV)の記入

 次に、Excelなどの表計算ソフトを使って、ファイル定義書を入力します。

 Eclipseの[パッケージ・エクスプローラー]から直接、定義書を開けます。開きたいファイル定義書を選択、右クリックし、[アプリケーションから開く]→[システム・エディタ]を選択します。ファイル定義書を開き、項目を埋めていきます。

項目名 項目に記述する説明
ファイル定義ID ファイル定義書の固有ID(半角英数字)を指定
説明 定義されるCSVファイルの説明を記入
パッケージ blancoCsvが生成するCSV入出力クラスの基底パッケージを指定
デリミタ 項目の区切り文字を指定
任意指定デリミタ文字 項目「デリミタ」が「任意項目」の場合、区切り文字を自由に設定できる
エンコーディング デフォルトエンコーディング以外を利用する場合に、記入
タイトル行 設定すると、生成するクラスにタイトル行出力用メソッドが追加される
ファイル定義書(CSV)の説明、共通部分

項目名 項目に記述する説明
No 項番。CSVファイルのレコードは、ここで指定した番号順に読み込まれるのではなく、一覧の上から順に読み込まれる
項目名 blancoCsvで生成されるクラスで扱う項目の物理名。この値を基に、各レコードのsettergetterが生成される
項目の説明 項目の説明を記入
文字列整数int)、整数long)、数値decimal)、日時date)の中から選択
必須 blancoCsvで生成されたクラスで必須チェックをする場合「○」を選択
桁(バイト数) blancoCsvで生成されたクラスでけた数チェックをする場合、記入する
書式 項目「型」が日付の場合のみ、書式を指定
規定値 初期値を与えたい場合に記入
ファイル定義書(CSV)の説明、一覧部分

 例えば、以下に挙げるsample.csvファイルを扱いたい場合は、ファイル定義(一覧)には、図5のように記述します。

12345678,山田太郎,東京都,9999,14,2007/05/25
sample.csv(顧客ID,氏名,住所,商品ID,個数,注文日)
図5 ファイル定義書(CSV) 図5 ファイル定義書(CSV)

 なお、記述要領がblanco Framework本家から提供されています。「blancoCsv ファイル定義書記述要領」を本家よりダウンロードし、参照することでより理解が深まります。定義書記入要領などドキュメント類は、blancoCsvのサイトで入手できます。

 ファイル定義書の入力が完了したら、ファイルを保存し、終了します。

CSV入出力コードの生成

 次に、いよいよblancoCsvプラグインを使い、CSV入出力用のソースコードを自動生成します。Eclipseに戻り、[blancoCsv設定エディタ]の[Javaソースコード生成]ボタンを押下します(blancoCsv設定エディタを閉じていた場合は、選択したJavaプロジェクト直下のblancocsv.blancofwをダブルクリックすると起動します)。

 Javaプロジェクト直下に「blanco/main」ディレクトリができ、ファイル定義書で指定したパッケージ名でCSV入出力用クラスが自動生成されます(図6)。

図6 blancoCsvで自動生成されたコード 図6 blancoCsvで自動生成されたコード

 以上で、プラグインを使ったソースコードの自動生成は終了です。

生成されたCSV入出力クラスの特徴

 なお、よく見掛けるCSVファイルの入出力クラスは配列で読み込むものが多いですが、自動生成されたコードはPOJOで、タイプセーフになっています。これにより何レコード目がどの項目になっているかということを意識せずに、CSVファイルを操作するクラスが作成できます。

編集部注:POJOそのものについて詳しく知りたい読者は、「J2EE Watch 第11回、米JBossは米Red Hatとマーケットシェア拡大を狙う」の「*2:POJO」を参照してください。

 また、外部ライブラリへの依存がありません。よって、本プラグインで生成したコードをプロジェクトに導入する際のライブラリ調整の必要がありません。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。