private void parse(@NotNull String query) {
      List<String> words = splitQuery(query);
      int size = words.size();

      if (size == 0) {
        return;
      }

      int index = 0;
      while (index < size) {
        String name = words.get(index++);
        if (name.startsWith("/")) {
          if (name.equals(SearchWords.VENDOR.getValue()) || name.equals(SearchWords.TAG.getValue())) {
            if (index < size) {
              handleAttribute(name, words.get(index++));
            }
            else {
              addToSearchQuery(query);
              break;
            }
          }
          else {
            handleAttribute(name, "");
          }
        }
        else {
          addToSearchQuery(name);
        }
      }

      attributes = enabled || disabled || bundled || downloaded || invalid || needUpdate;
    }
private void parse(@NotNull String query)