org.hibernate.envers.RevisionType.java Source code

Java tutorial

Introduction

Here is the source code for org.hibernate.envers.RevisionType.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.envers;

/**
 * Type of the revision.
 *
 * @author Adam Warski (adam at warski dot org)
 */
public enum RevisionType {
    /**
     * Indicates that the entity was added (persisted) at that revision.
     */
    ADD((byte) 0),
    /**
     * Indicates that the entity was modified (one or more of its fields) at that revision.
     */
    MOD((byte) 1),
    /**
     * Indicates that the entity was deleted (removed) at that revision.
     */
    DEL((byte) 2);

    private Byte representation;

    RevisionType(byte representation) {
        this.representation = representation;
    }

    public Byte getRepresentation() {
        return representation;
    }

    public static RevisionType fromRepresentation(Object representation) {
        if (representation == null || !(representation instanceof Byte)) {
            return null;
        }

        switch ((Byte) representation) {
        case 0: {
            return ADD;
        }
        case 1: {
            return MOD;
        }
        case 2: {
            return DEL;
        }
        default: {
            throw new IllegalArgumentException("Unknown representation: " + representation);
        }
        }
    }
}