Mercurial > hg > Members > shoshi > jungle > bbs
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/bbs/browsing/JungleBrowsingBulletinBoard.java @ 10:6e91ad317eb0
fix
author | suruga |
---|---|
date | Wed, 19 Jul 2017 18:07:30 +0900 |
parents | 6c584862fe93 |
children |
comparison
equal
deleted
inserted
replaced
9:d9a9154a075e | 10:6e91ad317eb0 |
---|---|
1 package jp.ac.u_ryukyu.ie.cr.bbs.browsing; | 1 package jp.ac.u_ryukyu.ie.cr.bbs.browsing; |
2 | |
3 | 2 |
4 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; | 3 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; |
5 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; | 4 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; |
6 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; | |
7 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; | |
8 import jp.ac.u_ryukyu.ie.cr.jungle.core.Children; | 5 import jp.ac.u_ryukyu.ie.cr.jungle.core.Children; |
9 import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; | 6 import jp.ac.u_ryukyu.ie.cr.jungle.query.traverser.InterfaceTraverser; |
10 import jp.ac.u_ryukyu.ie.cr.jungle.store.NulIterator; | 7 import jp.ac.u_ryukyu.ie.cr.jungle.store.NulIterator; |
11 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; | 8 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath; |
12 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; | 9 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; |
13 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; | 10 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; |
14 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNodeChildren; | 11 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.treeEditor.DefaultTreeEditor; |
15 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeNode; | 12 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.Default.DefaultTreeNode; |
13 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode; | |
14 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNodeChildren; | |
16 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; | 15 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; |
17 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser; | 16 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; |
18 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; | 17 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; |
19 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; | 18 import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; |
19 | |
20 import java.nio.ByteBuffer; | 20 import java.nio.ByteBuffer; |
21 import java.util.Iterator; | 21 import java.util.Iterator; |
22 | 22 |
23 public class JungleBrowsingBulletinBoard implements | 23 public class JungleBrowsingBulletinBoard implements |
24 BrowsingBulletinBoard { | 24 BrowsingBulletinBoard { |
25 private final Jungle jungle; | 25 private final Jungle jungle; |
26 | 26 |
27 public JungleBrowsingBulletinBoard() { | 27 public JungleBrowsingBulletinBoard() { |
28 jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor( | 28 jungle = new DefaultJungle(null, "hoge"); |
29 new DefaultTraverser())); | |
30 jungle.createNewTree("boards"); | 29 jungle.createNewTree("boards"); |
31 } | 30 } |
32 | 31 |
33 public JungleBrowsingBulletinBoard(Jungle jungle) { | 32 public JungleBrowsingBulletinBoard(Jungle jungle) { |
34 if (jungle.getTreeByName("boards") == null) | 33 if (jungle.getTreeByName("boards") == null) |
50 | 49 |
51 return new IterableConverter<String, TreeNode>(chs, converter); | 50 return new IterableConverter<String, TreeNode>(chs, converter); |
52 } | 51 } |
53 | 52 |
54 public void createBoards(final String _name) { | 53 public void createBoards(final String _name) { |
55 createBoards(_name, new DefaultTreeNode()); | 54 createBoards(_name,new DefaultTreeNode()); |
56 } | 55 } |
57 public void createBoards(final String _name, TreeNode rootNode) { | 56 public void createBoards(final String _name, TreeNode rootNode) { |
58 if (null == jungle.createNewTree(_name, rootNode)) { | 57 if (null == jungle.createNewTree(_name, rootNode)) { |
59 throw new IllegalStateException(); | 58 throw new IllegalStateException(); |
60 } | 59 } |
61 JungleTree tree = jungle.getTreeByName("boards"); | 60 JungleTree tree = jungle.getTreeByName("boards"); |
62 JungleTreeEditor editor = tree.getTreeEditor(); | 61 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
63 DefaultNodePath root = new DefaultNodePath(); | 62 DefaultNodePath root = new DefaultNodePath(); |
64 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0); | 63 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0); |
65 if (either.isA()) { | 64 if (either.isA()) { |
66 throw new IllegalStateException(); | 65 throw new IllegalStateException(); |
67 } | 66 } |
76 if (result.isA()) { | 75 if (result.isA()) { |
77 throw new IllegalStateException(); | 76 throw new IllegalStateException(); |
78 } | 77 } |
79 | 78 |
80 tree = jungle.getTreeByName(_name); | 79 tree = jungle.getTreeByName(_name); |
81 editor = tree.getTreeEditor(); | 80 editor = tree.getJungleTreeEditor(); |
82 either = editor.putAttribute(root, "NodeName", ByteBuffer.wrap("root".getBytes())); | 81 either = editor.putAttribute(root, "NodeName", ByteBuffer.wrap("root".getBytes())); |
83 if (either.isA()) { | 82 if (either.isA()) { |
84 throw new IllegalStateException(); | 83 throw new IllegalStateException(); |
85 } | 84 } |
86 editor = either.b(); | 85 editor = either.b(); |
97 throw new IllegalStateException(); | 96 throw new IllegalStateException(); |
98 } | 97 } |
99 | 98 |
100 JungleTreeEditor editor; | 99 JungleTreeEditor editor; |
101 do { | 100 do { |
102 editor = tree.getTreeEditor(); | 101 editor = tree.getJungleTreeEditor(); |
103 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, key, ByteBuffer.wrap(attribute.getBytes())); | 102 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, key, ByteBuffer.wrap(attribute.getBytes())); |
104 if (either.isA()) { | 103 if (either.isA()) { |
105 throw new IllegalStateException(); | 104 throw new IllegalStateException(); |
106 } | 105 } |
107 editor = either.b(); | 106 editor = either.b(); |
121 TreeNode currentNode = getNodeEither.b(); | 120 TreeNode currentNode = getNodeEither.b(); |
122 int childCount = currentNode.getChildren().size(); | 121 int childCount = currentNode.getChildren().size(); |
123 | 122 |
124 JungleTreeEditor editor; | 123 JungleTreeEditor editor; |
125 do { | 124 do { |
126 editor = tree.getTreeEditor(); | 125 editor = tree.getJungleTreeEditor(); |
127 Either<Error,JungleTreeEditor> either = editor.addNewChildAt(path, childCount); | 126 Either<Error,JungleTreeEditor> either = editor.addNewChildAt(path, childCount); |
128 if (either.isA()) { | 127 if (either.isA()) { |
129 throw new IllegalStateException(); | 128 throw new IllegalStateException(); |
130 } | 129 } |
131 editor = either.b(); | 130 editor = either.b(); |
145 | 144 |
146 JungleTreeEditor editor = null; | 145 JungleTreeEditor editor = null; |
147 | 146 |
148 do { | 147 do { |
149 JungleTree tree = jungle.getTreeByName(bname); | 148 JungleTree tree = jungle.getTreeByName(bname); |
150 editor = tree.getTreeEditor(); | 149 editor = tree.getJungleTreeEditor(); |
151 | 150 |
152 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, key, ByteBuffer.wrap(attribute.getBytes())); | 151 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, key, ByteBuffer.wrap(attribute.getBytes())); |
153 | 152 |
154 if (either.isA()) { | 153 if (either.isA()) { |
155 throw new IllegalStateException(); | 154 throw new IllegalStateException(); |
212 @Override | 211 @Override |
213 public boolean childMove(String bname, String pathString, String childNumString, String move) { | 212 public boolean childMove(String bname, String pathString, String childNumString, String move) { |
214 int childNum = Integer.parseInt(childNumString); | 213 int childNum = Integer.parseInt(childNumString); |
215 JungleTree tree = jungle.getTreeByName(bname); | 214 JungleTree tree = jungle.getTreeByName(bname); |
216 DefaultNodePath path = createNodePath(pathString); | 215 DefaultNodePath path = createNodePath(pathString); |
217 JungleTreeEditor editor = tree.getTreeEditor(); | 216 JungleTreeEditor editor = tree.getJungleTreeEditor(); |
218 editor = editor.moveChild(path,childNum,move).b(); | 217 editor = editor.moveChild(path,childNum,move).b(); |
219 return editor.success().isB(); | 218 return editor.success().isB(); |
220 } | 219 } |
221 | 220 |
222 private DefaultNodePath createNodePath(String nodePath) { | 221 private DefaultNodePath createNodePath(String nodePath) { |