Bug 118429 [DataBinding] Validation should use IStatus, not just Strings
In order to use data binding in Workbench or IDE dialogs and preference pages, we need validation in terms of IStatus objects. Using strings is too simplistic. For example, look at the wizard for creating a new class. You will get a warning if the class name does not start with an uppercase letter, or if you don't provide a package name, but you will still be able to click "Finish" to proceed anyway. (Note that IStatus is currently not on the classpath, we need to re-introduce the dependency on org.eclipse.equinox.common, which contains IStatus etc.)
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/ValidationError.java
public final String message;
	
	/**
	 * The exception that caused the error (if any).  Note that this
	 * field should not be used for user errors, but only when the program
	 * has detected a failure and needs to capture and retain the 
	 * call stack for the programmer to evaluate later.
	 */
	public final Throwable exception;
	
	/**
	 * A convenience factory for {@link #ERROR} ValidationErrors.
	 * 
	 * @param message The error message
	 * @return A new ValidationError representing the error
	 */
	public static ValidationError error(String message) {
		return new ValidationError(ERROR, message, null);
	}
	
	/**
	 * A convenience factory for {@link #ERROR} ValidationErrors caused
	 * by a program malfunction.
	 * 
	 * @param message The error message
	 * @param exception The exception representing the malfunction
	 * @return A new ValidationError representing the error
	 */
	public static ValidationError error(String message, Throwable exception) {
		return new ValidationError(ERROR, message, exception);