ParticipantProvider に関する変更案

関連クラスがいくつかs2coffeeプロジェクト側にまたいでいるので、直接コミットせずにメールで送らせていただきました。

変更点について簡単に説明します。

コミット判断はお任せしますので、よろしくお願いします。m(_ _)m

もしs2coffee側のコミットと多少時間が開いても問題ないようであれば、GOサインだけいただければs2buri側はこちらでコミットします。

主な変更点

  • ParticipantProviderのインタフェース簡略化
    • 必要最低限のAPIを定義して、ユーザ(主に自分^^;)による実装を簡単にしたかったので...。
    • 基本的に2種類のメソッドにわけました。1つはアプリ側の論理によるユーザIDとユーザDTOとの間の変換メソッド。1つは権限チェック用。
    • 元々のAPIを他のescafeプロジェクトで使用する予定だったりすると、ちょっとまずい修正になってしまうかもしれません。
  • ParticipantContextに格納されている情報を正規化(?)
    • UserData(DTO)は、(current)UserIdがあれば、ParticipantProvider#getUserData()で取得できるので、導出項目と見なして思い切って消してみました。
  • RoleInfo→IdentityInfo
    • ID番号とID文字列のみを格納するDTOなので、ロール情報というよりもID情報かなということでリネームしました。
    • これに伴って、ID番号とID文字列をペアで扱っているAPI全体を修正し、IdentityInfoを使うようにしました。
  • Java5のGenerics/@Override/拡張forループへの対応
    • 別の理由で手をつけたクラスについては、できるだけこの対応を盛り込みました。(今回はこの理由のためだけの修正はできるだけ行わないようにしています)
  • userIdという名前
    • ぶり側管理のユーザID(buriUserId)と、アプリ側管理のユーザID(appUserId)を区別するようにしました。
    • ただし、s2coffee系クラスはより抽象化されたAPIという意識なので、アプリ側に依存するような概念はいれたくないということで、「userId」として「app」はつけていません。
    • ぶり側のユーザIDがlong/Longなのに対して、アプリ側のユーザIDはIdenitityInfo型になっています。

その他

  • 関連する各種クラス(Util)なども併せて修正しています。
  • Participantは、適切な訳が思いつかなかったので「権限主体」と訳してみました。RoleはParticipantの1つだと思うので、「ロール」というのは限定しすぎた表現かなぁと。
  • まだ統一できてませんが、"ID","Id"の文言揺れは、最終的に"Id"に統一したいなぁという方向です。