view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/editor/jungleTreeEditor/JungleTreeEditor.java @ 308:201cc75a9984

change Red Black Tree Edit Path Extends
author tatsuki
date Thu, 26 Jan 2017 15:23:25 +0900
parents 1a5f3d3f3437
children 2a0cb1f0ba4e
line wrap: on
line source

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

import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath;
import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Error.Error;

import java.nio.ByteBuffer;

public interface JungleTreeEditor {

    public Either<Error, JungleTreeEditor> addNewChildAt(NodePath path, int pos);

    public Either<Error, JungleTreeEditor> addNewChildAndPutAttribute(NodePath path, int pos, String key, ByteBuffer value);

    public Either<Error, JungleTreeEditor> deleteChildAt(NodePath path, int pos);

    public Either<Error, JungleTreeEditor> putAttribute(NodePath path, String key, ByteBuffer value);

    public Either<Error, JungleTreeEditor> deleteAttribute(NodePath path, String key);

    public Either<Error, JungleTreeEditor> replaceNewRootNode();

    public Either<Error, JungleTreeEditor> edit(NodePath path, NodeEditor editor);

    public Either<Error, JungleTreeEditor> success();

    public Either<Error, JungleTreeEditor> flushSuccess();

    public Either<Error, JungleTreeEditor> moveChild(NodePath path, int childNum, String move);
}