# HG changeset patch # User tatsuki # Date 1483576503 -32400 # Node ID ee2d51c7231e419303ff359bb9f85adcd79326a4 # Parent 3d51b13cd09947b2f27176906ad7380df4610601 kanagawa diff -r 3d51b13cd099 -r ee2d51c7231e Slide/prosym.md --- a/Slide/prosym.md Sun Dec 25 22:02:01 2016 +0900 +++ b/Slide/prosym.md Thu Jan 05 09:35:03 2017 +0900 @@ -155,7 +155,7 @@ ``` Java Either either = children.at(2); if (either.isA()) - throw new IOException(); + return either.a(); TreeNode child = either.b(); ``` @@ -172,7 +172,7 @@ Children children = root.getChildren(); Either either = children.at(2); if (either.isA()) - throw new IOException(); + return either.a(); TreeNode child = either.b(); Attribute attribute = child.getAttribute(); String value = attribute.getString("name"); @@ -254,13 +254,13 @@ 以下に検索を行う関数findの定義を記述する。 ``` Java -public Iterator find(Query query, String key, String searchValue); +public Iterator find(Query query, String indexKey, String indexValue); ``` -関数findは引数に、Query query、String key、String valueの3つの引数を取り、条件に一致したノードのIteratorインタフェースを返す。 +関数findは引数に、Query query、String indexKey、String indexValueの3つの引数を取り、条件に一致したノードのIteratorインタフェースを返す。 -第1引数には、探索の条件を記述する関数boolean comdition(TreeNode)を定義したInterface Queryを、第2、第3引数の、String key、String ValueはIndexを用いた絞込みに使用する。 +第1引数には、探索の条件を記述する関数boolean comdition(TreeNode)を定義したInterface Queryを、第2、第3引数の、String indexKey、String indexValueはIndexを用いた絞込みに使用する。 # 関数findを用いた検索APIのサンプルコード @@ -281,16 +281,16 @@ ・属性値がnullだった場合、このノードには属性名がPersonidの組のデータは存在しないので、falseを返し次のノードの評価を行う。 -・属性値がnullでなかった場合、p:2と一致するかどうかを調べ結果を返す。 +・PersonIdと組の属性値を持っていた場合、p:2と一致するかどうかを調べ結果を返す。 # JungleでのIndexの実装 -検索を行う際にIndexを使いたい。そこでIndexを実装した。 +検索にIndexを使うためIndexを実装した。 Jungleは、非破壊的木構造というデータ構造上、過去の版の木構造を全て保持しているため、全ての版に独立したIndexが必要となる。 -そのため、前の版のIndexを破壊すること無く、Indexを更新する必要があった。 +そのため、前の版のIndexを上書きすること無く、Indexを更新する必要があった。 既存のTreeMapでは、一度Indexの複製を行った後更新する必要があったため、Indexの更新オーダーがO(n)となっていた。 @@ -339,7 +339,7 @@ # HTML Rendering Engine -Jungleの特性を生かしたRendering Engineを開発した。 +Jungleのを用いた例題アプリケーションとしてRendering Engineを開発した。 今回は例題として、日記(ブログ)を選択した。 @@ -347,7 +347,6 @@ このレンダリングエンジンでは以下の2つの木からなる。 -木同士を参照しながら、レンダリングしていく。 - LayoutTree @@ -357,6 +356,8 @@ 出力するデータが記述された木 +レンダリングエンジンでは、この木同士を参照しながらレンダリングしていく。 + # ContentTree RenderingEngineではContents Treeに以下のように出力するデータを格納した。