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 }