なんでenumを使うかというと

ukiki9992008-04-09

DELETEのポカミス修正も済んだので、整理のためにもクラス図を起こしました。
ちなみにポカミスの内容は、SELECTのWHERE条件と同じものを持ってきたことが原因で、query構築時と値セット時で意図していたものが違うというのが問題でした。
要はquery構築時は"="で、値セット時は"LIKE"のつもりで値を放り込んでいたという。。。enumの呼び間違えが原因でした。

O/Rマッパーの部分だけクラス図に起こしましたが、見てわかるようにアノテーションEnumは相性が良いです。アノテーションに指定できる値はプリミティブ型とString,Object型、これらの配列以外にもEnumが指定できます。
Enumは先日書いたように実質は定数オブジェクトですのでメソッド定義ができます。
例えばWhereItemアノテーションはLikeClauseConvertEnumに依存していますが、LikeClauseConvertEnumにはconvertメソッドを定義してあり、その名のとおり指定にしたがって文字列を組み立てます。WhereItemアノテーションには、select,update,deleteメソッドを定義し、これらがLikeClauseConvertEnumを返します。これによって、任意のパラメータに対して操作ごとの条件を指定できるようにしています。
これは一例でEnumかといわれるとアレですが、定型処理の隠蔽化にはかなり役立ちます。

と、かなり画像が小さいので分からないですね、これではorz ま、そんな手もあるということで。詳細にご興味のある方はFLOSSSをお待ちください(笑