# HG changeset patch # User tatsuki # Date 1406534551 -32400 # Node ID 564f683b7aefd7dd0888a8bd320b91bc2515f714 # Parent b3d5fbe95b9a5b263f9ff8703b5e11ff6363b074 Matrix Date type insert ok but bad source diff -r b3d5fbe95b9a -r 564f683b7aef src/main/java/app/bbs/NetworkBulletinBoard.java --- a/src/main/java/app/bbs/NetworkBulletinBoard.java Mon Jul 28 14:09:54 2014 +0900 +++ b/src/main/java/app/bbs/NetworkBulletinBoard.java Mon Jul 28 17:02:31 2014 +0900 @@ -1,5 +1,8 @@ package app.bbs; +import java.nio.ByteBuffer; + +import app.bbs.thinks.getAttributeImp; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BulletinBoard; @@ -11,4 +14,5 @@ public Iterable getFolder(String _boardName, String nodeNum); public void createFolder(String boardName, String author, String msg,String key, String _nodeNum); public void createAttribute(String boardName, String uuid, String author, String msg, String key); + public getAttributeImp getAttribute(String _bname, String nodeNum); } diff -r b3d5fbe95b9a -r 564f683b7aef src/main/java/app/bbs/NetworkJungleBulletinBoard.java --- a/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Mon Jul 28 14:09:54 2014 +0900 +++ b/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Mon Jul 28 17:02:31 2014 +0900 @@ -10,6 +10,7 @@ import alice.jungle.persistent.NetworkJournal; import alice.jungle.persistent.PersistentJournal; import alice.jungle.transaction.JungleUpdater; +import app.bbs.thinks.getAttributeImp; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; @@ -211,12 +212,13 @@ if (tree == null) { throw new IllegalStateException(); } - // //--------------------------------------------------------------------------------- + DefaultNodePath path = new DefaultNodePath(); try { for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) { if (!_nodeNum.substring(count, count + 1).equals("/")) - path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1))); + path = path.add(Integer.parseInt(_nodeNum.substring(count, + count + 1))); } } catch (Exception _e) { } @@ -227,19 +229,20 @@ tBuffer.putLong(timestamp); do { Node node = tree.getRootNode(); - - + DefaultTraverser traverser = new DefaultTraverser(); - TraversableNodeWrapper traversable = new TraversableNodeWrapper(node); + TraversableNodeWrapper traversable = new TraversableNodeWrapper( + node); DefaultEvaluator evaluator = new DefaultEvaluator(path); - Either>> ret = traverser.traverse(traversable, evaluator); + Either>> ret = traverser + .traverse(traversable, evaluator); if (ret.isA()) { Assert.fail(); } Traversal> traversal = ret.b(); TraversableNodeWrapper target = traversal.destination(); - int size = target.getWrapped().getChildren().size() ; + int size = target.getWrapped().getChildren().size(); JungleTreeEditor editor = tree.getTreeEditor(); either = editor.addNewChildAt(path, size); if (either.isA()) { @@ -249,9 +252,15 @@ NodeEditor e = new NodeEditor() { public > Either edit(T _e) { - _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); - _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); - _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); + _e = _e.getAttributes() + .put("author", ByteBuffer.wrap(_author.getBytes())) + .b(); + _e = _e.getAttributes() + .put("mes", ByteBuffer.wrap(_message.getBytes())) + .b(); + _e = _e.getAttributes() + .put("key", ByteBuffer.wrap(_editKey.getBytes())) + .b(); _e = _e.getAttributes().put("timestamp", tBuffer).b(); return DefaultEither.newB(_e); } @@ -332,9 +341,15 @@ JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { public > Either edit(T _e) { - _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); - _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); - _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); + _e = _e.getAttributes() + .put("author", ByteBuffer.wrap(_author.getBytes())) + .b(); + _e = _e.getAttributes() + .put("mes", ByteBuffer.wrap(_message.getBytes())) + .b(); + _e = _e.getAttributes() + .put("key", ByteBuffer.wrap(_editKey.getBytes())) + .b(); _e = _e.getAttributes().put("timestamp", tBuffer).b(); return DefaultEither.newB(_e); } @@ -348,9 +363,9 @@ } while (either.isA()); renewTime = timestamp; } - - public void createAttribute(String _board, String _uuid, final String _author, - final String _message, final String _editKey) { + + public void createAttribute(String _board, String _uuid, + final String _author, final String _message, final String _editKey) { requestCounter.incrementAndGet(); final long timestamp = System.currentTimeMillis(); final ByteBuffer tBuffer = ByteBuffer.allocate(16); @@ -362,17 +377,19 @@ try { for (int count = 0; _uuid.substring(count, count + 1) != null; count++) { if (!_uuid.substring(count, count + 1).equals("/")) - path = path.add(Integer.parseInt(_uuid.substring(count,count + 1))); + path = path.add(Integer.parseInt(_uuid.substring(count, + count + 1))); } } catch (Exception _e) { } Node node = tree.getRootNode(); - - + DefaultTraverser traverser = new DefaultTraverser(); - TraversableNodeWrapper traversable = new TraversableNodeWrapper(node); + TraversableNodeWrapper traversable = new TraversableNodeWrapper( + node); DefaultEvaluator evaluator = new DefaultEvaluator(path); - Either>> ret = traverser.traverse(traversable, evaluator); + Either>> ret = traverser + .traverse(traversable, evaluator); if (ret.isA()) { Assert.fail(); } @@ -381,17 +398,20 @@ TraversableNodeWrapper target = traversal.destination(); final Node cheakNode = target.getWrapped(); System.out.println(cheakNode.getAttributes().get("attribute")); - - + JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { public > Either edit(T _e) { - // EnableNodeWrapper node = _e.getWrap(); - _e = _e.getAttributes().put("author" , ByteBuffer.wrap(_author.getBytes())).b(); - _e = _e.getAttributes().put("mes" , ByteBuffer.wrap(_message.getBytes())).b(); - _e = _e.getAttributes().put("key" , ByteBuffer.wrap(_editKey.getBytes())).b(); - _e = _e.getAttributes().put("timestamp", tBuffer).b(); - + // EnableNodeWrapper node = _e.getWrap(); + String str = "0"; + int count = 0; + for (; _e.getAttributes().get("author" + String.valueOf(count)) != null; count++) { + } + str = String.valueOf(count); + _e = _e.getAttributes().put("author" + str, ByteBuffer.wrap(_author.getBytes())).b(); + _e = _e.getAttributes().put("mes" + str, ByteBuffer.wrap(_message.getBytes())).b(); + _e = _e.getAttributes().put("key" + str, ByteBuffer.wrap(_editKey.getBytes())).b(); + _e = _e.getAttributes().put("timestamp" + str, tBuffer).b(); return DefaultEither.newB(_e); } }; @@ -403,9 +423,9 @@ either = editor.success(); } while (either.isA()); } - - public void editMatrixMessage(String _board, String _uuid, final String _author, - final String _message, final String _editKey) { + + public void editMatrixMessage(String _board, String _uuid, + final String _author, final String _message, final String _editKey) { requestCounter.incrementAndGet(); final long timestamp = System.currentTimeMillis(); final ByteBuffer tBuffer = ByteBuffer.allocate(16); @@ -419,9 +439,15 @@ JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { public > Either edit(T _e) { - _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); - _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); - _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); + _e = _e.getAttributes() + .put("author", ByteBuffer.wrap(_author.getBytes())) + .b(); + _e = _e.getAttributes() + .put("mes", ByteBuffer.wrap(_message.getBytes())) + .b(); + _e = _e.getAttributes() + .put("key", ByteBuffer.wrap(_editKey.getBytes())) + .b(); _e = _e.getAttributes().put("timestamp", tBuffer).b(); return DefaultEither.newB(_e); } @@ -457,12 +483,13 @@ } public Iterable getFolder(String _boardName, String _nodeNum) { - + DefaultNodePath path = new DefaultNodePath(); try { for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) { if (!_nodeNum.substring(count, count + 1).equals("/")) - path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1))); + path = path.add(Integer.parseInt(_nodeNum.substring(count, + count + 1))); } } catch (Exception _e) { } @@ -471,9 +498,11 @@ Node node = tree.getRootNode(); DefaultTraverser traverser = new DefaultTraverser(); - TraversableNodeWrapper traversable = new TraversableNodeWrapper(node); + TraversableNodeWrapper traversable = new TraversableNodeWrapper( + node); DefaultEvaluator evaluator = new DefaultEvaluator(path); - Either>> ret = traverser.traverse(traversable, evaluator); + Either>> ret = traverser + .traverse(traversable, evaluator); if (ret.isA()) { Assert.fail(); } @@ -494,6 +523,35 @@ }; return new IterableConverter(chs, converter); } + + + public getAttributeImp getAttribute(String _boardName, String _nodeNum) { + + DefaultNodePath path = new DefaultNodePath(); + try { + for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) { + if (!_nodeNum.substring(count, count + 1).equals("/")) + path = path.add(Integer.parseInt(_nodeNum.substring(count, + count + 1))); + } + } catch (Exception _e) { + } + requestCounter.incrementAndGet(); + JungleTree tree = jungle.getTreeByName(_boardName); + Node node = tree.getRootNode(); + + DefaultTraverser traverser = new DefaultTraverser(); + TraversableNodeWrapper traversable = new TraversableNodeWrapper(node); + DefaultEvaluator evaluator = new DefaultEvaluator(path); + Either>> ret = traverser.traverse(traversable, evaluator); + if (ret.isA()) { + Assert.fail(); + } + + Traversal> traversal = ret.b(); + TraversableNodeWrapper target = traversal.destination(); + return new getAttributeImp(target.getWrapped()); + } public int getRequestNum() { return requestCounter.get(); diff -r b3d5fbe95b9a -r 564f683b7aef src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java --- a/src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java Mon Jul 28 14:09:54 2014 +0900 +++ b/src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java Mon Jul 28 17:02:31 2014 +0900 @@ -33,7 +33,6 @@ public void doGet(HttpServletRequest _req, HttpServletResponse _res) { final String bname = _req.getParameter(PARAM_BOARD_NAME); - final String name = _req.getParameter("key"); try { printBoard(bname, _res.getWriter()); } catch (Exception _e) { @@ -46,8 +45,7 @@ _pw.write("

