Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/CreateTreeMethod.java @ 329:2a0cb1f0ba4e
rename Error package
author | kono |
---|---|
date | Sat, 08 Jul 2017 21:05:55 +0900 |
parents | 0767620e6f5f |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; import junit.framework.Assert; import java.nio.ByteBuffer; /** * Created by e115731 on 2016/12/28. */ public class CreateTreeMethod { /** * Jungleの木を構築する関数 * maxHeightで指定した深さまで木を構築する * ノードは3つの子を持つ */ public static JungleTreeEditor createTree(JungleTreeEditor editor, String key, String indexKey, int _maxHeight, NodePath path) { JungleTreeEditor newEditor = createTree(editor, key, indexKey, 0, _maxHeight, path); Either<Error,JungleTreeEditor> either = newEditor.success(); if (either.isA()) Assert.fail(); return either.b(); } private static JungleTreeEditor createTree(JungleTreeEditor editor, String key, String indexKey, int _curY, int _maxHeight, NodePath path) { if (_curY == _maxHeight) { return editor; } for (int i = 0; i < 3; i++) { Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, i); if (either.isA()) Assert.fail(); editor = either.b(); String value = path.add(i).toString(); either = editor.putAttribute(path.add(i), key, ByteBuffer.wrap(value.getBytes())); if (either.isA()) Assert.fail(); editor = either.b(); either = editor.putAttribute(path.add(i), indexKey, ByteBuffer.wrap(value.getBytes())); if (either.isA()) Assert.fail(); editor = either.b(); editor = createTree(editor, key, indexKey, _curY + 1, _maxHeight, path.add(i)); } return editor; } }