view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java @ 183:066d9c5758dc

change TreeContext
author tatsuki
date Mon, 23 Mar 2015 15:44:28 +0900
parents 817febd9c69b
children d2b710337eaa
line wrap: on
line source

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

import fj.data.List;
import fj.data.TreeMap;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeContext;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex;

public class DefaultTreeContext implements TreeContext {
    private final TreeNode root;
    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 DefaultTreeContext(TreeNode _node, TreeContext _prev, ChangeList _log, String _uuid, String _treeName, long _revision, InterfaceTraverser traverser) {
        this.root = _node;
        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 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 TreeMap<String, TreeMap<String, List<TreeNode>>> getIndex() {
        return traverser.getIndex();
    }

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

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