package com.friday.tooldriver.constants.uipath;

public interface FilterOperation {
    String getOperator();

    enum ComparisonOperators implements FilterOperation {
        Equal("eq"),
        NotEqual("ne"),
        GreaterThan("gt"),
        GreaterThanOrEqual("ge"),
        LessThan("lt"),
        LessThanOrEqual("le"),
        HasFlags("has");

        private String operator;

        ComparisonOperators(String operator) {
            this.operator = operator;
        }

        @Override
        public String getOperator() {
            return this.operator;
        }
    }

    enum LogicalOperators implements FilterOperation {
        LogicalAnd("and"),
        LogicalOr("or"),
        LogicalNegation("not");

        private String operator;

        LogicalOperators(String operator) {
            this.operator = operator;
        }

        @Override
        public String getOperator() {
            return this.operator;
        }
    }

    enum ArithmeticOperators implements FilterOperation {
        Addition("add"),
        Subtraction("sub"),
        Multiplication("mul"),
        Division("div"),
        Modulo("mod");

        private String operator;

        ArithmeticOperators(String operator) {
            this.operator = operator;
        }

        @Override
        public String getOperator() {
            return this.operator;
        }
    }
}