X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2FState.java;h=966dbe307927b36a47a2f0b7c87dbc700a9974e5;hb=8aeef90590095a455e2323d70ba8ccae032f4276;hp=d549d69e129348531ef37c116be0bc4444e7583b;hpb=ffb3c77f6ab233f13d0093ac7f7663a00654fb97;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/State.java b/src/main/java/net/pterodactylus/rhynodge/State.java index d549d69..966dbe3 100644 --- a/src/main/java/net/pterodactylus/rhynodge/State.java +++ b/src/main/java/net/pterodactylus/rhynodge/State.java @@ -17,6 +17,10 @@ package net.pterodactylus.rhynodge; +import javax.annotation.Nonnull; + +import net.pterodactylus.rhynodge.output.Output; + /** * Defines the current state of a system. * @@ -43,6 +47,21 @@ public interface State { */ boolean success(); + /** + * Returns whether this state triggers a change notification. This can + * only return {@code true} if this state is the result of a + * {@link Merger} merging two states. + * + * @return {@code true} if this state triggers a change notification, + * {@code false} otherwise + */ + boolean triggered(); + + /** + * Sets whether this state will trigger a notification. + */ + void trigger(); + boolean isEmpty(); /** @@ -76,4 +95,7 @@ public interface State { */ Throwable exception(); + @Nonnull + Output output(Reaction reaction); + }