" + _bname + "

\n"); _pw.write("

Latest renew time : " + bbs.getRenewTime(_bname) + "

\n"); - ; - + _pw.write("
Author : \n"); - _pw.write("

"+ "

\n"); + _pw.write("\n"); + _pw.write("

" + + "

\n"); _pw.write("

Folder Name

\n"); - _pw.write(""); + _pw.write(""); + _pw.write("

\n"); + _pw.write("
"); + + _pw.write("


add Attribute

"); + _pw.write("
AUTHOR : " + + " KEY :

\n"); + _pw.write("

attributeName

\n"); + _pw.write(""); _pw.write("

\n"); _pw.write("
"); - - _pw.write("


add Attribute

"); - _pw.write("
AUTHOR : "+ " KEY :

\n"); - _pw.write("

attributeName

\n"); - _pw.write(""); - _pw.write("

\n"); - _pw.write("
"); -//やることはgetChildren(Folderを持ってくる)とgetMessage(中身の表示) + _pw.write("

Folder

"); + for (BoardMessage msg : bbs.getFolder(_bname, nodeNum)) { _pw.write("
"); _pw.write(""+msg.getMessage()+"(folder)"+"
"); - _pw.write("edit(not s)"); + + "&uuid=" + nodeNum + "/" + msg.getUUID() + ">" + + msg.getMessage() + "(folder)" + "
"); + _pw.write("edit(not s)"); } - /* for (BoardMessage msg : bbs.getMessages(_bname)) { - _pw.write("
"); - _pw.write("

