public AugmentWithLocalStateExpandCursor(
     StoreReadLayer store,
     ReadableTxState state,
     Cursor inputCursor,
     NeoRegister.Node.In nodeId,
     Register.Object.In<int[]> relTypes,
     Register.Object.In<Direction> expandDirection,
     NeoRegister.Relationship.Out relId,
     NeoRegister.RelType.Out relType,
     Register.Object.Out<Direction> direction,
     NeoRegister.Node.Out startNodeId,
     NeoRegister.Node.Out neighborNodeId) {
   this.txState = state;
   this.inputCursor = inputCursor;
   this.nodeId = nodeId;
   this.relTypes = relTypes;
   this.expandDirection = expandDirection;
   this.relId = relId;
   this.relType = relType;
   this.direction = direction;
   this.startNodeId = startNodeId;
   this.neighborNodeId = neighborNodeId;
   this.storeCursor =
       store.expand(
           storeInputCursor,
           nodeId,
           relTypes,
           expandDirection,
           relIdFromStore,
           relType,
           direction,
           startNodeId,
           neighborNodeId);
 }
 @Override
 public Cursor expand(
     KernelStatement statement,
     Cursor inputCursor,
     NeoRegister.Node.In nodeId,
     Register.Object.In<int[]> types,
     Register.Object.In<Direction> expandDirection,
     NeoRegister.Relationship.Out relId,
     NeoRegister.RelType.Out relType,
     Register.Object.Out<Direction> direction,
     NeoRegister.Node.Out startNodeId,
     NeoRegister.Node.Out neighborNodeId) {
   if (statement.hasTxStateWithChanges()) {
     return new AugmentWithLocalStateExpandCursor(
         storeLayer,
         statement.txState(),
         inputCursor,
         nodeId,
         types,
         expandDirection,
         relId,
         relType,
         direction,
         startNodeId,
         neighborNodeId);
   }
   return storeLayer.expand(
       inputCursor,
       nodeId,
       types,
       expandDirection,
       relId,
       relType,
       direction,
       startNodeId,
       neighborNodeId);
 }