2006年06月17日

JOELibでバベる!

JOELibを使って簡易babelを作成してみます。元々babel自体がOELibで作られていますので、JOELibでbabelっぽいプログラムを作るのは容易だろうと想像できます。

JOELibではSimpleReaderクラスを用いてファイルの入力を行います。
SimpleReaderクラスのインスタンスの生成時に、ファイル形式の情報が必要となるため、IOTypeHolderクラスを用いて、その情報を取得します。

 IOType inType = IOTypeHolder.instance().filenameToType(inputf);

ここでは、インスタンスの数を1つに保つために、GoFのSingletonパターンが使われていると思います。

 sreader = new SimpleReader(inputs,inType);

また、ファイルの出力は、SimpleWriterクラスを用いて行います。

 IOType outType = IOTypeHolder.instance().filenameToType(outputf);
 swriter = new SimpleWriter(outputs,outType);

そして、JOEMolクラスのインスタンスの生成を次のように行います。
 
 JOEMol mol = new JOEMol(inType,outType);

分子の入力は、readNextメソッドで行い、出力はwriteNextメソッドで行っています。

 while(true){
  if(!sreader.readNext(mol))
    break;
  swriter.writeNext(mol);
 }

実行
# java jbabel inputfile outputfile

拡張子で、ファイル形式の判定を行っていますので、とてもシンプルになりました。ファイル変換だけをみればbabelと同等の機能をもっていると思います。

以下に今回のソースコードを示しております。変換可能なファイル形式は、ココに記載されています。

簡単にbabelもどきができましたね(当たり前ですか..)。個人的にJOELibのクラス構成をとても気に入っていますので、ちょくちょくメモする予定です。

Jbabel.java



banner_02.gif
人気ブログランキング(クリックして応援してね)




posted by わばのり at 07:16| Comment(0) | TrackBack(0) | JOELib | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック