Mercurial > hg > Members > tatsuki > bbs
view src/main/java/jp/ac/u_ryukyu/ie/cr/bbs/network/codesegment/LogUpdateCodeSegment.java @ 2:3c188a5b69ef
add network bbs
author | tatsuki |
---|---|
date | Mon, 27 Jun 2016 05:06:19 +0900 |
parents | |
children | f3d30646c863 |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.bbs.network.codesegment; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.BulletinBoardJungleManager; import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkTreeOperationLog; import java.util.List; public class LogUpdateCodeSegment extends CodeSegment { Receiver log = ids.create(CommandType.TAKE); Receiver clist = ids.create(CommandType.PEEK); public LogUpdateCodeSegment() { log.setKey("log"); clist.setKey("_CLIST");; } public LogUpdateCodeSegment(int index) { log.setKey("log", index); clist.setKey("_CLIST");; } public void run() { int index = log.index; new jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment.LogUpdateCodeSegment(); NetworkTreeOperationLog netLog = log.asClass(NetworkTreeOperationLog.class); @SuppressWarnings("unchecked") List<String> list = clist.asClass(List.class); for (String node : list) { if (!node.equals(log.from)) { ods.put(node, log.key, log.getVal()); } } if (!log.from.equals("local")) { Either<Error, JungleTreeEditor> either = BulletinBoardJungleManager.update(netLog); if(either.isA()) { new jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment.LogUpdateCodeSegment(index); throw new IllegalStateException(); } } } }