package org.zstack.core.db; import org.springframework.transaction.support.TransactionSynchronization; import org.zstack.core.db.TransactionalCallback.Operation; public class TransactionSynchronizationSyncImpl implements TransactionSynchronization { private final Class<?>[] clazzs; private final TransactionalSyncCallback callback; private final Operation op; TransactionSynchronizationSyncImpl(TransactionalSyncCallback cb, Operation op, Class<?>...clazzs) { this.clazzs = clazzs; this.callback = cb; this.op = op; } @Override public void suspend() { callback.suspend(clazzs); } @Override public void resume() { callback.resume(clazzs); } @Override public void flush() { callback.flush(clazzs); } @Override public void beforeCommit(boolean readOnly) { callback.beforeCommit(op, readOnly, clazzs); } @Override public void beforeCompletion() { callback.beforeCompletion(op, clazzs); } @Override public void afterCommit() { callback.afterCommit(op, clazzs); } @Override public void afterCompletion(int status) { callback.afterCompletion(op, status, clazzs); } }