changeset 64:763d63697d93

change node.
author Kazuma Takeda
date Sun, 25 Dec 2016 20:57:57 +0900
parents 7071c1eff185
children 3d51b13cd099
files Slide/prosym.md
diffstat 1 files changed, 42 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/Slide/prosym.md	Sun Dec 25 20:02:52 2016 +0900
+++ b/Slide/prosym.md	Sun Dec 25 20:57:57 2016 +0900
@@ -160,7 +160,7 @@
 
 ```
 
-# JungleのAPI
+# Jungleのサンプルコード
 
 Jungleの例を記載する。
 
@@ -199,14 +199,11 @@
  <img src="./images/NodePath.pdf" alt="message" width="400">
 </div>
 
-# ノードの追加、削除
+# ノードの追加
 
 ``` Java
 // 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置子ノードを追加
 Either<Error, JungleTreeEditor> addNewChildAt( NodePath path, int pos)
-
-// 変数pathで指定した場所にある、ノードの子供の変数posで指定した位置の子ノードを削除
-Either<Error, JungleTreeEditor> deleteChildAt( NodePath path, int pos)
 ```
 
 # ノードに対してデータの挿入
@@ -234,7 +231,7 @@
 ```
 
 
-# JungleのAPI
+# Jungleのサンプルコード
 
 Jungleの木を編集する例を記載する。
 以下のコードは木からEditorを取得し、変数editorNodePathで指定したノードに新しい子ノードを追加したものである。
@@ -250,8 +247,47 @@
 
 ```
 
+# 検索APIの実装
+
+属性名key 属性値valueの組で検索を行うAPIの実装を、木の走査を行うTraverserクラス内に、lambda式を用いて行った。
+
+以下に検索を行う関数findの定義を記述する。
+
+``` Java
+public Iterator<TreeNode> find(Query query, String key, String searchValue);
+```
+
+関数findは引数に、Query query、String key、String valueの3つの引数を取り、条件に一致したノードのIteratorインタフェースを返す。
+
+
+第1引数には、探索の条件を記述する関数boolean comdition(TreeNode)を定義したInterface Queryを、第2、第3引数の、String key、String ValueはIndexを用いた絞込みに使用する。
+
+# 関数findを用いた検索APIのサンプルコード
+
+``` Java
+InterfaceTraverser traverser = tree.getTraverser(true);
+Iterator<TreeNode> resultNodeIterator = traverser.find((TreeNode node) -> {
+  String personId = node.getAttributes().getString("Personid");
+  if (personId == null) return false;
+  return personId.equals("p:2");
+}, "element", "Person");
+```
+
+・Traverserクラスは木の走査を行う。まずは木から取得してくる。
+
+・Indexからfindの第2、第3引数である、属性名"element" 属性値"Person"の組のノードを取得し、Queryに渡す。
+
+・引数のノードから関数getAttributes().getString("Personid")で属性名Personidとペアになっている属性値を取得する。
+
+・属性値がnullだった場合、このノードには属性名がPersonidの組のデータは存在しないので、falseを返し次のノードの評価を行う。
+
+・属性値がnullでなかった場合、p:2と一致するかどうかを調べ結果を返す。
+
+
 # JungleでのIndexの実装
 
+検索を行う際にIndexを使いたい。そこでIndexを実装した。
+
 Jungleは、非破壊的木構造というデータ構造上、過去の版の木構造を全て保持しているため、全ての版に独立したIndexが必要となる。
 
 そのため、前の版のIndexを破壊すること無く、Indexを更新する必要があった。
@@ -301,42 +337,6 @@
 
 ・中身が入っているか確認、入っていた場合OptionalオブジェクトからノードリストのIteratorを返す。
 
-# 検索APIの実装
-
-属性名key 属性値valueの組で検索を行うAPIの実装を、木の走査を行うTraverserクラス内に、lambda式を用いて行った。
-
-以下に検索を行う関数findの定義を記述する。
-
-``` Java
-public Iterator<TreeNode> find(Query query, String key, String searchValue);
-```
-
-関数findは引数に、Query query、String key、String valueの3つの引数を取り、条件に一致したノードのIteratorインタフェースを返す。
-
-
-第1引数には、探索の条件を記述する関数boolean comdition(TreeNode)を定義したInterface Queryを、第2、第3引数の、String key、String ValueはIndexを用いた絞込みに使用する。
-
-# 関数findを用いた検索APIのサンプルコード
-
-``` Java
-InterfaceTraverser traverser = tree.getTraverser(true);
-Iterator<TreeNode> resultNodeIterator = traverser.find((TreeNode node) -> {
-  String personId = node.getAttributes().getString("Personid");
-  if (personId == null) return false;
-  return personId.equals("p:2");
-}, "element", "Person");
-```
-
-・Traverserクラスは木の走査を行う。まずは木から取得してくる。
-
-・Indexからfindの第2、第3引数である、属性名"element" 属性値"Person"の組のノードを取得し、Queryに渡す。
-
-・引数のノードから関数getAttributes().getString("Personid")で属性名Personidとペアになっている属性値を取得する。
-
-・属性値がnullだった場合、このノードには属性名がPersonidの組のデータは存在しないので、falseを返し次のノードの評価を行う。
-
-・属性値がnullでなかった場合、p:2と一致するかどうかを調べ結果を返す。
-
 # HTML Rendering Engine
 
 Jungleの特性を生かしたRendering Engineを開発した。