class AsynchronousTransformer extends BatchRefineTransformer implements
        AsyncTransformer {

    @Override
    public void transform(HttpRequestEntity entity, String requestId)
            throws IOException {

        logMessage(entity.getRequest());

        if (!fActive.add(requestId)) {
            throw new IllegalStateException("A request with ID " + requestId + " was already in progress.");
        }

        File output = output(requestId);
        ImmutablePair<MimeType, Properties> pair = exporterOptions(entity);
        fEngine.transform(
                downloadInput(entity).toURI(),
                fetchTransform(entity),
                output.toURI(),
                pair.getRight(),
                new CallbackWrapper(requestId, output, pair.getLeft())
        );
    }

    public  AsynchronousTransformer(IAsyncTransformEngine engine);

}