comparison src/main/java/app/bbs/NetworkJungleBulletinBoard.java @ 187:f9b26747ef63

add matrixBullet in board
author tatsuki
date Sat, 27 Sep 2014 16:23:21 +0900
parents ef5045af0753
children 269bada9eedc
comparison
equal deleted inserted replaced
186:ef5045af0753 187:f9b26747ef63
1 package app.bbs; 1 package app.bbs;
2 2
3 import java.io.File; 3 import java.io.File;
4 import java.io.IOException; 4 import java.io.IOException;
5 import java.nio.ByteBuffer; 5 import java.nio.ByteBuffer;
6 import java.text.SimpleDateFormat;
7 import java.util.Date;
6 import java.util.Iterator; 8 import java.util.Iterator;
7 import java.util.concurrent.atomic.AtomicInteger; 9 import java.util.concurrent.atomic.AtomicInteger;
8 10
9 import fj.data.List; 11 import fj.data.List;
10 import fj.data.TreeMap; 12 import fj.data.TreeMap;
718 requestCounter.incrementAndGet(); 720 requestCounter.incrementAndGet();
719 JungleTree tree = jungle.getTreeByName(_boardName); 721 JungleTree tree = jungle.getTreeByName(_boardName);
720 TreeNode node = tree.getRootNode(); 722 TreeNode node = tree.getRootNode();
721 723
722 DefaultTraverser traverser = new DefaultTraverser(); 724 DefaultTraverser traverser = new DefaultTraverser();
723 // TraversableNodeWrapper<Node> traversable = new
724 // TraversableNodeWrapper<Node>(node);
725 DefaultEvaluator evaluator = new DefaultEvaluator(path); 725 DefaultEvaluator evaluator = new DefaultEvaluator(path);
726 Either<Error, Traversal> ret = traverser.traverse(node, 726 Either<Error, Traversal> ret = traverser.traverse(node,
727 evaluator); 727 evaluator);
728 if (ret.isA()) { 728 if (ret.isA()) {
729 Assert.fail(); 729 Assert.fail();
767 return true; 767 return true;
768 } 768 }
769 769
770 return false; 770 return false;
771 } 771 }
772
772 public String searchJungle(String requestName , String approvalName) { 773 public String searchJungle(String requestName , String approvalName) {
773 JungleTree tree = jungle.getTreeByName("人物"); 774 JungleTree tree = jungle.getTreeByName("人物");
774 775
775 776
776 TreeNode searchNode = search(tree , requestName,"mes"); 777 TreeNode searchNode = search(tree , requestName,"mes");
777 if (searchNode == null) 778 if (searchNode == null){
779 fail(requestName,approvalName,"申請者がデータに無い人物です");
778 return "申請者がデータに無い人物です"; 780 return "申請者がデータに無い人物です";
779 781 }
780 if (!compare(searchNode, "河野研")) 782
783 if (!compare(searchNode, "河野研")){
784 fail(requestName,approvalName,"河野研以外に所属している人は、この申請をすることが出来ません");
781 return "河野研以外に所属している人は、この申請をすることが出来ません"; 785 return "河野研以外に所属している人は、この申請をすることが出来ません";
782 786 }
783 787
784 searchNode = search(tree , approvalName,"mes"); 788 searchNode = search(tree , approvalName,"mes");
785 if (searchNode == null) 789 if (searchNode == null){
790 fail(requestName,approvalName,"承認者がデータに無い人物です");
786 return "承認者がデータに無い人物です"; 791 return "承認者がデータに無い人物です";
787 792 }
788 if (!compare(searchNode, "上位申請権限"))
789 return "権限がありません(この申請の承認は上位申請者である必要があります";
790 793
791 String position = searchNode.getAttributes().getString("mes1"); 794 String position = searchNode.getAttributes().getString("mes1");
792 795
793 JungleTree grantTree = jungle.getTreeByName("役職"); 796 JungleTree grantTree = jungle.getTreeByName("役職");
794 searchNode = search(grantTree , position,"mes"); 797 searchNode = search(grantTree , position,"mes");
795 798
796 if (!compare(searchNode, "准教授権限") || !!compare(searchNode, "教授権限")) 799 if (!compare(searchNode, "准教授権限") && !compare(searchNode, "教授権限")){
800 fail(requestName,approvalName,"権限がありません(この申請の承認は助教授か、教授である必要があります");
797 return "権限がありません(この申請の承認は助教授か、教授である必要があります"; 801 return "権限がありません(この申請の承認は助教授か、教授である必要があります";
798 802 }
799 return "申請が受理されました"; 803
804 searchNode = search(tree , approvalName,"mes");
805 if (searchNode == null){
806 fail(requestName,approvalName,"申請者がデータに無い人物です");
807 return "申請者がデータに無い人物です";
808 }
809
810 if (!compare(searchNode, "上位申請権限")){
811 fail(requestName,approvalName,"権限がありません(この申請の承認は上位申請者である必要があります");
812 return "権限がありません(この申請の承認は上位申請者である必要があります";
813 }
814 success(requestName,approvalName);
815
816 return "申請が受理されました";
800 } 817 }
801 818
819 public void fail(String requestName, String approvalName, String reason){
820 JungleTree contextTree = jungle.getTreeByName("申請");
821 JungleTreeEditor editor = contextTree.getTreeEditor();
822 editor = editor.putAttribute(new DefaultNodePath(),"mes0", ByteBuffer.wrap(("申請者名 = " + requestName).getBytes())).b();
823 editor = editor.putAttribute(new DefaultNodePath(),"mes1", ByteBuffer.wrap(("申請内容".getBytes()))).b();
824 Date date = new Date();
825 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
826 String time = sdf.format(date);
827 editor = editor.putAttribute(new DefaultNodePath(),"mes2", ByteBuffer.wrap(("承認時間 = " + time).getBytes())).b();
828
829 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes", ByteBuffer.wrap("否認書".getBytes())).b();
830 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes0", ByteBuffer.wrap(("否認者名 = " + approvalName).getBytes())).b();
831 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes1", ByteBuffer.wrap(("否認理由 = " + reason).getBytes())).b();
832 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes2", ByteBuffer.wrap(("承認時間 = " + time).getBytes())).b();
833 editor.success();
834 }
835
836 public void success(String requestName, String approvalName){
837 JungleTree contextTree = jungle.getTreeByName("申請");
838 JungleTreeEditor editor = contextTree.getTreeEditor();
839 editor = editor.putAttribute(new DefaultNodePath(),"mes0", ByteBuffer.wrap(("申請者名 = " + requestName).getBytes())).b();
840 editor = editor.putAttribute(new DefaultNodePath(),"mes1", ByteBuffer.wrap(("申請内容".getBytes()))).b();
841 Date date = new Date();
842 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
843 String time = sdf.format(date);
844 editor = editor.putAttribute(new DefaultNodePath(),"mes2", ByteBuffer.wrap(("承認時間" + time).getBytes())).b();
845
846 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes", ByteBuffer.wrap("承認書".getBytes())).b();
847 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes0", ByteBuffer.wrap(("承認者名 = " + approvalName).getBytes())).b();
848 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes1", ByteBuffer.wrap("承認理由 = 権限があってるので許可した".getBytes())).b();
849 editor = editor.putAttribute(new DefaultNodePath().add(0),"mes2", ByteBuffer.wrap(("承認時間" + time).getBytes())).b();
850 editor.success();
851 }
802 852
803 public int getRequestNum() { 853 public int getRequestNum() {
804 return requestCounter.get(); 854 return requestCounter.get();
805 } 855 }
806 856