package net.sourceforge.pmd.eclipse.ui.views;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
*
* @author Brian Remedios
*/
public class ChangeRecord<T extends Object> {
final List<T> additions = new ArrayList<T>();
final List<T> removals = new ArrayList<T>();
final List<T> changes = new ArrayList<T>();
public ChangeRecord() { }
public boolean hasAdditions() {
return !additions.isEmpty();
}
public boolean hasRemovals() {
return !removals.isEmpty();
}
public boolean hasChanges() {
return !changes.isEmpty();
}
public void added(T record) {
additions.add(record);
}
public void added(Collection<T> record) {
additions.addAll(record);
}
public void removed(T record) {
removals.add(record);
}
public void removed(Collection<T> record) {
removals.addAll(record);
}
public void changed(T record) {
changes.add(record);
}
public void changed(Collection<T> record) {
changes.addAll(record);
}
public void mergeWith(ChangeRecord<T> otherRecord) {
added(otherRecord.additions);
removed(otherRecord.removals);
changed(otherRecord.changes);
}
}