2
* HA-JDBC: High-Availability JDBC
3
* Copyright (c) 2004-2007 Paul Ferraro
5
* This library is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU Lesser General Public License as published by the
7
* Free Software Foundation; either version 2.1 of the License, or (at your
8
* option) any later version.
10
* This library is distributed in the hope that it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with this library; if not, write to the Free Software Foundation,
17
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
* Contact: ferraro@users.sourceforge.net
21
package net.sf.hajdbc.sql;
23
import java.util.concurrent.ExecutorService;
25
import net.sf.hajdbc.util.Enums;
26
import net.sf.hajdbc.util.concurrent.SynchronousExecutor;
29
* @author Paul Ferraro
32
public enum TransactionMode
34
PARALLEL(null), SERIAL(new SynchronousExecutor());
36
private final ExecutorService executor;
38
private TransactionMode(ExecutorService executor)
40
this.executor = executor;
44
* Used by JiBX to unmarshal a transaction mode
45
* @param value transaction mode
46
* @return transaction mode enum
48
public static TransactionMode deserialize(String value)
50
return Enums.valueOf(TransactionMode.class, value);
54
* Used by JiBX to marshal a transaction mode
55
* @param mode transaction mode enum
56
* @return transaction mode
58
public static String serialize(TransactionMode mode)
60
return Enums.id(mode);
63
public ExecutorService getTransactionExecutor(ExecutorService executor)
65
return (this.executor != null) ? this.executor : executor;