/* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE 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() }); } }