class ReadyLocalTransactionSerializer extends JSerializer {

    @Override
    public byte[] toBinary(final Object obj) {
        checkArgument(obj instanceof ReadyLocalTransaction, "Unsupported object type %s", obj.getClass());
        final ReadyLocalTransaction readyLocal = (ReadyLocalTransaction) obj;
        final BatchedModifications batched = new BatchedModifications(readyLocal.getTransactionId(),
                readyLocal.getRemoteVersion());
        batched.setDoCommitOnReady(readyLocal.isDoCommitOnReady());
        batched.setTotalMessagesSent(1);
        batched.setReady(readyLocal.getParticipatingShardNames());

        readyLocal.getModification().applyToCursor(new BatchedCursor(batched));

        return SerializationUtils.serialize(batched);
    }

    public  ReadyLocalTransactionSerializer(final ExtendedActorSystem system);

}