org.unitedfront2.domain.communication
クラス Message

java.lang.Object
  上位を拡張 org.unitedfront2.domain.accesscontrol.AbstractResource
      上位を拡張 org.unitedfront2.domain.accesscontrol.AbstractCopyrightedResource
          上位を拡張 org.unitedfront2.domain.communication.Message
すべての実装されたインタフェース:
Serializable, CopyrightedResource, Resource, Deletable, Domain, Identifiable<Message>, Storable

public class Message
extends AbstractCopyrightedResource
implements Identifiable<Message>, Storable, Serializable, Deletable, Domain

メッセージを表すドメインモデルです。件名および本文は国際化に対応しています。

メッセージは、ユーザからのリッチな入力を実現するために汎用的に利用できます。例えば、掲示板、ブログなどの パーツとして採用できます。次のコードは、メッセージを新たに生成し、永続化しています。

 DomainFactory<Message> factory = ...
 Message message = factory.prototype();
 ...
 message.store();
 
生成したメッセージをどのように利用するかは利用する側で決めます。

作成者:
kurokkie
関連項目:
直列化された形式

フィールドの概要
static int GENERATED_CODE_LENGTH
          ランダムで生成されるときのコードの長さ (32)
 
クラス org.unitedfront2.domain.accesscontrol.AbstractResource から継承されたフィールド
logger
 
コンストラクタの概要
Message()
           
Message(Integer ownerId, Integer authorId, AccessControl readAccessControl, AccessControl writeAccessControl)
           
Message(Integer id, String code, Map<Locale,MessageEntry> entryMap, Integer ownerId, Integer authorId, AccessControl readAccessControl, AccessControl writeAccessControl, Date registrationDate, Date lastUpdateDate)
           
Message(String code, Integer ownerId, Integer authorId, AccessControl readAccessControl, AccessControl writeAccessControl)
           
Message(String code, Map<Locale,MessageEntry> entryMap, Integer ownerId, Integer authorId, AccessControl readAccessControl, AccessControl writeAccessControl)
           
 
メソッドの概要
protected  boolean buildEqualsBuilder(EqualsBuilder eb, Object other)
          EqualsBuilder にプロパティを設定します。
protected  void buildHashCodeBuilder(HashCodeBuilder hcb)
          HashCodeBuilder にプロパティを設定します。
protected  void buildToStringBuilder(ToStringBuilder tsb)
          ToStringBuilder にプロパティを設定します。
 void delete()
          自身をデータベースから削除します。
 String getBody()
          空でない本文を取得します。
 String getBody(Locale locale)
          指定したロケールに対応した本文を取得します。
 String getCode()
           
 Map<Locale,MessageEntry> getEntryMap()
          エントリマップを取得します。
 Integer getId()
           
 Date getLastUpdateDate()
           
 Date getRegistrationDate()
           
 MessageEntry getRequiredEntry()
          タイトルが空でない任意のエントリを要求します。
 String getSubject()
          空でない件名を取得します。
 String getSubject(Locale locale)
          指定したロケールに対応した件名を取得します。
 String getUri()
           
 boolean identify(Message message)
          引数に指定したドメインオブジェクトが、このドメインオブジェクトと同一であるかどうかを判定します。
 boolean isEmptyEntry()
          エントリが空であるかどうか判定します。
 void setAvailableLocales(List<Locale> availableLocales)
          サポートする言語を設定します。
 void setBody(String body, Locale locale)
          指定したロケールに対応した本文を設定します。
 void setCode(String code)
           
 void setEntryMap(Map<Locale,MessageEntry> entryMap)
          エントリマップを設定します。
 void setId(Integer id)
           
 void setLastUpdateDate(Date lastUpdateDate)
           
 void setMessageDao(MessageDao messageDao)
           
 void setRegistrationDate(Date registrationDate)
           
 void setSubject(String subject, Locale locale)
          指定したロケールに対応した件名を設定します。
 void setUri(String uri)
           
 void store()
          Storable.store() 新規登録する際、コードが設定されていなければ、自動で発行します。
 
