/* * 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; /** * Defines precedence of null values within {@code ORDER BY} clause. * * @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com) */ public enum NullPrecedence { /** * Null precedence not specified. Relies on the RDBMS implementation. */ NONE, /** * Null values appear at the beginning of the sorted collection. */ FIRST, /** * Null values appear at the end of the sorted collection. */ LAST; /** * Interprets a string representation of a NullPrecedence, returning {@code null} by default. For * alternative default handling, see {@link #parse(String, NullPrecedence)} * * @param name The String representation to interpret * * @return The recognized NullPrecedence, or {@code null} */ public static NullPrecedence parse(String name) { if ( "none".equalsIgnoreCase( name ) ) { return NullPrecedence.NONE; } else if ( "first".equalsIgnoreCase( name ) ) { return NullPrecedence.FIRST; } else if ( "last".equalsIgnoreCase( name ) ) { return NullPrecedence.LAST; } return null; } /** * Interprets a string representation of a NullPrecedence, returning the specified default if not recognized. * * @param name The String representation to interpret * @param defaultValue The default value to use * * @return The recognized NullPrecedence, or {@code defaultValue}. */ public static NullPrecedence parse(String name, NullPrecedence defaultValue) { final NullPrecedence value = parse( name ); return value != null ? value : defaultValue; } }