/* * 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; /** * Raised whenever a duplicate for a certain type occurs. Duplicate class, table, property name etc. * * @author Max Rydahl Andersen * @author Steve Ebersole */ public class DuplicateMappingException extends MappingException { /** * Enumeration of the types of things that can be duplicated. */ public static enum Type { /** * A duplicate entity definition was encountered. */ ENTITY( "entity" ), /** * A duplicate collection role was encountered */ COLLECTION( "collection" ), /** * A duplicate table definition was encountered. */ TABLE( "table" ), /** * A duplicate property/attribute definition was encountered. */ PROPERTY( "property" ), /** * A duplicate column definition was encountered. */ COLUMN( "column" ), /** * A duplicate column definition was encountered. */ COLUMN_BINDING( "column-binding" ), /** * A duplicate named entity graph was encountered */ NAMED_ENTITY_GRAPH( "NamedEntityGraph" ), /** * A duplicate named query (ql or native) was encountered */ QUERY( "query" ), /** * A duplicate ResultSetMapping was encountered */ RESULT_SET_MAPPING( "ResultSetMapping" ), /** * A duplicate NamedStoredProcedureQuery was encountered */ PROCEDURE( "NamedStoredProcedureQuery" ); private final String text; Type(String text) { this.text = text; } } private final String name; private final String type; /** * Creates a DuplicateMappingException using the given type and name. * * @param type The type of the duplicated thing. * @param name The name of the duplicated thing. */ public DuplicateMappingException(Type type, String name) { this( type.text, name ); } /** * Creates a DuplicateMappingException using the given type and name. * * @param type The type of the duplicated thing. * @param name The name of the duplicated thing. * * @deprecated Use the for taking {@link Type} instead. */ @Deprecated public DuplicateMappingException(String type, String name) { this( "Duplicate " + type + " mapping " + name, type, name ); } /** * Creates a DuplicateMappingException using the given customMessage, type and name. * * @param customMessage A custom exception message explaining the exception condition * @param type The type of the duplicated thing. * @param name The name of the duplicated thing. */ public DuplicateMappingException(String customMessage, Type type, String name) { this( customMessage, type.name(), name ); } /** * Creates a DuplicateMappingException using the given customMessage, type and name. * * @param customMessage A custom exception message explaining the exception condition * @param type The type of the duplicated thing. * @param name The name of the duplicated thing. * * @deprecated Use the for taking {@link Type} instead. */ @Deprecated public DuplicateMappingException(String customMessage, String type, String name) { super( customMessage ); this.type=type; this.name=name; } public String getType() { return type; } public String getName() { return name; } }