2 Commits

Author SHA1 Message Date
8e4ea67e53 Server: a little jmap cleanup 2025-04-04 17:26:12 +02:00
fb128882cb Server: use StringUtils.leftPad for JMapLongKey toString
much faster, without regex parsing every time!
2025-04-03 23:00:36 +02:00
2 changed files with 13 additions and 7 deletions

View File

@@ -17,23 +17,27 @@ public class JMapHelper {
Transaction curTx;
static <K extends JMapKey> JObjectKey makePrefix(JObjectKey holder) {
return JObjectKey.of(holder.name() + "/");
return JObjectKey.of(holder.name() + "=");
}
static <K extends JMapKey> JObjectKey makeKeyFirst(JObjectKey holder) {
return JObjectKey.of(holder.name() + "<");
}
static <K extends JMapKey> JObjectKey makeKey(JObjectKey holder, K key) {
return JObjectKey.of(makePrefix(holder).name() + key.toString());
}
static <K extends JMapKey> JObjectKey makeKeyLast(JObjectKey holder) {
return JObjectKey.of(holder.name() + ">");
}
public <K extends JMapKey> CloseableKvIterator<K, JMapEntry<K>> getIterator(JMapHolder<K> holder, IteratorStart start, K key) {
return new JMapIterator<>(curTx.getIterator(start, makeKey(holder.key(), key)), holder);
}
public <K extends JMapKey> CloseableKvIterator<K, JMapEntry<K>> getIterator(JMapHolder<K> holder, K key) {
return getIterator(holder, IteratorStart.GE, key);
}
public <K extends JMapKey> CloseableKvIterator<K, JMapEntry<K>> getIterator(JMapHolder<K> holder) {
return new JMapIterator<>(curTx.getIterator(IteratorStart.GE, makePrefix(holder.key())), holder);
return new JMapIterator<>(curTx.getIterator(IteratorStart.GT, makeKeyFirst(holder.key())), holder);
}
public <K extends JMapKey> void put(JMapHolder<K> holder, K key, JObjectKey ref) {

View File

@@ -1,5 +1,7 @@
package com.usatiuk.dhfs.jmap;
import org.apache.commons.lang3.StringUtils;
import javax.annotation.Nonnull;
import java.io.Serializable;
@@ -14,7 +16,7 @@ public record JMapLongKey(long key) implements JMapKey, Comparable<JMapKey>, Ser
@Override
public String toString() {
return String.format("%016d", key);
return StringUtils.leftPad(String.valueOf(key), 20, '0');
}
@Override