/* * 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 java.util.Locale; /** * Defines the representation modes available for entities. * * @author Steve Ebersole */ public enum EntityMode { /** * The {@code pojo} entity mode describes an entity model made up of entity classes (loosely) following * the java bean convention. */ POJO( "pojo" ), /** * The {@code dynamic-map} entity mode describes an entity model defined using {@link java.util.Map} references. */ MAP( "dynamic-map" ); private final String externalName; private EntityMode(String externalName) { this.externalName = externalName; } public String getExternalName() { return externalName; } @Override public String toString() { return externalName; } /** * Legacy-style entity-mode name parsing. <b>Case insensitive</b> * * @param entityMode The entity mode name to evaluate * * @return The appropriate entity mode; {@code null} for incoming {@code entityMode} param is treated by returning * {@link #POJO}. */ public static EntityMode parse(String entityMode) { if ( entityMode == null ) { return POJO; } if ( MAP.externalName.equalsIgnoreCase( entityMode ) ) { return MAP; } return valueOf( entityMode.toUpperCase( Locale.ENGLISH ) ); } }