view src/main/java/alice/jungle/persistent/PersistentTreeContext.java @ 194:fd4064e110bd fjTreeMap

change TreeContext
author tatsuki
date Mon, 23 Mar 2015 16:18:47 +0900
parents 89c15aa2bc6d
children 82698be06c6c
line wrap: on
line source

package alice.jungle.persistent;

import fj.Ord;
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 PersistentTreeContext implements TreeContext {
    private final TreeNode root;
    private final TreeContext previous;
    private final ChangeList changeList;
    private final String uuid;
    private final long revision;
    private final String treeName;
    private InterfaceTraverser traverser;

    public PersistentTreeContext(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.revision = _revision;
        this.treeName = _treeName;
        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 long revision() {
        return revision;
    }

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

    public String getTreeName() {
        return treeName;
    }

    @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;
    }

}