From 72ba0e4d57611165a0de6577b3db368a20d6e4e6 Mon Sep 17 00:00:00 2001 From: leventov Date: Tue, 19 Jan 2016 18:36:28 +0300 Subject: [PATCH] Move HashSplitting.Splitting.forSegments() method to HashSplitting interface, because interfaces could contain static methods since Java 8 --- .../chronicle/hash/impl/HashSplitting.java | 20 +++++++++---------- .../hash/impl/VanillaChronicleHash.java | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/hash/impl/HashSplitting.java b/src/main/java/net/openhft/chronicle/hash/impl/HashSplitting.java index 447a1531c..2e17a8149 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/HashSplitting.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/HashSplitting.java @@ -27,20 +27,18 @@ import static net.openhft.chronicle.core.Maths.isPowerOf2; public interface HashSplitting extends Marshallable { + static HashSplitting forSegments(int segments) { + assert segments > 0; + if (segments == 1) + return ForSingleSegment.INSTANCE; + if (isPowerOf2(segments)) + return new ForPowerOf2Segments(segments); + return new ForNonPowerOf2Segments(segments); + } + int segmentIndex(long hash); long segmentHash(long hash); - class Splitting { - static HashSplitting forSegments(int segments) { - assert segments > 0; - if (segments == 1) - return ForSingleSegment.INSTANCE; - if (isPowerOf2(segments)) - return new ForPowerOf2Segments(segments); - return new ForNonPowerOf2Segments(segments); - } - } - enum ForSingleSegment implements HashSplitting, EnumMarshallable { INSTANCE; diff --git a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java index d711a4d0f..3c796e726 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java @@ -172,7 +172,7 @@ public abstract class VanillaChronicleHash