/*
 * Differ.java
 *
 * Created on May 24, 2006, 2:49 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package usda.weru.util.diff;

/**
 *
 * @author Joseph Levin
 */
public interface Differ {

	/**
	 *
	 */
	public static int DIFF_UNKNOWN = 512;

	/**
	 *
	 */
	public static int DIFF_ERROR = 1024;

	/**
	 *
	 */
	public static int DIFF_SAME = 1;

	/**
	 *
	 */
	public static int DIFF_CHANGED = 2;

	/**
	 *
	 */
	public static int DIFF_ADDED = 4;

	/**
	 *
	 */
	public static int DIFF_REMOVED = 8;
    
    //These are extensions of DIFF_CHANGED and should always be return with the chaneged flag.
    //These are intended for numerical diffs

	/**
	 *
	 */        
	    public static int DIFF_INCREASED = 16 + DIFF_CHANGED;

	/**
	 *
	 */
	public static int DIFF_DECREASED = 32 + DIFF_CHANGED;

	/**
	 *
	 * @param a
	 * @param b
	 * @return
	 * @throws IncomparableObjectsException
	 */
	public int diff(Object a, Object b) throws IncomparableObjectsException;        
}

