+ ActorRef transactionActor = createTypedTransactionActor(createTransaction);
+ getSender().tell(new CreateTransactionReply(transactionActor.path().toString(),
+ createTransaction.getTransactionId()).toSerializable(), getSelf());
+ }
+
+ public static Props props(ShardDataTreeTransactionChain chain, SchemaContext schemaContext,
+ DatastoreContext datastoreContext, ShardStats shardStats) {
+ return Props.create(new ShardTransactionChainCreator(chain, datastoreContext, shardStats));
+ }
+
+ private static class ShardTransactionChainCreator implements Creator<ShardTransactionChain> {
+ private static final long serialVersionUID = 1L;
+
+ final ShardDataTreeTransactionChain chain;
+ final DatastoreContext datastoreContext;
+ final ShardStats shardStats;
+
+ ShardTransactionChainCreator(ShardDataTreeTransactionChain chain, DatastoreContext datastoreContext,
+ ShardStats shardStats) {
+ this.chain = chain;
+ this.datastoreContext = datastoreContext;
+ this.shardStats = shardStats;
+ }
+
+ @Override
+ public ShardTransactionChain create() throws Exception {
+ return new ShardTransactionChain(chain, datastoreContext, shardStats);
+ }
+ }