class JVoiceXmlPromptAccumulator implements PromptAccumulator {

    @Override
    public void renderPrompts(final String sessionId,
            final DocumentServer server, final CallControlProperties callProps)
            throws BadFetchError, NoresourceError,
                ConnectionDisconnectHangupEvent {
        final CallControl call = platform.getCallControl();
        if (!call.isCallActive()) {
            throw new NoresourceError(
                    "cannot render prompts. call is no longer active");
        }
        final SystemOutput output = platform.getSystemOutput();
        for (SpeakableText speakable : prompts) {
            if (speakable instanceof SpeakableSsmlText) {
                final SpeakableSsmlText ssmlSpeakable =
                        (SpeakableSsmlText) speakable;
                final long currentTimeout = ssmlSpeakable.getTimeout();
                if (currentTimeout >= 0) {
                    timeout = currentTimeout;
                }
            }
            try {
                call.play(output, callProps);
            } catch (IOException e) {
                throw new BadFetchError("error playing to calling device", e);
            }
            output.queueSpeakable(speakable, sessionId, server);
        }
        
        // Cleanup after rendering has been completed
        prompts.clear();
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("timeout after prompt queuing: " + timeout);
        }
    }

      JVoiceXmlPromptAccumulator(
            final ImplementationPlatform implementationPlatform);

}