## Woolpack

Woolpack とは
  Woolpack は インタープリタ デザインパターン を汎用型で抽象化して関数型言語に似せた Java による API です。
  Woolpack is API by Java that abstracts the interpreter design pattern with generics and models it on the functional programming language.
Woolpack の特徴
  Woolpack は以下の特徴を持ちます。
  1. 開発効率が高いといわれる関数型言語の特性を インタープリタ デザインパターンを汎用型で抽象化することにより実現しています。 テンプレート化された処理部品をコンポジット デザインパターンで組み立てる方式により 宣言的なプログラミングを実現しています。
  2. Javaにおける多数のフレームワークでは設定を定義するためにXMLフォーマットを使用しますが、 Woolpack では XML で構造を表現する代わりにコンポジットを使用します。 これにより インタープリタ デザインパターンによる宣言的プログラミングと拡張性、 静的型定義と汎用型のエラー検出機構による品質確保、 式言語インタフェースで接続した動的型定義による設定の容易性 を同時に確保します。
  3. インタープリタ デザインパターンの Expression 役と Context 役との間をダブルディスパッチする方式で ビジター デザインパターンを再定義しています。 これにより、任意の構造に対してアスペクト(横断的関心)を適用することができます。
  4. DOMを加工するための処理をXSLTの様に宣言的に、 またMayaaの様にデザインと値の注入処理を分離して定義することができます。 また業務系プログラムで作成したデータ構造を HTMLのDOM表現に流し込む汎用的な部品を用意しており、 プログラマとデザイナの結合を疎に保ちます。 HTML インラインフレーム(iframe)を HTML テーブルに変換する部品を用意しており、 HTML で作成したレイアウトをそのまま利用することができます。
  5. 入力値を検証し変換するための処理をJakarta Commons Validatorの様に宣言的に定義することができます。
  6. 値取得と値格納と作用のための式言語をインタフェースとして定義していて、 実装としてOGNLへのアダプタ、JXPathへのアダプタ、簡易パス言語を用意しています。 これにより Woolpack から POJO への作用を定義することができます。
  7. RDBアクセス機能ではDBメタ情報の管理・クエリ生成・DB値バインド・DB値取得・トランザクション分離機構を 汎用型機構を使用してテンプレート化しています。 これらをコンポジットとして組み立てる方式により RDBアクセスに対するコーディング作業を軽減します。
目次
  1. Woolpack 設計の論理的背景
     1. インタープリタ デザインパターンのメタファ
     2. インタープリタ デザインパターンの特徴
     3. Woolpack のメタファ
     4. インタープリタ デザインパターンと LISP の論理的な関係
     5. 類似テンプレート技術との対応関係
     6. 類似ウェブアプリケーションフレームワーク技術との対応関係
     7. 類似RDB/SQL系技術との対応関係
  2. ダウンロード
  3. Woolpack の技術情報
     1. ソフトウェア要件
     2. 予備知識
     3. API リファレンス (フレームなし)
     4. ガイド
     5. サンプル main アプリケーション
     6. Hello World(ウェブアプリケーション)
     7. Javascript 値検証機能の使用方法
  4. 更新履歴
  5. 謝辞
  6. 参考資料
筆者紹介
  仲村貴大。沖縄出身。 大学2年の終わり頃からJavaを始めた1.0.2からのJavaプログラマです。 2007年4月現在で社会人満5年。 Strutsを利用した開発を2件、 インタープリタデザインパターンをWebアプリに適用した開発をひとつ担当しました。 2006年12月現在で tknakamuraの日記(http://d.hatena.ne.jp/tknakamura/)を行っています。 etmfa6i(l) fniawkoaempuerwa678 waite djmceoymm.shtobmieq.4nuep.sjkpn
ライセンス
  Woolpack は以下のライセンスでリリースしています。
  Apache License, Version 2.0
  ただし利用している外部ライブラリのライセンスはそれぞれに従います。
著作権表示
  Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.
商標
  Sun, Sun Microsystemsは米国およびその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。 Javaおよびその他のJavaを含む標章は、米国Sun Microsystems, Inc.の商標であり、同社のJavaブランドの技術を使用した製品を指します。

以上