class BatcherImpl implements Batcher, BatcherMXBean {

    public <E extends BatchExecutor<E, T>, T extends BatchCommand<E, T>> void submitBatchCommand(BatchCommand<E, T> cmd) {
        if (queue.state != State.STARTED)
            throw new IllegalStateException("Batcher is shutting down");
        queue.submitBatchCommand(cmd);
    }

    public  BatcherImpl(int numThreads);

}