package dbfit.util; public class DiffListenerAdapter implements DiffListener { private DiffHandler delegate; public static DiffListenerAdapter from(final DiffHandler handler) { return new DiffListenerAdapter(handler); } protected DiffListenerAdapter() {} public DiffListenerAdapter(final DiffHandler delegate) { setDiffHandler(delegate); } protected void setDiffHandler(final DiffHandler delegate) { this.delegate = delegate; } @Override @SuppressWarnings("unchecked") public void onEvent(final MatchResult res) { Class type = res.getType(); if (type.equals(DataCell.class)) { delegate.endCell((MatchResult<DataCell, DataCell>) res); } else if (type.equals(DataRow.class)) { delegate.endRow((MatchResult<DataRow, DataRow>) res); } else if (type.equals(DataTable.class)) { delegate.endTable((MatchResult<DataTable, DataTable>) res); } else { throw new IllegalArgumentException("Unknown type: " + res.getType()); } } }