public static SearchOperator parseCommand(String predicate) { SearchPredicate command = new SearchPredicate(predicate); String predicate_base = command.getBase(); String predicate_options = command.getExtension(); boolean is_negated = command.isNegated(); SearchCommandOptionParser searchCommandOptionParser = new SearchCommandOptionParser(); SearchOperator resultOperator = createSearchOperator(predicate_base, predicate_options, searchCommandOptionParser); if (is_negated) return new NotSearchOperator(resultOperator); else return resultOperator; }