diff src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java @ 100:9a7b7af838e0

add index TreeNodeEditor but node use
author one
date Thu, 11 Sep 2014 03:10:03 +0900
parents ef68358ed0e8
children c297f0015d9e
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java	Wed Sep 10 18:54:52 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java	Thu Sep 11 03:10:03 2014 +0900
@@ -2,6 +2,7 @@
 
 import java.nio.ByteBuffer;
 
+import fj.data.TreeMap;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
@@ -22,6 +23,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
 
 public class DefaultJungleTreeEditor implements JungleTreeEditor
 {
@@ -29,18 +31,20 @@
 	private final TreeNode root;
 	private final TreeEditor editor;
 	private final TreeOperationLog log;
-
-	public DefaultJungleTreeEditor(TreeNode _root,TransactionManager _txManager,TreeEditor _editor)
+	private Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index;
+	
+	public DefaultJungleTreeEditor(TreeNode _root,TransactionManager _txManager,TreeEditor _editor, Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index)
 	{
-		this(_root,_txManager,_editor,new DefaultTreeOperationLog());
+		this(_root,_txManager,_editor,new DefaultTreeOperationLog(), index);
 	}
 	
-	public DefaultJungleTreeEditor(TreeNode newNode,TransactionManager _txManager,TreeEditor _editor,TreeOperationLog _log)
+	public DefaultJungleTreeEditor(TreeNode newNode,TransactionManager _txManager,TreeEditor _editor,TreeOperationLog _log, Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index)
 	{
-		root = newNode;
-		txManager = _txManager;
-		editor = _editor;
-		log = _log;
+		this.root = newNode;
+		this.txManager = _txManager;
+		this.editor = _editor;
+		this.log = _log;
+		this.index = index;
 	}
 	
 	private Either<Error,JungleTreeEditor> _edit(final NodePath _path,NodeEditor _e)
@@ -66,7 +70,7 @@
 		DefaultTreeOperationLog treeOperationLog = new DefaultTreeOperationLog(iterable,newLog.length());
 		TreeOperationLog newTreeOpLog = log.append(treeOperationLog);
 		
-		JungleTreeEditor newEditor = new DefaultJungleTreeEditor(newNode,txManager,editor,newTreeOpLog);
+		JungleTreeEditor newEditor = new DefaultJungleTreeEditor(newNode,txManager,editor,newTreeOpLog, index);
 		return DefaultEither.newB(newEditor);
 	}
 	
@@ -113,7 +117,7 @@
 		}
 		
 		TransactionManager newTxManager = either.b();
-		JungleTreeEditor newTreeEditor = new DefaultJungleTreeEditor(root,newTxManager,editor);
+		JungleTreeEditor newTreeEditor = new DefaultJungleTreeEditor(root,newTxManager,editor, index);
 		
 		return DefaultEither.newB(newTreeEditor);
 	}