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;
  }