01: package com.completex.objective.components.persistency.core.adapter;
02:
03: import com.completex.objective.components.persistency.core.impl.PrimitiveDatabaseTransactionManagerImpl;
04: import com.completex.objective.components.persistency.transact.TransactionManager;
05: import com.completex.objective.components.persistency.transact.impl.AbstractTransactionManager;
06: import com.completex.objective.components.persistency.transact.impl.PrimitiveTransactionManagerImpl;
07: import com.completex.objective.components.cache.Cache;
08: import com.completex.objective.util.TypeUtil;
09:
10: /**
11: * @author Gennady Krizhevsky
12: */
13: public class JdbcPrimitiveTransactionManagerFactory extends
14: BaseTransactionManagerFactory {
15:
16: protected TransactionManager newConcreteTransactionManager(
17: AbstractTransactionManager coreTransactionManager) {
18: validateType(coreTransactionManager);
19: return new PrimitiveDatabaseTransactionManagerImpl(
20: ((PrimitiveTransactionManagerImpl) coreTransactionManager),
21: databasePolicy, logger);
22: }
23:
24: private void validateType(
25: AbstractTransactionManager coreTransactionManager) {
26: if (!(coreTransactionManager instanceof PrimitiveTransactionManagerImpl)) {
27: throw new IllegalArgumentException(
28: "coreTransactionManager is expected to be of "
29: + PrimitiveTransactionManagerImpl.class
30: + "type for JdbcPrimitiveTransactionManagerFactory");
31: }
32: }
33:
34: protected AbstractTransactionManager newCoreTransactionManager() {
35: Cache stmtCache = CoreTransactionManagerFactory
36: .prepareStatementCache(getStmtCacheSize());
37: Cache callCache = CoreTransactionManagerFactory
38: .prepareCallCache(getStmtCacheSize());
39: return new PrimitiveTransactionManagerImpl(stmtCache,
40: callCache, null, logger);
41: }
42:
43: protected void validateInit() {
44: TypeUtil.assertNotNull(databasePolicy, "DatabasePolicy");
45: }
46:
47: }
|