01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package com.tc.object.tx.optimistic;
05:
06: import com.tc.object.TCObject;
07:
08: import java.util.Map;
09:
10: /**
11: * Transaction manager, just one in a client VM. Manages transactions per thread. Nested transactions
12: * are not supported.
13: */
14: public interface OptimisticTransactionManager {
15:
16: /**
17: * Begin a transaction for the current thread.
18: */
19: public void begin();
20:
21: /**
22: * Indicate an object field change in the transaction
23: * @param clone The object wrapper
24: * @param className Class
25: * @param fieldName Field
26: * @param newValue New field value
27: * @param index Index if newValue is an array
28: */
29: public void objectFieldChanged(TCObject clone, String classname,
30: String fieldname, Object newValue, int index);
31:
32: /**
33: * Indicate a logical invocation in the transaction
34: * @param clone The object wrapper
35: * @param method The method, as defined in {@link com.tc.object.SerializationUtil}
36: * @param methodName Method
37: * @param parameters Parameter values
38: */
39: public void logicalInvoke(TCObject clone, int method,
40: String methodName, Object[] parameters);
41:
42: /**
43: * Commit the transaction for the current thread.
44: * @throws ClassNotFoundException If class not found while faulting in object
45: */
46: public void commit() throws ClassNotFoundException;
47:
48: /**
49: * Rollback the transaction in the current thread.
50: */
51: public void rollback();
52:
53: /**
54: * Add a map of original->cloned objects to the transactions
55: * @param cloned, original->clone
56: */
57: public void addClonesToTransaction(Map cloned);
58:
59: /**
60: * Convert to an ObjectID or literal value
61: * @param clone The object
62: * @return ObjectID or literal value for this object
63: */
64: public Object convertToParameter(Object clone);
65:
66: }
|