diff --git a/dhfs-parent/server/pom.xml b/dhfs-parent/server/pom.xml
index 2c1003b6..74372a0d 100644
--- a/dhfs-parent/server/pom.xml
+++ b/dhfs-parent/server/pom.xml
@@ -85,11 +85,6 @@
quarkus-junit5
test
-
- org.projectlombok
- lombok
- provided
-
com.github.SerCeMan
jnr-fuse
diff --git a/dhfs-parent/server/src/lombok.config b/dhfs-parent/server/src/lombok.config
deleted file mode 100644
index f1c474ce..00000000
--- a/dhfs-parent/server/src/lombok.config
+++ /dev/null
@@ -1 +0,0 @@
-lombok.accessors.prefix += _
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/ChunkData.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/ChunkData.java
index e4810e19..517e3ce3 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/ChunkData.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/ChunkData.java
@@ -3,12 +3,10 @@ package com.usatiuk.dhfs.files.objects;
import com.google.protobuf.ByteString;
import com.usatiuk.dhfs.objects.JDataRefcounted;
import com.usatiuk.dhfs.objects.JObjectKey;
-import lombok.Builder;
import java.util.Collection;
import java.util.LinkedHashSet;
-@Builder(toBuilder = true)
public record ChunkData(JObjectKey key, Collection refsFrom, boolean frozen,
ByteString data) implements JDataRefcounted {
public ChunkData(JObjectKey key, ByteString data) {
@@ -17,12 +15,12 @@ public record ChunkData(JObjectKey key, Collection refsFrom, boolean
@Override
public ChunkData withRefsFrom(Collection refs) {
- return this.toBuilder().refsFrom(refs).build();
+ return new ChunkData(key, refs, frozen, data);
}
@Override
public ChunkData withFrozen(boolean frozen) {
- return this.toBuilder().frozen(frozen).build();
+ return new ChunkData(key, refsFrom, frozen, data);
}
@Override
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/File.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/File.java
index f24227f8..19afb5fe 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/File.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/objects/File.java
@@ -1,23 +1,45 @@
package com.usatiuk.dhfs.files.objects;
import com.usatiuk.dhfs.objects.JObjectKey;
-import lombok.Builder;
import java.util.Collection;
import java.util.NavigableMap;
-@Builder(toBuilder = true)
public record File(JObjectKey key, Collection refsFrom, boolean frozen, long mode, long cTime, long mTime,
NavigableMap chunks, boolean symlink, long size
) implements FsNode {
@Override
public File withRefsFrom(Collection refs) {
- return this.toBuilder().refsFrom(refs).build();
+ return new File(key, refs, frozen, mode, cTime, mTime, chunks, symlink, size);
}
@Override
public File withFrozen(boolean frozen) {
- return this.toBuilder().frozen(frozen).build();
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
+ }
+
+ public File withChunks(NavigableMap chunks) {
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
+ }
+
+ public File withSymlink(boolean symlink) {
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
+ }
+
+ public File withSize(long size) {
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
+ }
+
+ public File withMode(long mode) {
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
+ }
+
+ public File withCTime(long cTime) {
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
+ }
+
+ public File withMTime(long mTime) {
+ return new File(key, refsFrom, frozen, mode, cTime, mTime, chunks, symlink, size);
}
@Override
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/service/DhfsFileServiceImpl.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/service/DhfsFileServiceImpl.java
index d7ddefa7..22e338d2 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/service/DhfsFileServiceImpl.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/files/service/DhfsFileServiceImpl.java
@@ -4,6 +4,8 @@ import com.google.protobuf.ByteString;
import com.google.protobuf.UnsafeByteOperations;
import com.usatiuk.dhfs.files.objects.ChunkData;
import com.usatiuk.dhfs.files.objects.File;
+import com.usatiuk.dhfs.objects.JData;
+import com.usatiuk.dhfs.objects.JObjectKey;
import com.usatiuk.dhfs.objects.TransactionManager;
import com.usatiuk.dhfs.objects.jkleppmanntree.JKleppmannTreeManager;
import com.usatiuk.dhfs.objects.jkleppmanntree.structs.JKleppmannTreeNode;
@@ -13,8 +15,6 @@ import com.usatiuk.dhfs.objects.jkleppmanntree.structs.JKleppmannTreeNodeMetaFil
import com.usatiuk.dhfs.objects.transaction.LockingStrategy;
import com.usatiuk.dhfs.objects.transaction.Transaction;
import com.usatiuk.dhfs.utils.StatusRuntimeExceptionNoStacktrace;
-import com.usatiuk.dhfs.objects.JData;
-import com.usatiuk.dhfs.objects.JObjectKey;
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import io.quarkus.logging.Log;
@@ -228,7 +228,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
if (dent instanceof JKleppmannTreeNode) {
return true;
} else if (dent instanceof File f) {
- curTx.put(f.toBuilder().mode(mode).mTime(System.currentTimeMillis()).build());
+ curTx.put(f.withMode(mode).withMTime(System.currentTimeMillis()));
return true;
} else {
throw new IllegalArgumentException(uuid + " is not a file");
@@ -503,7 +503,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
realNewChunks.putAll(newChunks);
- file = file.toBuilder().chunks(Collections.unmodifiableNavigableMap(realNewChunks)).mTime(System.currentTimeMillis()).build();
+ file = file.withChunks(Collections.unmodifiableNavigableMap(realNewChunks)).withMTime(System.currentTimeMillis());
curTx.put(file);
cleanupChunks(file, removedChunks.values());
updateFileSize(file);
@@ -527,7 +527,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
if (length == 0) {
var oldChunks = Collections.unmodifiableNavigableMap(new TreeMap<>(file.chunks()));
- file = file.toBuilder().chunks(new TreeMap<>()).mTime(System.currentTimeMillis()).build();
+ file = file.withChunks(new TreeMap<>()).withMTime(System.currentTimeMillis());
curTx.put(file);
cleanupChunks(file, oldChunks.values());
updateFileSize(file);
@@ -597,7 +597,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
realNewChunks.putAll(newChunks);
- file = file.toBuilder().chunks(Collections.unmodifiableNavigableMap(realNewChunks)).mTime(System.currentTimeMillis()).build();
+ file = file.withChunks(Collections.unmodifiableNavigableMap(realNewChunks)).withMTime(System.currentTimeMillis());
curTx.put(file);
cleanupChunks(file, removedChunks.values());
updateFileSize(file);
@@ -652,7 +652,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
"File not found for setTimes: " + fileUuid))
);
- curTx.put(file.toBuilder().cTime(atimeMs).mTime(mtimeMs).build());
+ curTx.put(file.withCTime(atimeMs).withMTime(mtimeMs));
return true;
});
}
@@ -669,7 +669,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
}
if (realSize != file.size()) {
- curTx.put(file.toBuilder().size(realSize).build());
+ curTx.put(file.withSize(realSize));
}
});
}
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/fuse/JnrPtrByteOutputAccessors.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/fuse/JnrPtrByteOutputAccessors.java
index 78cc8ff4..98da17fa 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/fuse/JnrPtrByteOutputAccessors.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/fuse/JnrPtrByteOutputAccessors.java
@@ -3,18 +3,23 @@ package com.usatiuk.dhfs.fuse;
import jakarta.inject.Singleton;
import jdk.internal.access.JavaNioAccess;
import jdk.internal.access.SharedSecrets;
-import lombok.Getter;
import sun.misc.Unsafe;
import java.lang.reflect.Field;
@Singleton
class JnrPtrByteOutputAccessors {
- @Getter
JavaNioAccess _nioAccess;
- @Getter
Unsafe _unsafe;
+ public JavaNioAccess getNioAccess() {
+ return _nioAccess;
+ }
+
+ public Unsafe getUnsafe() {
+ return _unsafe;
+ }
+
JnrPtrByteOutputAccessors() throws NoSuchFieldException, IllegalAccessException {
_nioAccess = SharedSecrets.getJavaNioAccess();
Field f = Unsafe.class.getDeclaredField("theUnsafe");
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeManager.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeManager.java
index bbbbdb6a..55802cd6 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeManager.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeManager.java
@@ -1,5 +1,6 @@
package com.usatiuk.dhfs.objects.jkleppmanntree;
+import com.usatiuk.dhfs.objects.JObjectKey;
import com.usatiuk.dhfs.objects.TransactionManager;
import com.usatiuk.dhfs.objects.jkleppmanntree.structs.JKleppmannTreeNode;
import com.usatiuk.dhfs.objects.jkleppmanntree.structs.JKleppmannTreeNodeMeta;
@@ -8,7 +9,6 @@ import com.usatiuk.dhfs.objects.jkleppmanntree.structs.JKleppmannTreePersistentD
import com.usatiuk.dhfs.objects.transaction.LockingStrategy;
import com.usatiuk.dhfs.objects.transaction.Transaction;
import com.usatiuk.kleppmanntree.*;
-import com.usatiuk.dhfs.objects.JObjectKey;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import org.apache.commons.lang3.tuple.Pair;
@@ -279,7 +279,7 @@ public class JKleppmannTreeManager {
@Override
public Long getTimestamp() {
var res = _data.clock() + 1;
- _data = _data.toBuilder().clock(res).build();
+ _data = _data.withClock(res);
curTx.put(_data);
return res;
}
@@ -292,7 +292,7 @@ public class JKleppmannTreeManager {
@Override
public Long updateTimestamp(Long receivedTimestamp) {
var old = _data.clock();
- _data = _data.toBuilder().clock(Math.max(old, receivedTimestamp) + 1).build();
+ _data = _data.withClock(Math.max(old, receivedTimestamp) + 1);
curTx.put(_data);
return old;
}
@@ -361,7 +361,7 @@ public class JKleppmannTreeManager {
public void putForPeer(UUID peerId, Long timestamp) {
var newPeerTimestampLog = new HashMap<>(_data.peerTimestampLog());
newPeerTimestampLog.put(peerId, timestamp);
- _data = _data.toBuilder().peerTimestampLog(newPeerTimestampLog).build();
+ _data = _data.withPeerTimestampLog(newPeerTimestampLog);
curTx.put(_data);
}
}
@@ -378,7 +378,7 @@ public class JKleppmannTreeManager {
public Pair, LogRecord> takeOldest() {
var newLog = new TreeMap<>(_data.log());
var ret = newLog.pollFirstEntry();
- _data = _data.toBuilder().log(newLog).build();
+ _data = _data.withLog(newLog);
curTx.put(_data);
if (ret == null) return null;
return Pair.of(ret);
@@ -422,7 +422,7 @@ public class JKleppmannTreeManager {
throw new IllegalStateException("Overwriting log entry?");
var newLog = new TreeMap<>(_data.log());
newLog.put(timestamp, record);
- _data = _data.toBuilder().log(newLog).build();
+ _data = _data.withLog(newLog);
curTx.put(_data);
}
@@ -430,7 +430,7 @@ public class JKleppmannTreeManager {
public void replace(CombinedTimestamp timestamp, LogRecord record) {
var newLog = new TreeMap<>(_data.log());
newLog.put(timestamp, record);
- _data = _data.toBuilder().log(newLog).build();
+ _data = _data.withLog(newLog);
curTx.put(_data);
}
}
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeOpWrapper.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeOpWrapper.java
index a0a6d7a4..cf5c8ce9 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeOpWrapper.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreeOpWrapper.java
@@ -1,17 +1,19 @@
package com.usatiuk.dhfs.objects.jkleppmanntree;
+import com.usatiuk.dhfs.objects.JObjectKey;
import com.usatiuk.dhfs.objects.jkleppmanntree.structs.JKleppmannTreeNodeMeta;
import com.usatiuk.kleppmanntree.OpMove;
-import com.usatiuk.dhfs.objects.JObjectKey;
-import lombok.Getter;
import java.util.UUID;
// Wrapper to avoid having to specify generic types
public class JKleppmannTreeOpWrapper {
- @Getter
private final OpMove _op;
+ public OpMove getOp() {
+ return _op;
+ }
+
public JKleppmannTreeOpWrapper(OpMove op) {
if (op == null) throw new IllegalArgumentException("op shouldn't be null");
_op = op;
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreePeriodicPushOp.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreePeriodicPushOp.java
index 5259c51b..e2e4f8c2 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreePeriodicPushOp.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/JKleppmannTreePeriodicPushOp.java
@@ -1,17 +1,19 @@
package com.usatiuk.dhfs.objects.jkleppmanntree;
-import lombok.Getter;
-
-import java.util.Collection;
-import java.util.List;
import java.util.UUID;
public class JKleppmannTreePeriodicPushOp {
- @Getter
private final UUID _from;
- @Getter
private final long _timestamp;
+ public UUID getFrom() {
+ return _from;
+ }
+
+ public long getTimestamp() {
+ return _timestamp;
+ }
+
public JKleppmannTreePeriodicPushOp(UUID from, long timestamp) {
_from = from;
_timestamp = timestamp;
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNode.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNode.java
index 096a32e5..82ee0fde 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNode.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNode.java
@@ -1,10 +1,9 @@
package com.usatiuk.dhfs.objects.jkleppmanntree.structs;
import com.usatiuk.dhfs.objects.JDataRefcounted;
+import com.usatiuk.dhfs.objects.JObjectKey;
import com.usatiuk.kleppmanntree.OpMove;
import com.usatiuk.kleppmanntree.TreeNode;
-import com.usatiuk.dhfs.objects.JObjectKey;
-import lombok.Builder;
import java.io.Serializable;
import java.util.Collection;
@@ -14,7 +13,6 @@ import java.util.UUID;
import java.util.stream.Stream;
// FIXME: Ideally this is two classes?
-@Builder(toBuilder = true)
public record JKleppmannTreeNode(JObjectKey key, Collection refsFrom, boolean frozen, JObjectKey parent,
OpMove lastEffectiveOp,
JKleppmannTreeNodeMeta meta,
@@ -26,32 +24,32 @@ public record JKleppmannTreeNode(JObjectKey key, Collection refsFrom
@Override
public JKleppmannTreeNode withParent(JObjectKey parent) {
- return this.toBuilder().parent(parent).build();
+ return new JKleppmannTreeNode(key, refsFrom, frozen, parent, lastEffectiveOp, meta, children);
}
@Override
public JKleppmannTreeNode withLastEffectiveOp(OpMove lastEffectiveOp) {
- return this.toBuilder().lastEffectiveOp(lastEffectiveOp).build();
+ return new JKleppmannTreeNode(key, refsFrom, frozen, parent, lastEffectiveOp, meta, children);
}
@Override
public JKleppmannTreeNode withMeta(JKleppmannTreeNodeMeta meta) {
- return this.toBuilder().meta(meta).build();
+ return new JKleppmannTreeNode(key, refsFrom, frozen, parent, lastEffectiveOp, meta, children);
}
@Override
public JKleppmannTreeNode withChildren(Map children) {
- return this.toBuilder().children(children).build();
+ return new JKleppmannTreeNode(key, refsFrom, frozen, parent, lastEffectiveOp, meta, children);
}
@Override
public JKleppmannTreeNode withRefsFrom(Collection refs) {
- return this.toBuilder().refsFrom(refs).build();
+ return new JKleppmannTreeNode(key, refs, frozen, parent, lastEffectiveOp, meta, children);
}
@Override
public JKleppmannTreeNode withFrozen(boolean frozen) {
- return this.toBuilder().frozen(frozen).build();
+ return new JKleppmannTreeNode(key, refsFrom, frozen, parent, lastEffectiveOp, meta, children);
}
@Override
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java
index 2ea7d27f..4a8f9fa6 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMeta.java
@@ -3,16 +3,20 @@ package com.usatiuk.dhfs.objects.jkleppmanntree.structs;
import com.usatiuk.autoprotomap.runtime.ProtoMirror;
import com.usatiuk.dhfs.objects.persistence.JKleppmannTreeNodeMetaP;
import com.usatiuk.kleppmanntree.NodeMeta;
-import lombok.Getter;
import java.util.Objects;
@ProtoMirror(JKleppmannTreeNodeMetaP.class)
public abstract class JKleppmannTreeNodeMeta implements NodeMeta {
- @Getter
private final String _name;
- public JKleppmannTreeNodeMeta(String name) {_name = name;}
+ public String getName() {
+ return _name;
+ }
+
+ public JKleppmannTreeNodeMeta(String name) {
+ _name = name;
+ }
public abstract JKleppmannTreeNodeMeta withName(String name);
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMetaFile.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMetaFile.java
index ae01c3ef..563a2447 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMetaFile.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreeNodeMetaFile.java
@@ -1,17 +1,19 @@
package com.usatiuk.dhfs.objects.jkleppmanntree.structs;
import com.usatiuk.autoprotomap.runtime.ProtoMirror;
-import com.usatiuk.dhfs.objects.persistence.JKleppmannTreeNodeMetaFileP;
import com.usatiuk.dhfs.objects.JObjectKey;
-import lombok.Getter;
+import com.usatiuk.dhfs.objects.persistence.JKleppmannTreeNodeMetaFileP;
import java.util.Objects;
@ProtoMirror(JKleppmannTreeNodeMetaFileP.class)
public class JKleppmannTreeNodeMetaFile extends JKleppmannTreeNodeMeta {
- @Getter
private final JObjectKey _fileIno;
+ public JObjectKey getFileIno() {
+ return _fileIno;
+ }
+
public JKleppmannTreeNodeMetaFile(String name, JObjectKey fileIno) {
super(name);
_fileIno = fileIno;
diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreePersistentData.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreePersistentData.java
index 30367594..6422c69d 100644
--- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreePersistentData.java
+++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/jkleppmanntree/structs/JKleppmannTreePersistentData.java
@@ -5,11 +5,9 @@ import com.usatiuk.kleppmanntree.CombinedTimestamp;
import com.usatiuk.kleppmanntree.LogRecord;
import com.usatiuk.kleppmanntree.OpMove;
import com.usatiuk.dhfs.objects.JObjectKey;
-import lombok.Builder;
import java.util.*;
-@Builder(toBuilder = true)
public record JKleppmannTreePersistentData(
JObjectKey key, Collection refsFrom, boolean frozen,
long clock,
@@ -40,12 +38,28 @@ public record JKleppmannTreePersistentData(
@Override
public JKleppmannTreePersistentData withRefsFrom(Collection refs) {
- return this.toBuilder().refsFrom(refs).build();
+ return new JKleppmannTreePersistentData(key, refs, frozen, clock, queues, peerTimestampLog, log);
}
@Override
public JKleppmannTreePersistentData withFrozen(boolean frozen) {
- return this.toBuilder().frozen(frozen).build();
+ return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log);
+ }
+
+ public JKleppmannTreePersistentData withClock(long clock) {
+ return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log);
+ }
+
+ public JKleppmannTreePersistentData withQueues(HashMap, OpMove>> queues) {
+ return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log);
+ }
+
+ public JKleppmannTreePersistentData withPeerTimestampLog(HashMap peerTimestampLog) {
+ return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log);
+ }
+
+ public JKleppmannTreePersistentData withLog(TreeMap, LogRecord> log) {
+ return new JKleppmannTreePersistentData(key, refsFrom, frozen, clock, queues, peerTimestampLog, log);
}
@Override