diff --git a/app/src/main/java/lightcontainer/protocol/Protocol.java b/app/src/main/java/lightcontainer/protocol/Protocol.java deleted file mode 100644 index 07bb621..0000000 --- a/app/src/main/java/lightcontainer/protocol/Protocol.java +++ /dev/null @@ -1,117 +0,0 @@ -package lightcontainer.protocol; - -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Protocol - *

- * Class allowing to define new rules for the LightContainer protocol, - * also provides utility functions to work with regexes and the command to compare. - * - * @author Jérémi NIHART - * @version 1.0 - * @see Pattern - * @since 1.0 - */ -public abstract class Protocol { - // Variables - private final String rule; - private final Pattern rulePattern; - private List groups; - - /** - * Protocol constructor - * - * @param rule Command (e.g: LOGIN). - * @param regex Regex to compile and use for this command (e.g: LOGIN ([A-Z0-9a-z]{1,20})). - * Do not forget to define the groups in the regex. - */ - protected Protocol(String rule, String regex) { - this.rule = rule; - this.rulePattern = Pattern.compile(regex); - } - - /** - * Retrieve, the name of the Rule. - * - * @return Name of this rule. - * @since 1.0 - */ - public String getRule() { - return this.rule; - } - - /** - * Check if a command matches the rule with the rule matcher. - * - * @param cmd Command to verify with the rule matcher. - * @return True : if the command match with the rule. - * False though. - * @since 1.0 - */ - protected boolean matcherCheck(String cmd) { - Matcher ruleMatcher = this.rulePattern.matcher(cmd); - if (ruleMatcher.matches()) { - this.groups = new ArrayList<>(); - for (int i = 1; i <= ruleMatcher.groupCount(); i++) this.groups.add(ruleMatcher.group(i)); - return true; - } - return false; - } - - /** - * Get a list of all the groups extracted from the previously matched command with {@link #matcherCheck(String)}. - * - * Requires to have run {@link #matcherCheck(String)} - * - * @return String list containing all the groups extrapolated from the command. - * @see Protocol#matcherCheck(String) - * @since 1.0 - */ - protected List matcherGetGroups() { - return this.groups; - } - - /** - * Execute the rule on a command. - *

- * This function allows you to check a command and process those groups (parameters) - * use the utility functions of {@link Protocol} to facilitate processing, see @see. - * - * @param cmd Command on which to execute the rule. - * @see Protocol#execute(String) - * @see #matcherCheck(String) - * @see #matcherGetGroups() - * @since 1.0 - */ - public abstract void execute(String cmd); - - /** - * Retrieve, the hashcode of the rule. - * - * @return Rule hashcode. - * @since 1.0 - */ - @Override - public int hashCode() { - return rule.hashCode() % 8; - } - - /** - * Compare the equality of two rules. - * - * @return True : if the rules are equals - * False if not. - * @since 1.0 - */ - @Override - public boolean equals(final Object obj) { - if (this == obj) return true; - if (!(obj instanceof Protocol)) return false; - final Protocol other = (Protocol) obj; - return hashCode() == other.hashCode(); - } -}