private Item getItemAsPositiveItem(Item item, NotItem not) {
        if (!(item instanceof CompositeItem rank)) return item;

        // Remove the not from the rank item, the rank should generally
        // be the first, but this is not always the case
        int limit = rank.getItemCount();
        int n = 0;
        while (n < limit) {
            if (rank.getItem(n) == not) {
                rank.removeItem(n);
                break;
            }
            n++;
        }

        if (rank.getItemCount() == 1) {
            return rank.getItem(0);
        }

        // Several items - or together
        OrItem or = new OrItem();

        for (Iterator<Item> i = rank.getItemIterator(); i.hasNext();) {
            or.addItem(i.next());
        }
        return or;
    }
Returns the content of the given item as an item to be added as a positive item.
Used to turn a top level item into implicit positives when explicit positives
(+ items) are not found, but negatives are.
container-search/src/main/java/com/yahoo/prelude/query/parser/SimpleParser.java