code: @SuppressWarnings("unchecked")
      public Pair<Item, Integer> getItemById(final long identifier) {
          if (identifier == -1) {
              return null;
          }
          Triple result = recursive(new AdapterPredicate() {
              @Override
              public boolean apply(@NonNull IAdapter lastParentAdapter, int lastParentPosition, @NonNull IItem item, int position) {
                  return item.getIdentifier() == identifier;
              }
          }, true);
          if (result.second == null) {
              return null;
          } else {
              return new Pair(result.second, result.third);
          }
      }
docs: gets the IItem given an identifier, from all registered adapters
  
  @param identifier the identifier of the searched item
  @return the found Pair&lt;IItem, Integer&gt; (the found item, and it's global position if it is currently displayed) or null