package moe.ymc.acron.config.json; import com.google.gson.annotations.SerializedName; import moe.ymc.acron.auth.Action; import org.jetbrains.annotations.NotNull; import java.util.regex.Pattern; class Rule implements ConfigJsonObject { @SerializedName("regex") private final String regex; @SerializedName("action") private final Action action; @SerializedName("display") private final boolean display; private Rule(String regex, Action action, boolean display) { this.regex = regex; this.action = action; this.display = display; } public @NotNull moe.ymc.acron.auth.Rule create(boolean startup) throws ConfigDeserializationException { if (regex == null || regex.trim().equals("") || action == null) throw new ConfigDeserializationException(".clients.[]rules.regex or .clients.[]rules.action is" + "not specified."); return new moe.ymc.acron.auth.Rule(Pattern.compile(regex), action, display); } }