Mercurial > hg > Members > nobuyasu > Consensus
view app/init/InitialData.java @ 131:2b6e9496fb0c draft default tip
modified updateUserConsensusStatus
author | one |
---|---|
date | Fri, 26 Apr 2013 02:47:01 +0900 |
parents | 5cc8c9689fec |
children |
line wrap: on
line source
package init; import models.ClaimModel; import models.NodeModel; import models.TPGraph; import models.UserModel; import org.codehaus.jackson.node.ObjectNode; import play.libs.Json; import com.tinkerpop.blueprints.Graph; import com.tinkerpop.blueprints.Vertex; public class InitialData { private static InitialData instance = new InitialData(); static String tatsumi = "Tatsumi"; static String yana = "Yana"; static String ikuhiro = "Ikuhiro"; static String shiomi = "Shiomi"; static String takaaki = "Takaaki"; static String akifumi = "Akifumi"; static String yosiaki = "Yosiaki"; public InitialData() { } public static void init() { TPGraph.resetInstance(); TPGraph tpGraph = TPGraph.getInstance(); tpGraph.setPath(null); Vertex claimV = tpGraph.addVertex(null); tpGraph.setClaimRootId(claimV.getId()); Vertex userV = tpGraph.addVertex(null); tpGraph.setUserRootId(userV.getId()); createDemoUsers(); instance.enterDataDemo1(); /* instance.enterDataDemo2(); */ } private static void createDemoUsers() { TPGraph tpGraph = TPGraph.getInstance(); Graph graph = tpGraph.getGraph(); /* Demo1 Users */ UserModel userModel1 = new UserModel(graph.addVertex(takaaki)); UserModel userModel2 = new UserModel(graph.addVertex(akifumi)); UserModel userModel3 = new UserModel(graph.addVertex(yosiaki)); tpGraph.setLabelFromRootUser(userModel1); tpGraph.setLabelFromRootUser(userModel2); tpGraph.setLabelFromRootUser(userModel3); /* Demo2 Users */ /* UserModel userModel4 = new UserModel(graph.addVertex(tatsumi)); UserModel userModel5 = new UserModel(graph.addVertex(yana)); UserModel userModel6 = new UserModel(graph.addVertex(ikuhiro)); UserModel userModel7 = new UserModel(graph.addVertex(shiomi)); tpGraph.setLabelFromRootUser(userModel4); tpGraph.setLabelFromRootUser(userModel5); tpGraph.setLabelFromRootUser(userModel6); tpGraph.setLabelFromRootUser(userModel7); */ } public static void setMentionLabelLatestClaim(TPGraph tpGraph, ClaimModel fromClaim, ClaimModel toClaim , String relation) { tpGraph.setLabelMention(getLatestClaim(tpGraph, fromClaim), getLatestClaim(tpGraph, toClaim), relation); } public static void copyConsensusTree(TPGraph tpGraph, ClaimModel claim) { String timestamp = Long.toString(System.currentTimeMillis()); ClaimModel latest = getLatestClaim(tpGraph, claim); tpGraph.copyConsensusTree(latest, timestamp); } public void enterDataDemo1() { TPGraph tpGraph = TPGraph.getInstance(); Graph graph = tpGraph.getGraph(); String[] otherUser1 = { akifumi, yosiaki }; ClaimModel claimModel1 = new ClaimModel(graph.addVertex(null)); ObjectNode t1 = createToulmin("アプリでGraphDBを利用する。"); createFirstClaim(claimModel1, t1, takaaki, otherUser1, NodeModel.UNKNOWN); ClaimModel claimModel2 = new ClaimModel(graph.addVertex(null)); ObjectNode t2 = createToulmin("RDBを利用すべきである。"); String[] usersClaim2 = { takaaki }; createClaimForMention(tpGraph, claimModel2, t2, akifumi, usersClaim2, NodeModel.DENIED); // createClaimForMention(tpGraph, claimModel2, t2, akifumi, usersClaim2, // NodeModel.UNKNOWN); setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel2, NodeModel.L_REFUTATION); /* */ claimModel1.computeAndUpdateStatus(); copyConsensusTree(tpGraph, claimModel1); ClaimModel claimModel3 = new ClaimModel(graph.addVertex(null)); ObjectNode t3 = createToulmin("データ構造はGraphDBに向いている。"); String[] usersClaim3 = { akifumi }; createClaimForMention(tpGraph,claimModel3, t3, takaaki, usersClaim3, NodeModel.UNKNOWN); setMentionLabelLatestClaim(tpGraph, claimModel2, claimModel3, NodeModel.L_REFUTATION); claimModel2.computeAndUpdateStatus(); copyConsensusTree(tpGraph, claimModel1); ClaimModel claimModel4 = new ClaimModel(graph.addVertex(null)); ObjectNode t4 = createToulmin("どのGraphDBを利用するのか。"); createClaimForMention(tpGraph, claimModel4, t4, yosiaki, usersClaim2, NodeModel.AGREED); setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel4, NodeModel.L_QUESTION); copyConsensusTree(tpGraph, claimModel1); ClaimModel claimModel5 = new ClaimModel(graph.addVertex(null)); ObjectNode t5 = createToulmin("TinkerPopはどうか?"); String[] usersClaim5 = { yosiaki }; createClaimForMention(tpGraph,claimModel5, t5, takaaki, usersClaim5, NodeModel.AGREED); setMentionLabelLatestClaim(tpGraph, claimModel4, claimModel5, NodeModel.L_SUGGESTION); copyConsensusTree(tpGraph, claimModel1); claimModel3.computeAndUpdateStatus(); claimModel2.computeAndUpdateStatus(); tpGraph.setLabelStatusToUsers(claimModel1, usersClaim3, NodeModel.L_REQUEST, NodeModel.AGREED); } public static ClaimModel getLatestClaim(TPGraph tpGraph, ClaimModel claim) { Object latestId = tpGraph.getLatestVertexId(claim.getId()); return new ClaimModel(tpGraph.getVertex(latestId)); } public void enterDataDemo2() { TPGraph tpGraph = TPGraph.getInstance(); Graph graph = tpGraph.getGraph(); String[] usersClaim1 = {tatsumi,yana,ikuhiro,shiomi}; ClaimModel claimModel1 = new ClaimModel(graph.addVertex(null)); ObjectNode t1 = createToulmin("YanaのパソコンにMacPro QuadCoreを買う"); createFirstClaim(claimModel1, t1, yana, usersClaim1, NodeModel.AGREED); ClaimModel claimModel2 = new ClaimModel(graph.addVertex(null)); ObjectNode t2 = createToulmin("壊れたマシンと同じ程度の物があればいいです。"); String[] usersClaim2 = { tatsumi }; createClaimForMention(tpGraph,claimModel2, t2, yana, usersClaim2, NodeModel.DENIED); setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel2, NodeModel.L_SUGGESTION); ClaimModel claimModel3 = new ClaimModel(graph.addVertex(null)); ObjectNode t3 = createToulmin("MacProの最新版がいいでしょう。"); String[] usersClaim3 = { yana }; createClaimForMention(tpGraph,claimModel3, t3, tatsumi, usersClaim3, NodeModel.AGREED); setMentionLabelLatestClaim(tpGraph, claimModel2, claimModel3, NodeModel.L_REFUTATION); ClaimModel claimModel4 = new ClaimModel(graph.addVertex(null)); ObjectNode t4 = createToulmin("MacProの最新版を買います。"); String[] usersClaim4 = { yana,ikuhiro,shiomi }; createClaimForMention(tpGraph,claimModel4, t4, tatsumi, usersClaim4, NodeModel.DENIED); setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel4, NodeModel.L_SUGGESTION); ClaimModel claimModel5 = new ClaimModel(graph.addVertex(null)); ObjectNode t5 = createToulmin("MacProの最新は高いのでやめましょう。"); String[] usersClaim5 = { tatsumi}; createClaimForMention(tpGraph,claimModel5, t5, shiomi, usersClaim5, NodeModel.AGREED); setMentionLabelLatestClaim(tpGraph, claimModel4, claimModel5, NodeModel.L_REFUTATION); ClaimModel claimModel6 = new ClaimModel(graph.addVertex(null)); ObjectNode t6 = createToulmin("MacProの最速マシンである必要はありません。"); String[] usersClaim6 = { tatsumi }; createClaimForMention(tpGraph,claimModel6, t6, shiomi, usersClaim6, NodeModel.AGREED); setMentionLabelLatestClaim(tpGraph, claimModel4, claimModel6, NodeModel.L_REFUTATION); } public static void createClaimForMention(TPGraph tpGraph, ClaimModel claim, ObjectNode t, String author, String[] users, String type) { createClaimSetToulmin(getLatestClaim(tpGraph, claim), t, author, users, type); } public static void createFirstClaim(ClaimModel claim, ObjectNode t, String author, String[] users, String type) { TPGraph tpGraph = TPGraph.getInstance(); createClaimSetToulmin(claim, t, author, users, type); tpGraph.setLabelFromRootClaim(claim); } public static void createClaimSetToulmin(ClaimModel claim, ObjectNode t, String author, String[] users, String type) { TPGraph tpGraph = TPGraph.getInstance(); tpGraph.setLabelToAuthor(claim, author); claim.setClaimProperties(t, NodeModel.UNANIMOUSLY); tpGraph.setLabelStatusToUsers(claim, users, NodeModel.L_REQUEST, type); claim.computeAndUpdateStatus(); } public static ObjectNode createToulmin(String title) { ObjectNode t = Json.newObject(); t.put(NodeModel.TITLE, title); t.put(NodeModel.CONTENTS, title); t.put(NodeModel.QUALIFIER, ""); t.put(NodeModel.DATA, ""); t.put(NodeModel.WARRANT, ""); t.put(NodeModel.BACKING, ""); t.put(NodeModel.REBUTTLE, ""); return t; } }