Mercurial > hg > Database > jungle-network
diff src/jungle/app/bbs/codesegment/LogUpdateCodeSegment.java @ 96:fcce7ca4adb9
Modified LogUpdateCodesegment
author | one |
---|---|
date | Mon, 18 Nov 2013 19:34:15 +0900 |
parents | 87ec5dd0dc27 |
children | 11ad00323206 |
line wrap: on
line diff
--- a/src/jungle/app/bbs/codesegment/LogUpdateCodeSegment.java Mon Nov 18 17:08:17 2013 +0900 +++ b/src/jungle/app/bbs/codesegment/LogUpdateCodeSegment.java Mon Nov 18 19:34:15 2013 +0900 @@ -2,6 +2,8 @@ +import java.util.List; + import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; @@ -9,44 +11,44 @@ import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; -import alice.jungle.datasegment.HashSetDataSegment; -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; +import alice.jungle.operations.NetworkTreeOperationLog; public class LogUpdateCodeSegment extends CodeSegment { - Receiver parentLog = ids.create(CommandType.PEEK); + Receiver log = ids.create(CommandType.PEEK); Receiver host = ids.create(CommandType.PEEK); - Receiver hashLog = ids.create(CommandType.PEEK); + Receiver clist = ids.create(CommandType.PEEK); + public LogUpdateCodeSegment() { - parentLog.setKey("parent", "log"); + log.setKey("log"); host.setKey("host"); - hashLog.setKey("hashLog"); + clist.setKey("_CLIST");; } public LogUpdateCodeSegment(int index) { - parentLog.setKey("parent", "log", index); + log.setKey("log", index); host.setKey("host"); - hashLog.setKey("hashLog"); + clist.setKey("_CLIST");; } public void run() { - int index = parentLog.index; -// String hostName = host.asString(); - DefaultTreeOperationLogContainer container = parentLog.asClass(DefaultTreeOperationLogContainer.class); - HashSetDataSegment ds = hashLog.asClass(HashSetDataSegment.class); - if(ds.hash.contains(container.getHashLogString())) { - ods.update("hashLog", ds); - new LogUpdateCodeSegment(index); - return; + int index = log.index; + NetworkTreeOperationLog netLog = log.asClass(NetworkTreeOperationLog.class); + String hostName = host.asString(); + @SuppressWarnings("unchecked") + List<String> list = clist.asClass(List.class); + if (!hostName.equals((log.from))) { + Either<Error, JungleTreeEditor> either = JungleManager.update(netLog); + if(either.isA()) { + throw new IllegalStateException(); + } } - Either<Error, JungleTreeEditor> either = JungleManager.update(container); - if(either.isA()) { - throw new IllegalStateException(); + for (String node : list) { + if (!node.equals(log.from)) { + ods.update(node, log.key, log.getVal()); + } } - ds.hash.add(container.getHashLogString()); - ods.update("hashLog", ds); - ods.put("log", container); new LogUpdateCodeSegment(index); } }