[Seasar-user:8664] Re: [S2Dao] Bean のプロパティに基本型以外を使う方法

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 6月 26日 (火) 00:00:34 JST


小林 (koichik) です.

Date:    Mon, 25 Jun 2007 23:11:31 +0900
From:    "Nakata Kouji" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8662] Re: [S2Dao] Bean のプロパティに基本型以外を使う方法

> 例えば今私のプロジェクトでいうと、権限レベルを int で管理しており、
> 業務に割り当てられた権限レベルとユーザの権限レベルなどから計算によって、
> 権限を持っているか判断しています。
> 権限クラスを用意し、DBに格納された値を保持し、権限レベルに権限を有するかの
> 判定メソッドを持っています。(判定機能を Authority クラスにカプセル化したい)

S2Dao はほとんど使ったことがないのでちょっと怪しいですが,

public static final String authorityAsInt_COLUMN = "AUTHORITY";
public static final String NO_PERSISTENT_PROPS = "authority";

private int authorityAsInt;
public int getAuthorityAsInt() {
  return authorityAsInt;
}
public void setAuthorityAsInt(int authorityAsInt) {
  this.authorityAsInt = authorityAsInt;
}

public Authority getAuthority() {
  return Authority.valueOf(authorityAsInt);
}
public void setAuthority(Authority authority) {
  authorityAsInt = authority.intValue();
}

みたいにするのはどうでしょう?
# うまくいくのかどうか分かりませんが.

具象状態と抽象状態を区別する必要があるのではないかと
思うんですよね.
この場合は具象状態を int で表現していて,抽象状態は
Authority で表されるということですよね.

ちなみに JPA (Java Persistence API) では,
JPA 実装はフィールドに直接アクセスして,
アプリケーションはプロパティ (getter/setter) に
アクセスするようにすることで,具象状態と抽象状態を
簡単に使い分けすることができます.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内