- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- 永続化でやること へ行く。
- 1 (2013-03-16 (土) 06:37:01)
- 2 (2013-03-16 (土) 06:37:28)
- 3 (2013-03-16 (土) 11:42:55)
- 4 (2013-03-16 (土) 12:45:55)
- 5 (2013-03-16 (土) 12:56:56)
- 6 (2013-03-16 (土) 12:58:03)
- 7 (2013-03-20 (水) 22:40:42)
- 8 (2013-03-25 (月) 01:27:17)
- 9 (2013-03-27 (水) 01:01:35)
- 10 (2013-03-27 (水) 01:12:32)
- 11 (2013-04-04 (木) 03:43:00)
- 12 (2014-02-24 (月) 21:18:27)
FlyweightFactory † 
キーを返すメソッドと、キーが必要なメソッドがある。
ファイルを扱うのでFlyweightパターン。ファイルの変更は行わない。生成と削除と読み取りだけ。
†http://www.ie.u-ryukyu.ac.jp/~e085739/java.it.11.html
- .Fetch(Keys) => Objects | Null
キーが必要。
呼び出してからロックを取得するので、要求したオブジェクトが消えている場合がある。 - .Store(Key, Object) => Key | Null
キーが必要。
保存できていたらそのキー/さもなくば「保存できなかった」という何かを返す。
†シリアライズが必要[?] - .Search(path:String = "", label_value_pairs:Dictionary = {}, extensions:Strings = {}) => Key
キーを生成。
いろいろ指定 → 適合するキー(複数)
いろいろとは…キーの一部 または永続化クラスが特別視する部分…例えばクラス名とか。
存在するキーになるよう補完して返す。指定のないフィールドがワイルドカード化。正規表現不要。何も指定されないと存在する全てのキーを返す。 .ValidateKeys(Keys) => ValidKeys
キー(複数) → 使えるキー(複数)
永続化クラス内部で使われるので、呼び出し側が使う必要は無い。
Storeせずに使えるキーを得るために。
→Key.New()でいい。- Lock(Key, UseBlocking:bool) => bool
他のStoreを禁止。 - Unlock(Key) => true
ロック解除できなければ例外。
すでに解除されているかロックできてないのに呼んだ場合はアサーションエラー。アサーションが無効化されているなら解除成功とする。
Key † 
実装では”FlyweightKey”のような名前にして。
- .New(String) => Key
キーを生成。 - .New(path:String = "", label_value_pairs:Dictionary = {}, extensions:Strings = {}) => Key
キーを生成。
Searchと同じ引数。こちらは存在しないキーを生成して返す。何も指定しないときは完全におまかせ。
例えば… † 
Search→Fetch
Key.New→Store
組み合わせて使う。