aoqi@0: /* aoqi@0: * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. aoqi@0: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. aoqi@0: * aoqi@0: * This code is free software; you can redistribute it and/or modify it aoqi@0: * under the terms of the GNU General Public License version 2 only, as aoqi@0: * published by the Free Software Foundation. Oracle designates this aoqi@0: * particular file as subject to the "Classpath" exception as provided aoqi@0: * by Oracle in the LICENSE file that accompanied this code. aoqi@0: * aoqi@0: * This code is distributed in the hope that it will be useful, but WITHOUT aoqi@0: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or aoqi@0: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License aoqi@0: * version 2 for more details (a copy is included in the LICENSE file that aoqi@0: * accompanied this code). aoqi@0: * aoqi@0: * You should have received a copy of the GNU General Public License version aoqi@0: * 2 along with this work; if not, write to the Free Software Foundation, aoqi@0: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. aoqi@0: * aoqi@0: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA aoqi@0: * or visit www.oracle.com if you need additional information or have any aoqi@0: * questions. aoqi@0: */ aoqi@0: aoqi@0: package javax.xml.bind.helpers; aoqi@0: aoqi@0: import java.text.MessageFormat; aoqi@0: aoqi@0: import javax.xml.bind.ValidationEvent; aoqi@0: import javax.xml.bind.ValidationEventLocator; aoqi@0: aoqi@0: /** aoqi@0: * Default implementation of the ValidationEvent interface. aoqi@0: * aoqi@0: *

aoqi@0: * JAXB providers are allowed to use whatever class that implements aoqi@0: * the ValidationEvent interface. This class is just provided for a aoqi@0: * convenience. aoqi@0: * aoqi@0: * @author

aoqi@0: * @see javax.xml.bind.Validator aoqi@0: * @see javax.xml.bind.ValidationEventHandler aoqi@0: * @see javax.xml.bind.ValidationEvent aoqi@0: * @see javax.xml.bind.ValidationEventLocator aoqi@0: * @since JAXB1.0 aoqi@0: */ aoqi@0: public class ValidationEventImpl implements ValidationEvent aoqi@0: { aoqi@0: aoqi@0: /** aoqi@0: * Create a new ValidationEventImpl. aoqi@0: * aoqi@0: * @param _severity The severity value for this event. Must be one of aoqi@0: * ValidationEvent.WARNING, ValidationEvent.ERROR, or aoqi@0: * ValidationEvent.FATAL_ERROR aoqi@0: * @param _message The text message for this event - may be null. aoqi@0: * @param _locator The locator object for this event - may be null. aoqi@0: * @throws IllegalArgumentException if an illegal severity field is supplied aoqi@0: */ aoqi@0: public ValidationEventImpl( int _severity, String _message, aoqi@0: ValidationEventLocator _locator ) { aoqi@0: aoqi@0: this(_severity,_message,_locator,null); aoqi@0: } aoqi@0: aoqi@0: /** aoqi@0: * Create a new ValidationEventImpl. aoqi@0: * aoqi@0: * @param _severity The severity value for this event. Must be one of aoqi@0: * ValidationEvent.WARNING, ValidationEvent.ERROR, or aoqi@0: * ValidationEvent.FATAL_ERROR aoqi@0: * @param _message The text message for this event - may be null. aoqi@0: * @param _locator The locator object for this event - may be null. aoqi@0: * @param _linkedException An optional linked exception that may provide aoqi@0: * additional information about the event - may be null. aoqi@0: * @throws IllegalArgumentException if an illegal severity field is supplied aoqi@0: */ aoqi@0: public ValidationEventImpl( int _severity, String _message, aoqi@0: ValidationEventLocator _locator, aoqi@0: Throwable _linkedException ) { aoqi@0: aoqi@0: setSeverity( _severity ); aoqi@0: this.message = _message; aoqi@0: this.locator = _locator; aoqi@0: this.linkedException = _linkedException; aoqi@0: } aoqi@0: aoqi@0: private int severity; aoqi@0: private String message; aoqi@0: private Throwable linkedException; aoqi@0: private ValidationEventLocator locator; aoqi@0: aoqi@0: public int getSeverity() { aoqi@0: return severity; aoqi@0: } aoqi@0: aoqi@0: aoqi@0: /** aoqi@0: * Set the severity field of this event. aoqi@0: * aoqi@0: * @param _severity Must be one of ValidationEvent.WARNING, aoqi@0: * ValidationEvent.ERROR, or ValidationEvent.FATAL_ERROR. aoqi@0: * @throws IllegalArgumentException if an illegal severity field is supplied aoqi@0: */ aoqi@0: public void setSeverity( int _severity ) { aoqi@0: aoqi@0: if( _severity != ValidationEvent.WARNING && aoqi@0: _severity != ValidationEvent.ERROR && aoqi@0: _severity != ValidationEvent.FATAL_ERROR ) { aoqi@0: throw new IllegalArgumentException( aoqi@0: Messages.format( Messages.ILLEGAL_SEVERITY ) ); aoqi@0: } aoqi@0: aoqi@0: this.severity = _severity; aoqi@0: } aoqi@0: aoqi@0: public String getMessage() { aoqi@0: return message; aoqi@0: } aoqi@0: /** aoqi@0: * Set the message field of this event. aoqi@0: * aoqi@0: * @param _message String message - may be null. aoqi@0: */ aoqi@0: public void setMessage( String _message ) { aoqi@0: this.message = _message; aoqi@0: } aoqi@0: aoqi@0: public Throwable getLinkedException() { aoqi@0: return linkedException; aoqi@0: } aoqi@0: /** aoqi@0: * Set the linked exception field of this event. aoqi@0: * aoqi@0: * @param _linkedException Optional linked exception - may be null. aoqi@0: */ aoqi@0: public void setLinkedException( Throwable _linkedException ) { aoqi@0: this.linkedException = _linkedException; aoqi@0: } aoqi@0: aoqi@0: public ValidationEventLocator getLocator() { aoqi@0: return locator; aoqi@0: } aoqi@0: /** aoqi@0: * Set the locator object for this event. aoqi@0: * aoqi@0: * @param _locator The locator - may be null. aoqi@0: */ aoqi@0: public void setLocator( ValidationEventLocator _locator ) { aoqi@0: this.locator = _locator; aoqi@0: } aoqi@0: aoqi@0: /** aoqi@0: * Returns a string representation of this object in a format aoqi@0: * helpful to debugging. aoqi@0: * aoqi@0: * @see Object#equals(Object) aoqi@0: */ aoqi@0: public String toString() { aoqi@0: String s; aoqi@0: switch(getSeverity()) { aoqi@0: case WARNING: s="WARNING";break; aoqi@0: case ERROR: s="ERROR";break; aoqi@0: case FATAL_ERROR: s="FATAL_ERROR";break; aoqi@0: default: s=String.valueOf(getSeverity());break; aoqi@0: } aoqi@0: return MessageFormat.format("[severity={0},message={1},locator={2}]", aoqi@0: new Object[]{ aoqi@0: s, aoqi@0: getMessage(), aoqi@0: getLocator() aoqi@0: }); aoqi@0: } aoqi@0: }