net.trialpc.sticktools.model
クラス BaseModel

java.lang.Object
  上位を拡張 net.trialpc.sticktools.model.AbstractLangModel
      上位を拡張 net.trialpc.sticktools.model.BaseModel
すべての実装されたインタフェース:
LangModel, StateChangeObservable
直系の既知のサブクラス:
BaseDocument, BaseSentence

public abstract class BaseModel
extends AbstractLangModel
implements StateChangeObservable

基本的な実装を提供する言語モデルクラスです。

このクラスは抽象クラスとして定義されていますが、抽象メソッドは定義されていません。 そのため、サブクラスでは何も実装しなくてもインスタンス化することが可能になります。 ただし、言語モデルを識別するための ID を保持することが推奨されます。

このクラスを拡張するサブクラスで Serializable を実装する場合は、 語と頻度をマッピングさせた Map と、変更通知を行うリスナのコレクションを直列化する必要があります。 具体的には、listeners フィールドと getTerms()setTerms(Map) メソッドを利用して、直列化を行います。 直列化の方法については、Serializable を参照してください。

作成者:
tetsu
関連項目:
WrapModel

フィールドの概要
protected  java.util.Collection<StateChangeListener> listeners
          変更を通知するリスナの集合です。
 
コンストラクタの概要
BaseModel()
          新規の BaseModel インスタンスを生成します。
BaseModel(boolean notify)
          変更通知を有無を設定して、BaseModel インスタンスを生成します。
 
メソッドの概要
 void addListener(StateChangeListener listener)
          変更を通知するリスナを登録します。
 boolean addTerm(java.lang.String t)
          語 term を追加します。
 void addTerms(java.util.Collection<java.lang.String> c)
          語の集合を追加します。
protected static java.util.Collection<StateChangeListener> castCollection(java.lang.Object t)
          リスナを含むコレクションにキャストします。
protected static java.util.Map<java.lang.String,java.lang.Integer> castMap(java.lang.Object t)
          Map クラスにキャストします。
 boolean equals(java.lang.Object o)
          言語モデルが同一であるかを返します。
protected  java.util.Map<java.lang.String,java.lang.Integer> getTerms()
          語彙とその出現回数を対応させたマップを返します。
 java.util.Set<java.lang.String> getVocabulary()
          この言語モデルの語彙を返します。
 int hashCode()
          ハッシュコードを返します。
 boolean isEmpty()
          言語モデルが 1 つも語を含んでいないかどうかを返します。
protected  void notify(StateEvent event)
          イベントをリスナに通知します。
 int numOfTerms()
          この言語モデルに含まれる語の総数を返します。
 int numOfVocabulary()
          この言語モデルに含まれる語の種類数(語彙数)を返します。
protected  void setTerms(java.util.Map<java.lang.String,java.lang.Integer> t)
          語彙とその出現回数を対応させたマップを設定します。
 int termCount(java.lang.String term)
          語 term の出現回数を返します。
 java.lang.String toString()
          BaseModel の文字列表現を返します。
 
クラス net.trialpc.sticktools.model.AbstractLangModel から継承されたメソッド
containsTerm, containsTerms, contaisQueries, isModifiable, termFrequency
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

listeners

protected java.util.Collection<StateChangeListener> listeners
変更を通知するリスナの集合です。 変更を通知しない場合は null になります。

コンストラクタの詳細

BaseModel

public BaseModel()
新規の BaseModel インスタンスを生成します。 このコンストラクタでは、変更通知を行います。


BaseModel

public BaseModel(boolean notify)
変更通知を有無を設定して、BaseModel インスタンスを生成します。 もし変更通知を行わない場合は、リスナが通知に依存しない実装である必要があります。

パラメータ:
notify - 変更通知の有無
メソッドの詳細

addTerm

public boolean addTerm(java.lang.String t)
term を追加します。 ただし、語が空文字もしくは空白文字の連続である場合は追加されません。

パラメータ:
t - 語(単語)
戻り値:
語が追加された場合は true
例外:
java.lang.NullPointerException - tnull である場合

addTerms

public void addTerms(java.util.Collection<java.lang.String> c)
語の集合を追加します。 この実装は、addTerm(String) に依存しています。

パラメータ:
c - 語を含むコレクション
例外:
java.lang.NullPointerException - cnull である場合

isEmpty

