1 package com.atlassian.sal.api.rdbms;
2
3 import com.atlassian.annotations.PublicApi;
4
5 /**
6 * Provided by the host application for creating {@link com.atlassian.sal.api.rdbms.TransactionalExecutor}.
7 * <p/>
8 * Note that the TransactionalExecutors created are not considered thread safe.
9 *
10 * @since 3.0
11 */
12 @PublicApi
13 public interface TransactionalExecutorFactory
14 {
15 /**
16 * Create a transactional executor with <code>readOnly</code> set and <code>requiresNew</code> not set
17 */
18 TransactionalExecutor createExecutor();
19
20 /**
21 * Create a transactional executor
22 *
23 * @param readOnly initial value for <code>readOnly</code>
24 * @param requiresNew initial value for <code>requiresNew</code>
25 */
26 TransactionalExecutor createExecutor(boolean readOnly, boolean requiresNew);
27 }