@Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            SummaryDefinition that = (SummaryDefinition) o;
            if (isRegex != that.isRegex) return false;
            if (!name.equals(that.name)) return false;
            if (!function.equals(that.function)) return false;
            if (!target.equals(that.target)) return false;
            // Probably incorrect - comparing Object[] arrays with Arrays.equals
            return Arrays.equals(arguments, that.arguments);
        }
@Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            SummaryDefinition that = (SummaryDefinition) o;
            if (isRegex != that.isRegex) return false;
            if (!name.equals(that.name)) return false;
            if (!function.equals(that.function)) return false;
            if (!target.equals(that.target)) return false;
           
            return Arrays.equals(arguments, that.arguments);
        }
@override public boolean equals(object o) { if (this == o) return true; if (o == null || getclass() != o.getclass()) return false; summarydefinition that = (summarydefinition) o; if (isregex != that.isregex) return false; if (!name.equals(that.name)) return false; if (!function.equals(that.function)) return false; if (!target.equals(that.target)) return false; return arrays.equals(arguments, that.arguments); }