KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ojb > otm > OTMKit


1 package org.apache.ojb.otm;
2
3 /* Copyright 2003-2005 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 import org.apache.ojb.broker.Identity;
19 import org.apache.ojb.broker.PBKey;
20 import org.apache.ojb.otm.copy.ObjectCopyStrategy;
21 import org.apache.ojb.otm.core.Transaction;
22 import org.apache.ojb.otm.lock.map.LockMap;
23 import org.apache.ojb.otm.lock.wait.LockWaitStrategy;
24 import org.apache.ojb.otm.swizzle.Swizzling;
25 import org.apache.ojb.otm.transaction.TransactionFactory;
26
27 /**
28  *
29  * OTMKit implementations provide the initial point of entry
30  * into the OTM layer.
31  *
32  * @author <a HREF="mailto:rraghuram@hotmail.com">Raghu Rajah</a>
33  *
34  */

35 public abstract class OTMKit implements Kit
36 {
37     /**
38      * Obtain an OTMConnection for the given persistence broker key
39      */

40     public OTMConnection acquireConnection(PBKey pbKey)
41     {
42         TransactionFactory txFactory = getTransactionFactory();
43         return txFactory.acquireConnection(pbKey);
44     }
45
46     /**
47      * Obtain the transaction which <code>conn</code> is currently
48      * bound to.
49      */

50     public Transaction getTransaction(OTMConnection conn)
51     {
52         TransactionFactory txFactory = getTransactionFactory();
53         Transaction tx = txFactory.getTransactionForConnection(conn);
54         tx.setKit(this);
55         return tx;
56     }
57
58     ////////////////////////////
59
// Abstract Methods
60
////////////////////////////
61

62     protected abstract TransactionFactory getTransactionFactory();
63
64     public abstract Swizzling getSwizzlingStrategy();
65
66     public abstract LockWaitStrategy getLockWaitStrategy();
67
68     public abstract LockMap getLockMap();
69
70     public abstract ObjectCopyStrategy getCopyStrategy(Identity oid);
71
72     /**
73      * Should OTM implicitely read lock all objects that are reachable
74      * from the explicitely locked object? The updates to the read locked
75      * objects are automatically stored to the database at the end
76      * of transaction.
77      **/

78     public abstract boolean isImplicitLockingUsed();
79
80     /**
81      * Should OTM verify each inserted object for presence in the database?
82      **/

83     public abstract boolean isInsertVerified();
84
85     /**
86      * Should OTM perform INSERTs for the given object eagerly or during commit?
87      **/

88     public abstract boolean isEagerInsert(Object JavaDoc obj);
89
90 }
91
Popular Tags