code: public SimpleDataModel<T> filter (Predicate<T> pred)
      {
  //        if (Predicates.alwaysTrue().equals(pred)) {
  //            return this; // optimization
  //        }
          List<T> items = new ArrayList<T>();
          for (T item : _items) {
              if (pred.apply(item)) {
                  items.add(item);
              }
          }
          return createFilteredModel(items);
      }
docs: Returns a data model that contains only items that match the supplied predicate.