diff --git a/gradle.properties b/gradle.properties index b010344..a19301a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ release=true # true for push to repo, false for skip push repo, auto for detect by release value pushRepo=auto -luminolRef=4a1d048cd05452cd3e2512018996e4d5bb74ce82 +luminolRef=681db5ba70f72fc1cbfbf5ece5f411bdd8110057 org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/AbstractConcurrentTable.java b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/AbstractConcurrentTable.java index ee3c40f..81f1d7f 100644 --- a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/AbstractConcurrentTable.java +++ b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/AbstractConcurrentTable.java @@ -3,34 +3,34 @@ package fun.bm.lophine.utils.concurrent; import java.util.List; import java.util.Map; -public abstract class AbstractConcurrentTable { - public abstract void put(X x, Y y, Z z); +public interface AbstractConcurrentTable { + void put(X x, Y y, Z z); - public abstract void remove(X x, Y y, Z z); + void remove(X x, Y y, Z z); - public abstract List getZ(X x, Y y); + List getZ(X x, Y y); - public abstract List getY(X x, Z z); + List getY(X x, Z z); - public abstract List getX(Y y, Z z); + List getX(Y y, Z z); - public abstract Map getXY(Z z); + Map getXY(Z z); - public abstract Map getYZ(X x); + Map getYZ(X x); - public abstract Map getXZ(Y y); + Map getXZ(Y y); - public abstract List getAllX(); + List getAllX(); - public abstract List getAllY(); + List getAllY(); - public abstract List getAllZ(); + List getAllZ(); - public abstract void clearXY(Z z); + void clearXY(Z z); - public abstract void clearYZ(X x); + void clearYZ(X x); - public abstract void clearXZ(Y y); + void clearXZ(Y y); - public abstract void clearAll(); + void clearAll(); } diff --git a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/ConcurrentTable.java b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/ConcurrentTable.java index 0b350e1..d80bcc8 100644 --- a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/ConcurrentTable.java +++ b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/ConcurrentTable.java @@ -7,7 +7,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentLinkedDeque; import java.util.function.Predicate; -public class ConcurrentTable extends AbstractConcurrentTable { +public class ConcurrentTable implements AbstractConcurrentTable { protected final ConcurrentLinkedDeque> data = new ConcurrentLinkedDeque<>(); protected final boolean flagX; protected final boolean flagY; @@ -60,88 +60,88 @@ public class ConcurrentTable extends AbstractConcurrentTable { @Override public void remove(X x, Y y, Z z) { - data.removeIf(entry -> entry.getX().equals(x) && entry.getY().equals(y) && entry.getZ().equals(z)); + data.removeIf(entry -> entry.x().equals(x) && entry.y().equals(y) && entry.z().equals(z)); } @Override public List getZ(X x, Y y) { return filterAndCollect( - entry -> entry.getX().equals(x) && entry.getY().equals(y), - TableEntry::getZ + entry -> entry.x().equals(x) && entry.y().equals(y), + TableEntry::z ); } @Override public List getY(X x, Z z) { return filterAndCollect( - entry -> entry.getX().equals(x) && entry.getZ().equals(z), - TableEntry::getY + entry -> entry.x().equals(x) && entry.z().equals(z), + TableEntry::y ); } @Override public List getX(Y y, Z z) { return filterAndCollect( - entry -> entry.getY().equals(y) && entry.getZ().equals(z), - TableEntry::getX + entry -> entry.y().equals(y) && entry.z().equals(z), + TableEntry::x ); } @Override public Map getXY(Z z) { return filterAndMap( - entry -> entry.getZ().equals(z), - TableEntry::getX, - TableEntry::getY + entry -> entry.z().equals(z), + TableEntry::x, + TableEntry::y ); } @Override public Map getYZ(X x) { return filterAndMap( - entry -> entry.getX().equals(x), - TableEntry::getY, - TableEntry::getZ + entry -> entry.x().equals(x), + TableEntry::y, + TableEntry::z ); } @Override public Map getXZ(Y y) { return filterAndMap( - entry -> entry.getY().equals(y), - TableEntry::getX, - TableEntry::getZ + entry -> entry.y().equals(y), + TableEntry::x, + TableEntry::z ); } @Override public List getAllX() { - return collectAll(TableEntry::getX); + return collectAll(TableEntry::x); } @Override public List getAllY() { - return collectAll(TableEntry::getY); + return collectAll(TableEntry::y); } @Override public List getAllZ() { - return collectAll(TableEntry::getZ); + return collectAll(TableEntry::z); } @Override public void clearXY(Z z) { - data.removeIf(entry -> entry.getZ().equals(z)); + data.removeIf(entry -> entry.z().equals(z)); } @Override public void clearYZ(X x) { - data.removeIf(entry -> entry.getX().equals(x)); + data.removeIf(entry -> entry.x().equals(x)); } @Override public void clearXZ(Y y) { - data.removeIf(entry -> entry.getY().equals(y)); + data.removeIf(entry -> entry.y().equals(y)); } @Override diff --git a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/OptimizedConcurrentTable.java b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/OptimizedConcurrentTable.java index 2b701fa..b6ff345 100644 --- a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/OptimizedConcurrentTable.java +++ b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/OptimizedConcurrentTable.java @@ -76,9 +76,9 @@ public class OptimizedConcurrentTable extends ConcurrentTable data.removeIf(entry -> { boolean shouldRemove = predicate.test(entry); if (shouldRemove) { - removeFromIndex(xyIndex, entry.getX(), entry.getY(), entry.getZ()); - removeFromIndex(yzIndex, entry.getY(), entry.getZ(), entry.getX()); - removeFromIndex(zxIndex, entry.getZ(), entry.getX(), entry.getY()); + removeFromIndex(xyIndex, entry.x(), entry.y(), entry.z()); + removeFromIndex(yzIndex, entry.y(), entry.z(), entry.x()); + removeFromIndex(zxIndex, entry.z(), entry.x(), entry.y()); } return shouldRemove; }); @@ -86,9 +86,9 @@ public class OptimizedConcurrentTable extends ConcurrentTable public boolean putIfAbsent(X x, Y y, Z z) { if (data.stream().anyMatch(entry -> - Objects.equals(entry.getX(), x) && - Objects.equals(entry.getY(), y) && - Objects.equals(entry.getZ(), z))) { + Objects.equals(entry.x(), x) && + Objects.equals(entry.y(), y) && + Objects.equals(entry.z(), z))) { return false; } put(x, y, z); diff --git a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/TableEntry.java b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/TableEntry.java index 391ee37..76c4b4a 100644 --- a/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/TableEntry.java +++ b/lophine-server/src/main/java/fun/bm/lophine/utils/concurrent/TableEntry.java @@ -1,25 +1,4 @@ package fun.bm.lophine.utils.concurrent; -public class TableEntry { - private final X x; - private final Y y; - private final Z z; - - public TableEntry(X x, Y y, Z z) { - this.x = x; - this.y = y; - this.z = z; - } - - public X getX() { - return x; - } - - public Y getY() { - return y; - } - - public Z getZ() { - return z; - } +public record TableEntry(X x, Y y, Z z) { }