X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneModificationDetector.java;h=92fa3dc60a8c4432a5db69f2651553c58c805081;hp=290fcbeefaedce946659db626634aa108cf1ff0a;hb=62573c314957b1851f4fbe693b8746686caa940a;hpb=f229fe41f708d2b275c20ceb9aba5993761218a3 diff --git a/src/main/java/net/pterodactylus/sone/core/SoneModificationDetector.java b/src/main/java/net/pterodactylus/sone/core/SoneModificationDetector.java index 290fcbe..92fa3dc 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneModificationDetector.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneModificationDetector.java @@ -10,6 +10,7 @@ import java.util.concurrent.atomic.AtomicInteger; import net.pterodactylus.sone.data.Sone; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Objects; import com.google.common.base.Optional; import com.google.common.base.Ticker; @@ -17,8 +18,6 @@ import com.google.common.base.Ticker; * Class that detects {@link Sone} modifications (as per their {@link * Sone#getFingerprint() fingerprints} and determines when a modified Sone may * be inserted. - * - * @author David ‘Bombe’ Roden */ class SoneModificationDetector { @@ -26,8 +25,8 @@ class SoneModificationDetector { private final LockableFingerprintProvider lockableFingerprintProvider; private final AtomicInteger insertionDelay; private Optional lastModificationTime; - private String originalFingerprint; - private String lastFingerprint; + private String lastInsertFingerprint; + private String lastCheckFingerprint; SoneModificationDetector(LockableFingerprintProvider lockableFingerprintProvider, AtomicInteger insertionDelay) { this(systemTicker(), lockableFingerprintProvider, insertionDelay); @@ -38,36 +37,36 @@ class SoneModificationDetector { this.ticker = ticker; this.lockableFingerprintProvider = lockableFingerprintProvider; this.insertionDelay = insertionDelay; - lastFingerprint = originalFingerprint; + lastCheckFingerprint = lastInsertFingerprint; } public boolean isEligibleForInsert() { if (lockableFingerprintProvider.isLocked()) { lastModificationTime = absent(); - lastFingerprint = ""; + lastCheckFingerprint = ""; return false; } String fingerprint = lockableFingerprintProvider.getFingerprint(); - if (originalFingerprint.equals(fingerprint)) { + if (fingerprint.equals(lastInsertFingerprint)) { lastModificationTime = absent(); - lastFingerprint = fingerprint; + lastCheckFingerprint = fingerprint; return false; } - if (!lastFingerprint.equals(fingerprint)) { + if (!Objects.equal(lastCheckFingerprint, fingerprint)) { lastModificationTime = of(ticker.read()); - lastFingerprint = fingerprint; + lastCheckFingerprint = fingerprint; return false; } return insertionDelayHasPassed(); } - public String getOriginalFingerprint() { - return originalFingerprint; + public String getLastInsertFingerprint() { + return lastInsertFingerprint; } public void setFingerprint(String fingerprint) { - originalFingerprint = fingerprint; - lastFingerprint = originalFingerprint; + lastInsertFingerprint = fingerprint; + lastCheckFingerprint = lastInsertFingerprint; lastModificationTime = absent(); } @@ -76,14 +75,12 @@ class SoneModificationDetector { } public boolean isModified() { - return !lockableFingerprintProvider.getFingerprint().equals(originalFingerprint); + return !Objects.equal(lockableFingerprintProvider.getFingerprint(), lastInsertFingerprint); } /** * Provider for a fingerprint and the information if a {@link Sone} is locked. This * prevents us from having to lug a Sone object around. - * - * @author David ‘Bombe’ Roden */ static interface LockableFingerprintProvider {