From bdb2b42aecc27b6e26b7204b0d1b31b50e0b3582 Mon Sep 17 00:00:00 2001 From: Mikhaylo Demianenko Date: Thu, 25 Aug 2016 00:56:57 +0200 Subject: [PATCH] Cleanup, javadocs --- .../src/main/java/org/neo4j/time/Clocks.java | 37 ++++++++++++++++--- .../main/java/org/neo4j/time/FakeClock.java | 12 +++--- .../java/org/neo4j/time/SystemNanoClock.java | 6 ++- .../main/java/org/neo4j/helpers/Clock.java | 1 + .../impl/api/DefaultTransactionTracer.java | 3 +- .../checkpoint/DefaultCheckPointerTracer.java | 3 +- 6 files changed, 48 insertions(+), 14 deletions(-) diff --git a/community/common/src/main/java/org/neo4j/time/Clocks.java b/community/common/src/main/java/org/neo4j/time/Clocks.java index 5bf3b0f0a214e..000f55d8ff5e9 100644 --- a/community/common/src/main/java/org/neo4j/time/Clocks.java +++ b/community/common/src/main/java/org/neo4j/time/Clocks.java @@ -22,27 +22,54 @@ import java.time.Clock; import java.util.concurrent.TimeUnit; +/** + * This class consists of {@code static} utility methods for operating + * on clocks. These utilities include factory methods for different type of clocks. + */ public class Clocks { private static final Clock SYSTEM_CLOCK = Clock.systemUTC(); + private Clocks() + { + // non-instantiable + } + + /** + * Returns system clock. + * @return system clock + */ public static Clock systemClock() { return SYSTEM_CLOCK; } - public static Clock nanoClock() + /** + * Returns clock that allow to get current nanos. + * @return clock with nano time support + */ + public static SystemNanoClock nanoClock() { - return new SystemNanoClock(); + return SystemNanoClock.INSTANCE; } + /** + * Return new fake clock instance. + * @return fake clock + */ public static FakeClock fakeClock() { - return fakeClock(); + return new FakeClock(); } - public static FakeClock fakeClock( long delta, TimeUnit unit ) + /** + * Return new fake clock instance. + * @param initialTime initial fake clock time + * @param unit initialTime fake clock time unit + * @return fake clock + */ + public static FakeClock fakeClock( long initialTime, TimeUnit unit ) { - return new FakeClock( delta, unit ); + return new FakeClock( initialTime, unit ); } } diff --git a/community/common/src/main/java/org/neo4j/time/FakeClock.java b/community/common/src/main/java/org/neo4j/time/FakeClock.java index aad0d8d587306..f2f23369cd3c3 100644 --- a/community/common/src/main/java/org/neo4j/time/FakeClock.java +++ b/community/common/src/main/java/org/neo4j/time/FakeClock.java @@ -30,15 +30,15 @@ */ public class FakeClock extends SystemNanoClock { - private long nanos = 0; + private long nanoTime = 0; FakeClock() { } - FakeClock( long delta, TimeUnit unit ) + FakeClock( long initialTime, TimeUnit unit ) { - forward( delta, unit ); + forward( initialTime, unit ); } @Override @@ -56,18 +56,18 @@ public Clock withZone( ZoneId zone ) @Override public Instant instant() { - return Instant.ofEpochMilli( TimeUnit.NANOSECONDS.toMillis( nanos ) ); + return Instant.ofEpochMilli( TimeUnit.NANOSECONDS.toMillis( nanoTime ) ); } @Override public long nanos() { - return nanos; + return nanoTime; } public FakeClock forward( long delta, TimeUnit unit ) { - nanos += unit.toNanos( delta ); + nanoTime += unit.toNanos( delta ); return this; } } diff --git a/community/common/src/main/java/org/neo4j/time/SystemNanoClock.java b/community/common/src/main/java/org/neo4j/time/SystemNanoClock.java index 4846535ec33d1..7fadf3f89cf75 100644 --- a/community/common/src/main/java/org/neo4j/time/SystemNanoClock.java +++ b/community/common/src/main/java/org/neo4j/time/SystemNanoClock.java @@ -24,9 +24,13 @@ import java.time.ZoneId; import java.time.ZoneOffset; +/** + * {@link Clock} that support nano time resolution. + * @see Clocks + */ public class SystemNanoClock extends Clock { - public static final SystemNanoClock INSTANCE = new SystemNanoClock(); + static final SystemNanoClock INSTANCE = new SystemNanoClock(); protected SystemNanoClock() { diff --git a/community/kernel/src/main/java/org/neo4j/helpers/Clock.java b/community/kernel/src/main/java/org/neo4j/helpers/Clock.java index 7991602a2df42..ac0458c70de32 100644 --- a/community/kernel/src/main/java/org/neo4j/helpers/Clock.java +++ b/community/kernel/src/main/java/org/neo4j/helpers/Clock.java @@ -21,6 +21,7 @@ /** * @deprecated please use {@link java.time.Clock} instead + * @see org.neo4j.time.Clocks */ @Deprecated public interface Clock diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java index e7f22bd7c4bd8..49d9521ea72a2 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultTransactionTracer.java @@ -32,6 +32,7 @@ import org.neo4j.kernel.impl.transaction.tracing.TransactionEvent; import org.neo4j.kernel.impl.transaction.tracing.TransactionTracer; import org.neo4j.kernel.impl.util.JobScheduler; +import org.neo4j.time.Clocks; import org.neo4j.time.SystemNanoClock; public class DefaultTransactionTracer implements TransactionTracer, LogRotationMonitor @@ -155,7 +156,7 @@ public void setReadOnly( boolean wasReadOnly ) public DefaultTransactionTracer( Monitor monitor, JobScheduler jobScheduler ) { - this( SystemNanoClock.INSTANCE, monitor, jobScheduler ); + this( Clocks.nanoClock(), monitor, jobScheduler ); } public DefaultTransactionTracer( SystemNanoClock clock, Monitor monitor, JobScheduler jobScheduler ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/DefaultCheckPointerTracer.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/DefaultCheckPointerTracer.java index c3ddebbf0901f..d54ef96b3c1dc 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/DefaultCheckPointerTracer.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/DefaultCheckPointerTracer.java @@ -27,6 +27,7 @@ import org.neo4j.kernel.impl.transaction.tracing.LogForceEvent; import org.neo4j.kernel.impl.transaction.tracing.LogForceWaitEvent; import org.neo4j.kernel.impl.util.JobScheduler; +import org.neo4j.time.Clocks; import org.neo4j.time.SystemNanoClock; public class DefaultCheckPointerTracer implements CheckPointTracer, CheckPointerMonitor @@ -68,7 +69,7 @@ public LogForceEvent beginLogForce() public DefaultCheckPointerTracer( Monitor monitor, JobScheduler jobScheduler ) { - this( SystemNanoClock.INSTANCE, monitor, jobScheduler ); + this( Clocks.nanoClock(), monitor, jobScheduler ); } public DefaultCheckPointerTracer( SystemNanoClock clock, Monitor monitor, JobScheduler jobScheduler )