001         package com.croftsoft.apps.chat.server;
002    
003         import com.croftsoft.core.lang.NullArgumentException;
004    import com.croftsoft.core.util.consumer.Consumer;
005    
006         import com.croftsoft.apps.chat.event.TalkEvent;
007         import com.croftsoft.apps.chat.request.TalkRequest;
008         import com.croftsoft.apps.chat.request.Request;
009    import com.croftsoft.apps.chat.user.User;
010    
011         /*********************************************************************
012         * Serves a TalkRequest.
013         *
014         * @version
015         *   2003-06-11
016         * @since
017         *   2003-06-11
018         * @author
019         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
020         *********************************************************************/
021    
022         public final class  TalkServer
023           extends AbstractServer
024         //////////////////////////////////////////////////////////////////////
025         //////////////////////////////////////////////////////////////////////
026         {
027    
028         private final Consumer  eventConsumer;
029    
030         //////////////////////////////////////////////////////////////////////
031         //////////////////////////////////////////////////////////////////////
032    
033         public  TalkServer ( Consumer  eventConsumer )
034         //////////////////////////////////////////////////////////////////////
035         {
036           NullArgumentException.check ( this.eventConsumer = eventConsumer );
037         }
038    
039         //////////////////////////////////////////////////////////////////////
040         //////////////////////////////////////////////////////////////////////
041    
042         public Object  serve (
043           User     user,
044           Request  request )
045         //////////////////////////////////////////////////////////////////////
046         {
047           TalkRequest  talkRequest = ( TalkRequest ) request;
048    
049           String  text = talkRequest.getText ( );
050    
051           eventConsumer.consume ( new TalkEvent ( text ) );
052    
053           return null;
054         }
055    
056         //////////////////////////////////////////////////////////////////////
057         //////////////////////////////////////////////////////////////////////
058         }