クラス org.unitedfront2.domain.accesscontrol.AbstractCopyrightedResource から継承されたメソッド
getAuthor, getAuthorId, retrieveAuthor, setAuthor, setAuthorId
 
クラス org.unitedfront2.domain.accesscontrol.AbstractResource から継承されたメソッド
canRead, canRead, canRead, canWrite, canWrite, canWrite, equals, getOwner, getOwnerId, getReadAccessControl, getSimpleUserTable, getWriteAccessControl, hashCode, readAccess, readAccess, readAccess, retrieveOwner, setOwner, setOwnerId, setReadAccessControl, setSimpleUserTable, setWriteAccessControl, toString, writeAccess, writeAccess, writeAccess
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
インタフェース org.unitedfront2.domain.accesscontrol.Resource から継承されたメソッド
canRead, canRead, canRead, canWrite, canWrite, canWrite, getOwnerId, readAccess, readAccess, readAccess, writeAccess, writeAccess, writeAccess
 

フィールドの詳細

GENERATED_CODE_LENGTH

public static final int GENERATED_CODE_LENGTH
ランダムで生成されるときのコードの長さ (32)

関連項目:
定数フィールド値
コンストラクタの詳細

Message

public Message()

Message

public Message(Integer ownerId,
               Integer authorId,
               AccessControl readAccessControl,
               AccessControl writeAccessControl)

Message

public Message(String code,
               Integer ownerId,
               Integer authorId,
               AccessControl readAccessControl,
               AccessControl writeAccessControl)

Message

public Message(String code,
               Map<Locale,MessageEntry> entryMap,
               Integer ownerId,
               Integer authorId,
               AccessControl readAccessControl,
               AccessControl writeAccessControl)

Message

public Message(Integer id,
               String code,
               Map<Locale,MessageEntry> entryMap,
               Integer ownerId,
               Integer authorId,
               AccessControl readAccessControl,
               AccessControl writeAccessControl,
               Date registrationDate,
               Date lastUpdateDate)
メソッドの詳細

buildEqualsBuilder

protected boolean buildEqualsBuilder(EqualsBuilder eb,
                                     Object other)
クラス AbstractResource の記述:
EqualsBuilder にプロパティを設定します。この実装では、所有者 ID 、参照権限、編集 権限を設定しています。

オーバーライド:
クラス AbstractCopyrightedResource 内の buildEqualsBuilder
パラメータ:
eb - EqualsBuilder
other - 比較対象のオブジェクト
戻り値:
EqualsBuilder の構築途中で AbstractResource.equals(Object)false を返すべきと判断できれば false 、そうでなければ true

buildHashCodeBuilder

protected void buildHashCodeBuilder(HashCodeBuilder hcb)
クラス AbstractResource の記述:
HashCodeBuilder にプロパティを設定します。この実装では、所有者 ID 、参照権限、 編集権限を設定しています。

オーバーライド:
クラス AbstractCopyrightedResource 内の buildHashCodeBuilder
パラメータ:
hcb - HashCodeBuilder

buildToStringBuilder

protected void buildToStringBuilder(ToStringBuilder tsb)
クラス AbstractResource の記述:
ToStringBuilder にプロパティを設定します。この実装では、所有者 ID 、参照権限、 編集権限を設定しています。

オーバーライド:
クラス AbstractCopyrightedResource 内の buildToStringBuilder
パラメータ:
tsb - ToStringBuilder

identify

public boolean identify(Message message)
インタフェース Identifiable の記述:
引数に指定したドメインオブジェクトが、このドメインオブジェクトと同一であるかどうかを判定します。このメソッ ドは、equals メソッドとは異なり、そのドメインオブジェクトを一意に識別できる最小のプ ロパティを用いて同一性を判別します。特に説明がない限り、比較には主キーとなるプロパティが利用されま す。このドメインオブジェクト自身または引数に指定したドメインオブジェクトに主キーが設定されていない場 合、false が返されます。

一般的な実装例を示します。

 public boolean identify(Domain other) {
     if (id == null) {
         return false;
     }
     return id.equals(other.getId());
 }
 

