boolean hasListeners = hasListeners();
ListDiffEntry[] masterEntries = masterListDiff.getDifferences();
ListDiffEntry[] detailEntries = new ListDiffEntry[masterEntries.length];
for (int i = 0; i < masterEntries.length; i++) {
ListDiffEntry masterEntry = masterEntries[i];
int index = masterEntry.getPosition();
Object masterElement = masterEntry.getElement();
Object detailValue;
if (masterEntry.isAddition()) {
detailValue = addDetailObservable(masterElement, index);
} else {
detailValue = removeDetailObservable(masterElement, index);
}
if (hasListeners) {
// Create the corresponding diff for the detail list.
detailEntries[i] = Diffs.createListDiffEntry(index,
masterEntry.isAddition(), detailValue);
}
}
if (hasListeners) {
if (!wasStale && isStale()) {