MCPcopy Create free account
hub / github.com/e2wugui/zeze / apply

Method apply

ZezeJava/ZezeJava/src/main/java/Zeze/History/ApplyTable.java:49–76  ·  view source on GitHub ↗
(@NotNull BTableKey tableKey, @NotNull Binary changes)

Source from the content-addressed store, hash-verified

47 }
48
49 @SuppressWarnings("unchecked")
50 public K apply(@NotNull BTableKey tableKey, @NotNull Binary changes) throws Exception {
51 var logRecord = new Changes.Record(originTable);
52 logRecord.decode(ByteBuffer.Wrap(changes));
53 var key = originTable.decodeKey(ByteBuffer.Wrap(tableKey.getKeyEncoded()));
54
55 switch (logRecord.getState()) {
56 case Changes.Record.Remove:
57 remove(key);
58 break;
59
60 case Changes.Record.Put:
61 //noinspection DataFlowIssue
62 put(key, (V)logRecord.getValue());
63 break;
64
65 case Changes.Record.Edit:
66 var value = get(key);
67 if (value == null)
68 break; // 忽略不存在的编辑记录。旧代码:value = originTable.newValue();
69 var log = logRecord.getLogBean();
70 if (log != null)
71 value.followerApply(log);
72 put(key, value);
73 break;
74 }
75 return key;
76 }
77
78 public void put(@NotNull K key, @NotNull V value) throws Exception {
79 var bbKey = originTable.encodeKey(key);

Callers

nothing calls this directly

Calls 11

decodeMethod · 0.95
WrapMethod · 0.95
getStateMethod · 0.95
removeMethod · 0.95
putMethod · 0.95
getValueMethod · 0.95
getMethod · 0.95
getLogBeanMethod · 0.95
getKeyEncodedMethod · 0.80
decodeKeyMethod · 0.65
followerApplyMethod · 0.45

Tested by

no test coverage detected