package net.pterodactylus.reactor;
+import net.pterodactylus.reactor.output.Output;
import net.pterodactylus.reactor.states.FileState;
/**
* sizes but a trigger might only care about whether the file appeared or
* disappeared since the last check.
*
- * @param <S>
- * The type of the state
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
-public interface Trigger<S extends State> {
+public interface Trigger {
/**
* Checks whether the given states warrant a change trigger.
* @return {@code true} if the given states warrant a change trigger,
* {@code false} otherwise
*/
- boolean triggers(S currentState, S previousState);
+ boolean triggers(State currentState, State previousState);
+
+ /**
+ * Returns the output of this trigger. This will only return a meaningful
+ * value if {@link #triggers(State, State)} returns {@code true}.
+ *
+ * @return The output of this trigger
+ */
+ Output output();
}