X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2Floader%2FChain.java;h=8c98e5098015299bc0b1c3b5a9799025e86a6db4;hb=13a4fe6bece23b3dd561de657cf9bb7ea307e2b6;hp=91892a55e1999e98e73cf47cf92720665fc3fbfb;hpb=9bd0be10a640c02e27c509f5b2f6cbb01b0c87f6;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/reactor/loader/Chain.java b/src/main/java/net/pterodactylus/reactor/loader/Chain.java index 91892a5..8c98e50 100644 --- a/src/main/java/net/pterodactylus/reactor/loader/Chain.java +++ b/src/main/java/net/pterodactylus/reactor/loader/Chain.java @@ -17,18 +17,16 @@ package net.pterodactylus.reactor.loader; +import java.util.ArrayList; import java.util.List; -import org.simpleframework.xml.Element; -import org.simpleframework.xml.ElementList; -import org.simpleframework.xml.Root; +import com.fasterxml.jackson.annotation.JsonProperty; /** * Model for chain definitions. * * @author David ‘Bombe’ Roden */ -@Root public class Chain { /** @@ -39,11 +37,11 @@ public class Chain { public static class Parameter { /** The name of the parameter. */ - @Element + @JsonProperty private String name; /** The value of the parameter. */ - @Element + @JsonProperty private String value; /** @@ -103,12 +101,12 @@ public class Chain { public static class Part { /** The class name of the part. */ - @Element(name = "class") + @JsonProperty(value = "class") private String name; /** The parameters of the part. */ - @ElementList(required = false, empty = false) - private List parameters; + @JsonProperty + private List parameters = new ArrayList(); /** * Returns the name of the part’s class. @@ -167,27 +165,31 @@ public class Chain { } /** Whether this chain is enabled. */ - @Element + @JsonProperty private boolean enabled; + /** The name of the chain. */ + @JsonProperty + private String name; + /** The query of the chain. */ - @Element + @JsonProperty private Part query; /** The filters of the chain. */ - @ElementList(required = false, empty = false) - private List filters; + @JsonProperty + private List filters = new ArrayList(); /** The trigger of the chain. */ - @Element + @JsonProperty private Part trigger; /** The action of the chain. */ - @Element + @JsonProperty private Part action; /** Interval between updates (in seconds). */ - @Element + @JsonProperty private int updateInterval; /** @@ -200,6 +202,15 @@ public class Chain { } /** + * Returns the name of the chain. + * + * @return The name of the chain + */ + public String name() { + return name; + } + + /** * Returns the query of this chain. * * @return The query of this chain @@ -254,6 +265,7 @@ public class Chain { @Override public int hashCode() { int hashCode = 0; + hashCode ^= name.hashCode(); hashCode ^= query.hashCode(); for (Part filter : filters) { hashCode ^= filter.hashCode(); @@ -273,6 +285,9 @@ public class Chain { return false; } Chain chain = (Chain) object; + if (!name.equals(chain.name)) { + return false; + } if (!query.equals(chain.query)) { return false; }