package org.eclipse.dltk.ui; /** * Interface used to provide specific compare information for custom elements. */ public interface IModelCompareProvider { /** * Used in compare, category functions. */ public static final class CompareResult { int result; public CompareResult(int result) { this.result = result; } } public static final CompareResult GREATER = new CompareResult(1); public static final CompareResult LESS = new CompareResult(-1); public static final CompareResult EQUALS = new CompareResult(0); /** * Return category for specified element. * * @see IModelCompareCategories for category constants. * * @return One of {@link IModelCompareCategories} in {@link CompareResult} * Return null if comparison of element are not supported. */ Integer category(Object element); /** * Compare two elements. * * Return null if comparison of elements are not supported. */ CompareResult compare(Object element1, Object element2, int cat1, int cat2); }