@Nullable FeatureUpdate toFeatureUpdate(FeatureController<MODEL> featureController, MODEL model) { final List<ViewItem> oldItems = featureItems.getItems(featureController); final List<ViewItem> newItems = featureController.buildItems(model); if (newItems == null) { return null; } validateNewViewItems(featureController, newItems); final DiffUtilCallbackImpl callback = new DiffUtilCallbackImpl(mapViewTypeToItemComparator, oldItems, newItems); final DiffResult diffResult = calculateDiff(callback, false); return new FeatureUpdate(featureController, newItems, diffResult); }