view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DifferenceTreeContext.java @ 282:5da8a19dbe76

fix index difference update
author tatsuki
date Fri, 30 Dec 2016 03:55:55 +0900
parents 86d44dd80b1c
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.jungle.transaction;

import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.jungle.store.TreeContext;
import jp.ac.u_ryukyu.ie.cr.jungle.store.index.Index;
import jp.ac.u_ryukyu.ie.cr.jungle.store.index.ParentIndex;
import jp.ac.u_ryukyu.ie.cr.jungle.store.operations.TreeOperation;
import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode;
import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser;


public class DifferenceTreeContext implements TreeContext {
    private final TreeNode root;
    private TreeNode appendedNode;
    private final TreeContext previous;
    private final ChangeList changeList;
    private final String uuid;
    private final String treeName;
    private final long revision;
    private final InterfaceTraverser traverser;


    public DifferenceTreeContext(TreeNode root, TreeNode appendedNode, TreeContext _prev, ChangeList _log, String _uuid, String _treeName, long _revision, InterfaceTraverser traverser) {
        this.root = root;
        this.appendedNode = appendedNode;
        this.previous = _prev;
        this.changeList = _log;
        this.uuid = _uuid;
        this.treeName = _treeName;
        this.revision = _revision;
        this.traverser = traverser;
    }


    @Override
    public TreeNode getRoot() {
        return root;
    }

    @Override
    public TreeNode getAppendedNode(){
        return appendedNode;
    }

    @Override
    public boolean setAppendedNode(TreeNode appendedNode) {
        if (this.appendedNode != null)
            return false;
        this.appendedNode = appendedNode;
        return true;
    }

    @Override
    public TreeContext prev() {
        return previous;
    }

    @Override
    public ChangeList getChangeList() {
        return changeList;
    }

    @Override
    public String uuid() {
        return uuid;
    }

    @Override
    public String getTreeName() {
        return treeName;
    }

    @Override
    public long revision() {
        return revision;
    }

    @Override
    public Iterable<TreeOperation> getOperations() {
        return changeList;
    }

    @Override
    public Index getIndex() {
        return traverser.getIndex();
    }

    @Override
    public ParentIndex getParentIndex() {
        return traverser.getParentIndex();
    }

    @Override
    public InterfaceTraverser getTraverser() {
        return traverser;
    }
}