org.hibernate.NullPrecedence.java Source code

Java tutorial

Introduction

Here is the source code for org.hibernate.NullPrecedence.java

Source

/*
 * 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;
    }
}