" + "Author : " + msg.getAuthor() + "

"); - _pw.write("edit"); - }*/ + _pw.write("


Value



"); + getAttributeImp attribute = (bbs.getAttribute(_bname, nodeNum)); + + for (int count = 0; attribute.getMessage(count) != null; count++) { + + _pw.write("

" + "Author : " + attribute.getMessage(count) + + "

"); + // _pw.write("edit"); + } _pw.write(""); _pw.flush(); diff -r b3d5fbe95b9a -r 564f683b7aef src/main/java/app/bbs/thinks/getAttributeImp.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/app/bbs/thinks/getAttributeImp.java Mon Jul 28 17:02:31 2014 +0900 @@ -0,0 +1,33 @@ +package app.bbs.thinks; + + + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; + +public class getAttributeImp +{ + private final Node node; + + public getAttributeImp(Node _node) + { + node = _node; + } + + public String getUUID(int num) { + // TODO Auto-generated method stub + return String.valueOf(num); + } + + public String getAuthor(int num) { + // TODO Auto-generated method stub + return new String(node.getAttributes().get("author" + String.valueOf(num)).array()); + } + + public String getMessage(int num) { + // TODO Auto-generated method stub + return new String(node.getAttributes().get("mes" + String.valueOf(num)).array()); + } + +} +