1 package cz.cuni.amis.utils.flag; 2 3 import java.io.Serializable; 4 5 /** 6 * Allows you to pass reasons of flag change along with new value of the flag. 7 * <p><p> 8 * Note that implementation must be {@link Serializable} 9 * 10 * @author ik 11 */ 12 public interface IReasonFlag<TYPE, REASON> extends IFlag<TYPE>, Serializable { 13 14 /** 15 * Changes the flag and informs all listeners. 16 * <p><p> 17 * Should not produce any dead-locks even though it is synchronized method. 18 * 19 * @param newValue 20 * @throws InterruptedRuntimeException if interrupted during the await on the freeze latch 21 */ 22 public void setFlag(TYPE newValue, REASON reasonForChange); 23 }