/*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.xml.bind.helpers;
import java.text.MessageFormat;
import javax.xml.bind.ValidationEvent;
import javax.xml.bind.ValidationEventLocator;
/**
* Default implementation of the ValidationEvent interface.
*
* <p>
* JAXB providers are allowed to use whatever class that implements
* the ValidationEvent interface. This class is just provided for a
* convenience.
*
* @author <ul><li>Kohsuke Kawaguchi, Sun Microsystems, Inc.</li></ul>
* @see javax.xml.bind.Validator
* @see javax.xml.bind.ValidationEventHandler
* @see javax.xml.bind.ValidationEvent
* @see javax.xml.bind.ValidationEventLocator
* @since JAXB1.0
*/
public class ValidationEventImpl implements ValidationEvent
{
/**
* Create a new ValidationEventImpl.
*
* @param _severity The severity value for this event. Must be one of
* ValidationEvent.WARNING, ValidationEvent.ERROR, or
* ValidationEvent.FATAL_ERROR
* @param _message The text message for this event - may be null.
* @param _locator The locator object for this event - may be null.
* @throws IllegalArgumentException if an illegal severity field is supplied
*/
public ValidationEventImpl( int _severity, String _message,
ValidationEventLocator _locator ) {
this(_severity,_message,_locator,null);
}
/**
* Create a new ValidationEventImpl.
*
* @param _severity The severity value for this event. Must be one of
* ValidationEvent.WARNING, ValidationEvent.ERROR, or
* ValidationEvent.FATAL_ERROR
* @param _message The text message for this event - may be null.
* @param _locator The locator object for this event - may be null.
* @param _linkedException An optional linked exception that may provide
* additional information about the event - may be null.
* @throws IllegalArgumentException if an illegal severity field is supplied
*/
public ValidationEventImpl( int _severity, String _message,
ValidationEventLocator _locator,
Throwable _linkedException ) {
setSeverity( _severity );
this.message = _message;
this.locator = _locator;
this.linkedException = _linkedException;
}
private int severity;
private String message;
private Throwable linkedException;
private ValidationEventLocator locator;
public int getSeverity() {
return severity;
}
/**
* Set the severity field of this event.
*
* @param _severity Must be one of ValidationEvent.WARNING,
* ValidationEvent.ERROR, or ValidationEvent.FATAL_ERROR.
* @throws IllegalArgumentException if an illegal severity field is supplied
*/
public void setSeverity( int _severity ) {
if( _severity != ValidationEvent.WARNING &&
_severity != ValidationEvent.ERROR &&
_severity != ValidationEvent.FATAL_ERROR ) {
throw new IllegalArgumentException(
Messages.format( Messages.ILLEGAL_SEVERITY ) );
}
this.severity = _severity;
}
public String getMessage() {
return message;
}
/**
* Set the message field of this event.
*
* @param _message String message - may be null.
*/
public void setMessage( String _message ) {
this.message = _message;
}
public Throwable getLinkedException() {
return linkedException;
}
/**
* Set the linked exception field of this event.
*
* @param _linkedException Optional linked exception - may be null.
*/
public void setLinkedException( Throwable _linkedException ) {
this.linkedException = _linkedException;
}
public ValidationEventLocator getLocator() {
return locator;
}
/**
* Set the locator object for this event.
*
* @param _locator The locator - may be null.
*/
public void setLocator( ValidationEventLocator _locator ) {
this.locator = _locator;
}
/**
* Returns a string representation of this object in a format
* helpful to debugging.
*
* @see Object#equals(Object)
*/
public String toString() {
String s;
switch(getSeverity()) {
case WARNING: s="WARNING";break;
case ERROR: s="ERROR";break;
case FATAL_ERROR: s="FATAL_ERROR";break;
default: s=String.valueOf(getSeverity());break;
}
return MessageFormat.format("[severity={0},message={1},locator={2}]",
new Object[]{
s,
getMessage(),
getLocator()
});
}
}
|