/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate; import org.hibernate.boot.jaxb.Origin; import org.hibernate.internal.util.xml.XmlDocument; /** * Thrown when a mapping is found to be invalid. * * Similar to MappingException, but this contains more info about the path and type of * mapping (e.g. file, resource or url) * * @author Max Rydahl Andersen * @author Steve Ebersole */ public class InvalidMappingException extends MappingException { private final String path; private final String type; /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param type The type of invalid mapping document * @param path The path (type specific) of the invalid mapping document * @param cause The underlying cause */ public InvalidMappingException(String customMessage, String type, String path, Throwable cause) { super( customMessage, cause ); this.type = type; this.path = path; } /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param type The type of invalid mapping document * @param path The path (type specific) of the invalid mapping document */ public InvalidMappingException(String customMessage, String type, String path) { super( customMessage ); this.type=type; this.path=path; } /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param xmlDocument The document that was invalid * @param cause The underlying cause */ public InvalidMappingException(String customMessage, XmlDocument xmlDocument, Throwable cause) { this( customMessage, xmlDocument.getOrigin().getType(), xmlDocument.getOrigin().getName(), cause ); } /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param xmlDocument The document that was invalid */ public InvalidMappingException(String customMessage, XmlDocument xmlDocument) { this( customMessage, xmlDocument.getOrigin().getType(), xmlDocument.getOrigin().getName() ); } /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param origin The origin of the invalid mapping document */ public InvalidMappingException(String customMessage, Origin origin) { this( customMessage, origin.getType().getLegacyTypeText(), origin.getName() ); } /** * Constructs an InvalidMappingException using the given information and a standard message. * * @param type The type of invalid mapping document * @param path The path (type specific) of the invalid mapping document */ public InvalidMappingException(String type, String path) { this( "Could not parse mapping document from " + type + (path==null?"":" " + path), type, path ); } /** * Constructs an InvalidMappingException using the given information and a standard message. * * @param type The type of invalid mapping document * @param path The path (type specific) of the invalid mapping document * @param cause The underlying cause */ public InvalidMappingException(String type, String path, Throwable cause) { this( "Could not parse mapping document from " + type + (path==null?"":" " + path), type, path, cause ); } /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param origin The origin of the invalid mapping document * @param cause The underlying cause */ public InvalidMappingException(String customMessage, org.hibernate.internal.util.xml.Origin origin, Exception cause) { this( customMessage, origin.getType(), origin.getName(), cause ); } /** * Constructs an InvalidMappingException using the given information. * * @param customMessage The custom message explaining the exception condition * @param origin The origin of the invalid mapping document */ public InvalidMappingException(String customMessage, org.hibernate.internal.util.xml.Origin origin) { this( customMessage, origin, null ); } public String getType() { return type; } public String getPath() { return path; } }