001    package ifs.model;
002    
003    /**
004     * IFS variable listener.
005     *
006     * @see Variable
007     *
008     * @author <a href="mailto:muller@ktiml.mff.cuni.cz">Tomáš Müller</a>
009     * @version 1.0
010     */
011    public interface VariableListener {
012        /** Called by the variable when a value is assigned to it
013         * @param iteration current iteration
014         * @param value assigned to the variable
015         */
016        public void variableAssigned(long iteration, Value value);
017    
018        /** Called by the variable when a value is unassigned from it
019         * @param iteration current iteration
020         * @param value unassigned from the variable
021         */
022        public void variableUnassigned(long iteration, Value value);
023    
024        /** Called by the variable when a value is permanently removed from its domain
025         * @param iteration current iteration
026         * @param value removed from the variable's domain
027         */
028        public void valueRemoved(long iteration, Value value);
029    }