public boolean isEmpty()
言語モデルが 1 つも語を含んでいないかどうかを返します。

戻り値:
語を含んでいない場合は true。含んでいる場合は false

termCount

public int termCount(java.lang.String term)
term の出現回数を返します。 引数に null や語彙に含まれない単語が与えられた場合は 0 を返します。

定義:
インタフェース LangModel 内の termCount
パラメータ:
term - 語(単語)
戻り値:
term の出現回数

numOfTerms

public int numOfTerms()
インタフェース LangModel の記述:
この言語モデルに含まれる語の総数を返します。 語の総数は、語彙の延べ語数とも呼ばれます。 通常、このメソッドで返される値は 0 以上です。

定義:
インタフェース LangModel 内の numOfTerms
戻り値:
語の総数

getVocabulary

public java.util.Set<java.lang.String> getVocabulary()
インタフェース LangModel の記述:
この言語モデルの語彙を返します。 言語モデルに語彙が 1 つも存在しない場合は、空の Set が返されます。

定義:
インタフェース LangModel 内の getVocabulary
戻り値:
語彙を示すセット

numOfVocabulary

public int numOfVocabulary()
クラス AbstractLangModel の記述:
この言語モデルに含まれる語の種類数(語彙数)を返します。 語の種類数は、語彙の異なり語数とも呼ばれます。 通常、このメソッドで返される値は 0 以上です。

この実装は、getVocabulary() メソッドに依存しています。

定義:
インタフェース LangModel 内の numOfVocabulary
オーバーライド:
クラス AbstractLangModel 内の numOfVocabulary
戻り値:
語の種類数
関連項目:
LangModel.getVocabulary()

addListener

public void addListener(StateChangeListener listener)
変更を通知するリスナを登録します。

定義:
インタフェース StateChangeObservable 内の addListener
パラメータ:
listener - 変更を通知するリスナ
例外:
java.lang.NullPointerException - listenernull である場合

toString

public java.lang.String toString()
BaseModel の文字列表現を返します。 このメソッドでは、登録されている語と出現回数も文字列に含めて返します。

オーバーライド:
クラス AbstractLangModel 内の toString
戻り値:
BaseModel インスタンスの文字列表現
関連項目:
LangModel.getVocabulary(), LangModel.termCount(String)

hashCode

public int hashCode()
ハッシュコードを返します。

オーバーライド:
クラス java.lang.Object 内の hashCode
戻り値:
ハッシュコード

equals

public boolean equals(java.lang.Object o)
言語モデルが同一であるかを返します。

オーバーライド:
クラス java.lang.Object 内の equals
パラメータ:
o - 比較対象のインスタンス
戻り値:
同一の言語モデルであれば true

notify

protected final void notify(StateEvent event)
イベントをリスナに通知します。 ただし、イベントを通知しない設定になっている場合は何も行いません。

パラメータ:
event - リスナに通知されるイベント

getTerms

protected java.util.Map<java.lang.String,java.lang.Integer> getTerms()
語彙とその出現回数を対応させたマップを返します。 このメソッドは、サブクラスで Serializable インターフェースを実装する場合のために提供されています。 返されるマップの変更は、意図しない動作をする可能性があるため推奨されません。

戻り値:
語彙とその出現回数を対応させたマップ
関連項目:
setTerms(Map)

setTerms

protected void setTerms(java.util.Map<java.lang.String,java.lang.Integer> t)
語彙とその出現回数を対応させたマップを設定します。 このメソッドは、サブクラスで Serializable インターフェースを実装する場合のために提供されています。

パラメータ:
t - 語彙と出現回数のマップ
例外:
java.lang.NullPointerException - tnull の場合
関連項目:
getTerms()

castMap

protected static java.util.Map<java.lang.String,java.lang.Integer> castMap(java.lang.Object t)
Map クラスにキャストします。

パラメータ:
t - キャストするオブジェクト
戻り値:
キャストされたインスタンス
例外:
java.lang.ClassCastException - t のクラスが Map<String,Integer> でない場合

castCollection

protected static java.util.Collection<StateChangeListener> castCollection(java.lang.Object t)
リスナを含むコレクションにキャストします。

パラメータ:
t - キャストするオブジェクト
戻り値:
キャストされたインスタンス
例外:
java.lang.ClassCastException - t のクラスが StateChangeListener を含む Collection でない場合。