X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2Fstates%2FAbstractState.java;h=674f4af70093db5b4641c8eb6768d973deb6d896;hb=7cc0345d0ed05aba95c7ede138685195cc7e95cd;hp=e35c933ec28fbae79ba69acfeeca08ef1adb9c94;hpb=dce4ee6592d33854cb118014f8ff0fc2fd5e1124;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/reactor/states/AbstractState.java b/src/main/java/net/pterodactylus/reactor/states/AbstractState.java index e35c933..674f4af 100644 --- a/src/main/java/net/pterodactylus/reactor/states/AbstractState.java +++ b/src/main/java/net/pterodactylus/reactor/states/AbstractState.java @@ -19,14 +19,22 @@ package net.pterodactylus.reactor.states; import net.pterodactylus.reactor.State; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + /** * Abstract implementation of a {@link State} that knows about the basic * attributes of a {@link State}. * * @author David ‘Bombe’ Roden */ +@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class") public abstract class AbstractState implements State { + /** The time of this state. */ + @JsonProperty + private final long time; + /** Whether the state was successfully retrieved. */ private final boolean success; @@ -71,6 +79,7 @@ public abstract class AbstractState implements State { * The exception that occured while retrieving the state */ protected AbstractState(boolean success, Throwable exception) { + this.time = System.currentTimeMillis(); this.success = success; this.exception = exception; } @@ -83,6 +92,14 @@ public abstract class AbstractState implements State { * {@inheritDoc} */ @Override + public long time() { + return time; + } + + /** + * {@inheritDoc} + */ + @Override public boolean success() { return success; }