All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.magicwerk.brownies.jdom.JdomException Maven / Gradle / Ivy

/*
 * Copyright 2010 by Thomas Mauch
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * $Id$
 */
package org.magicwerk.brownies.jdom;

import org.jdom2.Attribute;
import org.jdom2.Element;

/**
 * A runtime exception of type JdomException is thrown
 * is some internal JDOM processing fails.
 *
 * @author Thomas Mauch
 * @version $Id$
 */
@SuppressWarnings("serial")
public class JdomException extends RuntimeException {
	/** XML node causing the error */
	private Object node;

	// Note: the Javadocs are copied from RuntimeException

    /**
     * Constructs a new JDOM exception with null as its
     * detail message. The cause is not initialized, and may subsequently be
     * initialized by a call to {@link #initCause}.
     */
	public JdomException() {
	}

    /**
     * Constructs a new JDOM exception with the specified detail message.
     * The cause is not initialized, and may subsequently be initialized by a
     * call to {@link #initCause}.
     *
     * @param   message   the detail message. The detail message is saved for
     *          later retrieval by the {@link #getMessage()} method.
     */
	public JdomException(String message) {
		super(message);
	}

    /**
     * Constructs a new JDOM exception with the specified detail message.
     * The cause is not initialized, and may subsequently be initialized by a
     * call to {@link #initCause}.
     *
     * @param   message   the detail message. The detail message is saved for
     *          later retrieval by the {@link #getMessage()} method.
     * @param	node	  XML node causing the error
     */
	public JdomException(String message, Object node) {
		super(message);

		this.node = node;
	}


    /**
     * Constructs a new JDOM exception with the specified cause and a
     * detail message of (cause==null ? null : cause.toString())
     * (which typically contains the class and detail message of
     * cause).  This constructor is useful for runtime exceptions
     * that are little more than wrappers for other throwables.
     *
     * @param  cause the cause (which is saved for later retrieval by the
     *         {@link #getCause()} method).  (A null value is
     *         permitted, and indicates that the cause is nonexistent or
     *         unknown.)
     */
	public JdomException(Throwable cause) {
		super(cause);
	}

    /**
     * Constructs a new JDOM exception with the specified detail message and
     * cause.  

Note that the detail message associated with * cause is not automatically incorporated in * this runtime exception's detail message. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) */ public JdomException(String message, Throwable cause) { super(message, cause); } @Override public String getMessage() { if (node == null) { return super.getMessage(); } StringBuilder buf = new StringBuilder(); buf.append(super.getMessage()); buf.append(" ("); if (node instanceof Element) { buf.append(JdomTools.print((Element) node)); } else if (node instanceof Attribute) { buf.append(JdomTools.print((Attribute) node)); } buf.append(")"); return buf.toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy