001/* 
002 * JKNIV, SQLegance keeping queries maintainable.
003 * 
004 * Copyright (C) 2017, the original author or authors.
005 *
006 * This library is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU Lesser General Public
008 * License as published by the Free Software Foundation; either
009 * version 2.1 of the License.
010 * 
011 * This library is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014 * Lesser General Public License for more details.
015 * 
016 * You should have received a copy of the GNU Lesser General Public
017 * License along with this library; if not, write to the Free Software Foundation, Inc., 
018 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
019 */
020package net.sf.jkniv.sqlegance.transaction;
021
022/**
023 * Represents the transaction type over EIS or database systems
024 * 
025 * @author Alisson Gomes
026 *
027 */
028public enum TransactionType
029{
030    /** JTA - Global transaction, delimit JTA transactions using UserTransaction interface, can span multiple databases and processes*/
031    GLOBAL,  
032    /** JDBC - Local transaction, delimit JDBC transactions using connection interface, are native to a single database, use non-XA data sources, and are restricted within a single process. */
033    LOCAL,
034    /** EJB - Means the transaction it's controlled by JEE <b>container-managed</b> or <b>bean-managed</b> transaction demarcation */
035    EJB;
036    
037    public static TransactionType get(String s)
038    {
039        TransactionType answer = TransactionType.LOCAL;
040        for(TransactionType type : TransactionType.values())
041        {
042            if (type.name().equalsIgnoreCase(s))
043                answer = type;
044        }
045        return answer;
046    }
047
048}