package dbfit.diff;
import dbfit.util.DataCell;
import dbfit.util.MatchResult;
import static dbfit.util.MatchStatus.*;
public class DataCellDiff extends DiffBase<DataCell, DataCell> {
@Override
protected Class getType() {
return DataCell.class;
}
@Override
protected DiffRunner getDiffRunner(MatchResult<DataCell, DataCell> request) {
return new DataCellDiffRunner(request);
}
class DataCellDiffRunner extends DiffRunner {
public DataCellDiffRunner(MatchResult<DataCell, DataCell> request) {
super(request);
}
@Override
protected void uncheckedDiff() {
if ((obj1 == null) && (obj2 == null)) {
throw new IllegalArgumentException("Can't diff two null cells");
} else if (obj1 == null) {
result.setStatus(SURPLUS);
} else if (obj2 == null) {
result.setStatus(MISSING);
} else if (!obj1.equalTo(obj2)) {
result.setStatus(WRONG);
} else {
result.setStatus(SUCCESS);
}
}
}
}