*/
package org.opendaylight.controller.cluster.datastore;
-import com.google.common.collect.Lists;
+import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier;
import scala.concurrent.Future;
abstract class AbstractTransactionContext implements TransactionContext {
- protected final TransactionIdentifier identifier;
- protected final List<Future<Object>> recordedOperationFutures = Lists.newArrayList();
+ private final List<Future<Object>> recordedOperationFutures = new ArrayList<>();
+ private final TransactionIdentifier identifier;
- AbstractTransactionContext(TransactionIdentifier identifier) {
+ protected AbstractTransactionContext(TransactionIdentifier identifier) {
this.identifier = identifier;
}
@Override
- public List<Future<Object>> getRecordedOperationFutures() {
- return recordedOperationFutures;
+ public final void copyRecordedOperationFutures(Collection<Future<Object>> target) {
+ target.addAll(recordedOperationFutures);
}
-}
\ No newline at end of file
+
+ protected final TransactionIdentifier getIdentifier() {
+ return identifier;
+ }
+
+ protected final Collection<Future<Object>> copyRecordedOperationFutures() {
+ return ImmutableList.copyOf(recordedOperationFutures);
+ }
+
+ protected final int recordedOperationCount() {
+ return recordedOperationFutures.size();
+ }
+
+ protected final void recordOperationFuture(Future<Object> future) {
+ recordedOperationFutures.add(future);
+ }
+}