1 /* 2 * Copyright (c) 2019 Helmut Neemann. 3 * Use of this source code is governed by the GPL v3 license 4 * that can be found in the LICENSE file. 5 */ 6 package de.neemann.digital.undo; 7 8 /** 9 * Abstraction of a modification done on a object. 10 * Make sure that EVERY modification is done via this interface! 11 * 12 * @param <A> the type of the object to modify 13 */ 14 public interface Modification<A> { 15 16 /** 17 * Modifies the object 18 * 19 * @param a the object to modify 20 * @throws ModifyException ModifyException 21 */ modify(A a)22 void modify(A a) throws ModifyException; 23 } 24