Make the update time of a Sone final, set it in the Sone builder.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / SoneImpl.java
index 2fdd40c..9b46988 100644 (file)
@@ -33,6 +33,7 @@ import java.util.logging.Logger;
 
 import net.pterodactylus.sone.data.Album;
 import net.pterodactylus.sone.data.Client;
+import net.pterodactylus.sone.data.LocalSone;
 import net.pterodactylus.sone.data.Post;
 import net.pterodactylus.sone.data.PostReply;
 import net.pterodactylus.sone.data.Profile;
@@ -56,7 +57,7 @@ import com.google.common.hash.Hashing;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class SoneImpl implements Sone {
+public class SoneImpl implements LocalSone {
 
        /** The logger. */
        private static final Logger logger = getLogger("Sone.Data");
@@ -77,7 +78,7 @@ public class SoneImpl implements Sone {
        private volatile long latestEdition;
 
        /** The time of the last inserted update. */
-       private volatile long time;
+       private final long time;
 
        /** The status of this Sone. */
        private volatile SoneStatus status = SoneStatus.unknown;
@@ -118,11 +119,12 @@ public class SoneImpl implements Sone {
         * @param local
         *              {@code true} if the Sone is a local Sone, {@code false} otherwise
         */
-       public SoneImpl(Database database, Identity identity, boolean local) {
+       public SoneImpl(Database database, Identity identity, boolean local, long time) {
                this.database = database;
                this.id = identity.getId();
                this.identity = identity;
                this.local = local;
+               this.time = time;
        }
 
        //
@@ -245,7 +247,6 @@ public class SoneImpl implements Sone {
         * @return This Sone (for method chaining)
         */
        public Sone setTime(long time) {
-               this.time = time;
                return this;
        }