protected AbstractIndexModificationOperationCallback(DatasetId datasetId, int[] primaryKeyFields,
ITransactionContext txnCtx, ILockManager lockManager, ITransactionSubsystem txnSubsystem, long resourceId,
int resourcePartition, byte resourceType, Operation indexOp) {
super(datasetId, resourceId, primaryKeyFields, txnCtx, lockManager);
this.resourceType = resourceType;
this.indexOp = indexOp;
this.txnSubsystem = txnSubsystem;
indexRecord = new LogRecord();
indexRecord.setTxnCtx(txnCtx);
indexRecord.setLogType(LogType.UPDATE);
indexRecord.setTxnId(txnCtx.getTxnId().getId());
indexRecord.setDatasetId(datasetId.getId());
indexRecord.setResourceId(resourceId);
indexRecord.setResourcePartition(resourcePartition);
indexRecord.setNewOp(indexOp.value());
filterRecord = new LogRecord();
filterRecord.setTxnCtx(txnCtx);
filterRecord.setLogType(LogType.FILTER);
filterRecord.setDatasetId(datasetId.getId());
filterRecord.setTxnId(txnCtx.getTxnId().getId());
filterRecord.setResourceId(resourceId);
filterRecord.setResourcePartition(resourcePartition);
filterRecord.setNewOp(Operation.FILTER_MOD.value());
}