/** * Fires a model update if the old and new values are different. * @param oldValue original value to be compared * @param newValue new value to compare against * @param <T> A varargs list of enumerated {@link ModelUpdate} types. */ public <T extends Enum<T> & ModelUpdate> void modelUpdated( Object oldValue, Object newValue, T... changed) { if (!Objects.equal(oldValue, newValue)) { modelUpdated(changed); } }