    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    }