MarcSynthesizedOutput implements SynthesizedOutput, MarcClient { @Override public void queueSpeakable(final SpeakableText speakable, final String id, final DocumentServer documentServer) throws NoresourceError, BadFetchError { synchronized (speakables) { sessionId = id; speakables.offer(speakable); if (LOGGER.isDebugEnabled()) { LOGGER.debug("queued speakable '" + speakable + "'"); } if (speakables.size() == 1) { sendNextSpeakable(); } } } MarcSynthesizedOutput(); void setExternalMarcPublisher(
            final ExternalMarcPublisher publisher); ExternalMarcPublisher getExternalMarcPublisher(); void setHost(final String value); void setPort(final int portNumber); void setFeedbackPort(final int portNumber); void setVoice(final String name); void setDefaultLocale(final String locale); @Override String getType(); @Override void open(); @Override void activate(); @Override void passivate(); @Override void close(); @Override boolean isBusy(); @Override void connect(final ConnectionInformation client); @Override void disconnect(final ConnectionInformation client); @Override boolean supportsBargeIn(); @Override void cancelOutput(final BargeInType bargeInType); @Override void addListener(final SynthesizedOutputListener listener); @Override void removeListener(final SynthesizedOutputListener listener); @Override void queueSpeakable(final SpeakableText speakable,
            final String id, final DocumentServer documentServer); @Override void sendToMarc(final String bml); @Override void waitNonBargeInPlayed(); @Override void waitQueueEmpty();  }
@Test public void testQueueSpeakable() throws Exception, JVoiceXMLEvent { final SsmlDocument doc = new SsmlDocument(); final Speak speak = doc.getSpeak(); speak.addText("This is a test!"); final SpeakableSsmlText speakable = new SpeakableSsmlText(doc); final MarcSynthesizedOutput output = new MarcSynthesizedOutput(); output.activate(); output.connect(null); output.queueSpeakable(speakable, null, null); }