定義:
インタフェース Identifiable<Message> 内の identify
パラメータ:
message - ドメインオブジェクト
戻り値:
同一であれば true 、そうでなければ false

store

public void store()
           throws MessageCodeUsedByOtherException
Storable.store()

新規登録する際、コードが設定されていなければ、自動で発行します。新規登録時には、登録日時に現在日 時が設定されます。登録日時は以後変更できません。たとえ更新時に登録日時が設定されていたとしてもそ れは無視されます。更新日時は現在日時が設定されます。

定義:
インタフェース Storable 内の store
例外:
MessageCodeUsedByOtherException - メッセージコードが重複している
関連項目:
GENERATED_CODE_LENGTH, MAX_CHALLENGE_COUNT
'事後条件:'
if ${this.code} is null, ${this.code} is auto generated., ${this.lastUpdateDate} is current date.

delete

public void delete()
インタフェース Deletable の記述:
自身をデータベースから削除します。データに不整合が生じた場合、例外が発生します。このメソッドの呼出し 後、ドメインオブジェクトは使用できません。

定義:
インタフェース Deletable 内の delete

getSubject

public String getSubject()
空でない件名を取得します。

戻り値:
件名

getSubject

public String getSubject(Locale locale)
指定したロケールに対応した件名を取得します。指定したロケールに対応する件名が見つからない、または 空の場合は getRequiredEntry() で返されるエントリの件名を返します。

パラメータ:
locale - ロケール
戻り値:
件名

setSubject

public void setSubject(String subject,
                       Locale locale)
指定したロケールに対応した件名を設定します。

パラメータ:
subject - 件名
locale - ロケール

getBody

public String getBody()
空でない本文を取得します。

戻り値:
本文

getBody

public String getBody(Locale locale)
指定したロケールに対応した本文を取得します。指定したロケールに対応する本文が見つからない場合は getRequiredEntry() で返されるエントリの本文を返します。

パラメータ:
locale - ロケール
戻り値:
本文

setBody

public void setBody(String body,
                    Locale locale)
指定したロケールに対応した本文を設定します。

パラメータ:
body - 本文
locale - ロケール

isEmptyEntry

public boolean isEmptyEntry()
エントリが空であるかどうか判定します。

戻り値:
エントリが空なら true 、空でないなら false

getId

public Integer getId()

setId

public void setId(Integer id)

getCode

public String getCode()

setCode

public void setCode(String code)

getEntryMap

public Map<Locale,MessageEntry> getEntryMap()
エントリマップを取得します。変更不可能なマップです。

戻り値:
エントリマップ

getRequiredEntry

public MessageEntry getRequiredEntry()
タイトルが空でない任意のエントリを要求します。

戻り値:
任意のエントリ、なければ空のエントリ

setEntryMap

public void setEntryMap(Map<Locale,MessageEntry> entryMap)
                 throws IllegalArgumentException
エントリマップを設定します。足りないロケールがあれば、空のエントリを追加します。

パラメータ:
entryMap - エントリマップ
例外:
IllegalArgumentException - システムが扱っていないロケールが含まれている
'事後条件:'
システムが扱う全てのロケールがエントリマップに設定される

getRegistrationDate

public Date getRegistrationDate()

setRegistrationDate

public void setRegistrationDate(Date registrationDate)

getLastUpdateDate

public Date getLastUpdateDate()

setLastUpdateDate

public void setLastUpdateDate(Date lastUpdateDate)

setAvailableLocales

public void setAvailableLocales(List<Locale> availableLocales)
サポートする言語を設定します。サポートしない言語が含まれている場合、そのメッセージエントリは削除しま す。サポートする言語が ${this.entryMap} に含まれていない場合、そのメッセージエントリは追加さ れます。

パラメータ:
availableLocales - サポートする言語リスト

getUri

public String getUri()

setUri

public void setUri(String uri)

setMessageDao

public void setMessageDao(MessageDao messageDao)


Copyright © 2007-2008 www.unitedfront2.org. All Rights Reserved.