org.jdesktop.beansbinding.Validator Maven / Gradle / Ivy
Show all versions of swixml Show documentation
/*
* Copyright (C) 2007 Sun Microsystems, Inc. All rights reserved. Use is
* subject to license terms.
*/
package org.jdesktop.beansbinding;
/**
* {@code Validator} is responsible for validating the value from the target of
* a {@code Binding}.
*
* @param the type of value that this validator can validate
*
* @author Shannon Hickey
*/
public abstract class Validator {
/**
* An instance of {@code Result} is returned from a {@code Validator's}
* {@code validate} method to indicate an invalid value.
*
* A {@code Result} can contain an error code and/or description.
* These values are for your own reporting purposes and are not used
* internally.
*/
public class Result {
private final Object errorCode;
private final String description;
/**
* Creates a {@code Result} with the given error code and description.
*
* @param errorCode an error code for this {@code Result}, may be {@code null}
* @param description a textual description of the {@code Result}, may be {@code null}
*/
public Result(Object errorCode, String description) {
this.description = description;
this.errorCode = errorCode;
}
/**
* Returns the error code for the result, which may be {@code null}.
*
* @return the error code
*/
public Object getErrorCode() {
return errorCode;
}
/**
* Returns a description of the validation result, which may be {@code null}.
*
* @return the description
*/
public String getDescription() {
return description;
}
/**
* Returns a string representation of the {@code Result}. This
* method is intended to be used for debugging purposes only, and
* the content and format of the returned string may vary between
* implementations. The returned string may be empty but may not
* be {@code null}.
*
* @return a string representation of this {@code Result}
*/
public String toString() {
return getClass().getName() +
" [" +
"errorCode=" + errorCode +
", description=" + description +
"]";
}
}
/**
* Validates a value; returns {@code null} for a valid value, and a
* {@code Result} object describing the problem for an invalid value.
*
* @param value the value to validate, may be {@code null}
* @return {@code null} for a valid value or a {@code Result}
* describing the problem for an invalid value
*/
public abstract Result validate(T value);
}