• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/X]] [[:t/実装]] [[:t/クラス]] [[:t/Wiki]] [[:t/Web]]

クラス設計。
なおす。

#ls


**Xとは [#dd259bea]
フレームワーク/WikiEngine.
[[フレームワーク/Webアプリケーション]]から呼ばれる。

アプリケーション全体で使用されるものを定義。

**クラス構造 [#de2cc4d3]
***[[X/Actor]] [#jf1b5571]
リクエスト送信。PageNameとかUsecaseNameとかStepNameとかViewNameとか含む。
→fw/Web→fw/Wiki→Usecase

***[[X/Usecase]] [#cb7aff3b]
プラグイン。
コントロールクラス。
WikiEngineから呼ばれる。リクエスト毎に別クラス。
MediaWikiの'Action'、PukiWikiの'cmd'にあたるものと一対一対応。
-権限判定
-閲覧
-編集

→User
***[[X/User]] [#b9d83f52]
-鍵←UserID
→Page

***[[X/Page]] [#g329967c]
Wikiのデータを保存するもの。
利用者が手作業で書く。どういう記法を使うかでデータアクセス時の反応が違う。
属性を持つ。
URIでプラグインを呼んだときは仮のページ。その場合でも流れは同じ。
-錠(ユーザーページもそれ以外も)
-鍵(ユーザーページの場合)

→Pages/Name
→永続化
→PageElement(記法に書かれると呼ばれる)
***[[X/Pages/Name]] [#x2ca02b3]
-外部名4区分
-内部名

***[[X/永続化]] [#v4cae36a]
ページ以外も永続化。
ファイルシステム使用。
-Page←PageName
-PageProperty←PageName
-Session←SessionID
***[[X/Pages/Element]] [#zf1683e9]
ページの構成要素。
記法から生成したオブジェクト。各種記法や一続きのプレーンテキスト部分などが1つのオブジェクトになる。
ElementがElementの集約にもなる。ネスト構造。

→PageElements
***[[X/Pages/Elements]]/… [#yaac2625]
PageElementのサブクラス。プラグインはNotations系/DynamicNotations系/Semantics系/Plains系。
PageElementのサブクラス。プラグインはNotations系/Semantics系/DynamicNotations系/Plains系。
-レイアウトもテンプレートもビューも下位展開付きビューも
-セレクターも
-その他要素全て

***[[X/Pages/Elements/Notations]]系 [#j1b8ea74]
記法を統一する抽象クラス。

***[[X/Pages/Elements/DynamicNotations]]系 [#o22fb640]
例えば自動リンク。
記法はあるが決まっていないもの。

***[[X/Pages/Elements/Semantics]]系 [#t78923ec]
検索でスコアを上げる記法。
数詞や色名など。

***[[X/Pages/Elements/Plains]]系 [#pa9cdd73]
ただのテキスト。

***[[X/Plugins]]/... [#a5a76337]
いろいろなプラグイン型。
-X/Plugins/Elements/...
--X/Plugins/Elements/Notation
記法を当てたり汎用記法から使うもの。
--X/Plugins/Elements/Semantic
検索スコア用の記法。正規表現で表現。
--X/Plugins/Elements/DynamicNotation
自動リンク系の。
--X/Plugins/Elements/Plain
ただのテキストの別解釈をしたいときに。文字同一視とか。
-X/Plugins/Usecase
ユースケース。利用者からのリクエストに応えるもの。