view src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/IndexPushThread.java @ 132:ba5370090393

index commit Prototype
author one
date Sun, 19 Oct 2014 09:15:38 +0900
parents b2c1fd513feb
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index;

import java.nio.ByteBuffer;

import javax.swing.tree.DefaultTreeCellEditor.EditorContainer;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.IndexJungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
import fj.data.List;
import fj.data.TreeMap;

public class IndexPushThread extends Thread {

	TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index;
	JungleTree tree;
	int logSize;

	public IndexPushThread(TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index, int logSize) {
		this.index = index;
		this.tree = tree;
		this.logSize = logSize;
	}

	public void run() {
		//editor.setIndex(index);
		//editor.success().isB();
//		while (true) {
//			
//			if (logSize == tree.getLogSize()) {
//				editor.setIndex(index);
//				if (editor.success().isB())
//					break;
//			} else {
//				editor =  tree.getIndexTreeEditor();
//				 Iterable<TreeOperation> Changeset = tree.getLog();
//				 int loopCount = 0;
//				 
//				 for(TreeOperation treeOp : Changeset) {
//					loopCount++;
//					if (loopCount >= logSize) {
//						NodePath path = treeOp.getNodePath();
//						NodeOperation NodeOperation = treeOp.getNodeOperation();
//						Command c = NodeOperation.getCommand();
//
//						switch (c) {
//						case PUT_ATTRIBUTE://ここ以下でIndexEditorを使ってindexの更新を行う
//							String key = NodeOperation.getKey();
//							ByteBuffer value = NodeOperation.getValue();
//							
//							//return editor.putAttribute(path, key, value);
//						case DELETE_ATTRIBUTE:
//							key = NodeOperation.getKey();
//							//return editor.deleteAttribute(path, key);
//						case APPEND_CHILD:
//							//return editor.addNewChildAt(path, pos);
//						case DELETE_CHILD:
//							//return editor.deleteChildAt(path, 0);
//						}
//					}
//				 }
//				 
//				 logSize = loopCount;
//				 editor.setIndex(index);
//				 if (editor.success().isB())
//						break;
//				 
//			}
//			editor = tree.getIndexTreeEditor();
//		}
	}
	
}