X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2FReaction.java;h=65a637bf468faef2471224e3e9e64efb44d7e6e1;hb=13a4fe6bece23b3dd561de657cf9bb7ea307e2b6;hp=e3cfb866aa06deabf7d202cc7a14ef01d3ff59dc;hpb=428acf8306397d8e170c950d1ec88870ae45acfb;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/reactor/Reaction.java b/src/main/java/net/pterodactylus/reactor/Reaction.java index e3cfb86..65a637b 100644 --- a/src/main/java/net/pterodactylus/reactor/Reaction.java +++ b/src/main/java/net/pterodactylus/reactor/Reaction.java @@ -17,6 +17,11 @@ package net.pterodactylus.reactor; +import java.util.Collections; +import java.util.List; + +import com.google.common.collect.Lists; + /** * A {@code Reaction} binds together {@link Query}s, {@link Trigger}s, and * {@link Action}s, and it stores the intermediary {@link State}s. @@ -25,9 +30,15 @@ package net.pterodactylus.reactor; */ public class Reaction { + /** The name of this reaction. */ + private final String name; + /** The query to run. */ private final Query query; + /** The filters to run. */ + private final List filters = Lists.newArrayList(); + /** The trigger to detect changes. */ private final Trigger trigger; @@ -40,15 +51,37 @@ public class Reaction { /** * Creates a new reaction. * + * @param name + * The name of the reaction + * @param query + * The query to run + * @param trigger + * The trigger to detect changes + * @param action + * The action to perform + */ + public Reaction(String name, Query query, Trigger trigger, Action action) { + this(name, query, Collections. emptyList(), trigger, action); + } + + /** + * Creates a new reaction. + * + * @param name + * The name of the reaction * @param query * The query to run + * @param filters + * The filters to run * @param trigger * The trigger to detect changes * @param action * The action to perform */ - public Reaction(Query query, Trigger trigger, Action action) { + public Reaction(String name, Query query, List filters, Trigger trigger, Action action) { + this.name = name; this.query = query; + this.filters.addAll(filters); this.trigger = trigger; this.action = action; } @@ -58,6 +91,16 @@ public class Reaction { // /** + * Returns the name of this reaction. This name is solely used for display + * purposes and does not need to be unique. + * + * @return The name of this reaction + */ + public String name() { + return name; + } + + /** * Returns the query to run. * * @return The query to run @@ -67,6 +110,15 @@ public class Reaction { } /** + * Returns the filters to run. + * + * @return The filters to run + */ + public Iterable filters() { + return filters; + } + + /** * Returns the trigger to detect changes. * * @return The trigger to detect changes