Mercurial > hg > Database > jungle-network
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 |