package tc.oc.api.model;
import javax.annotation.Nullable;
import tc.oc.api.docs.virtual.Model;
@FunctionalInterface
public interface ModelHandler<T extends Model> {
/**
* Called when any instance of the model is created, modified, or deleted.
*
* @param before State before the change, or null if instance is being created
* @param after State after the change, or null if instance is being hard-deleted
* @param latest Most recent non-deleted state (equal to before on deletion, otherwise equal to after)
*/
void modelUpdated(@Nullable T before, @Nullable T after, T latest);
}