1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.example.haiku;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.apache.mina.core.filterchain.IoFilterAdapter;
25 import org.apache.mina.core.session.IoSession;
26
27
28
29
30
31 public class ToHaikuIoFilter extends IoFilterAdapter {
32
33 @SuppressWarnings( { "unchecked" })
34 @Override
35 public void messageReceived(NextFilter nextFilter, IoSession session,
36 Object message) throws Exception {
37 List<String> phrases = (List<String>) session.getAttribute("phrases");
38
39 if (null == phrases) {
40 phrases = new ArrayList<String>();
41 session.setAttribute("phrases", phrases);
42 }
43
44 phrases.add((String) message);
45
46 if (phrases.size() == 3) {
47 session.removeAttribute("phrases");
48
49 super.messageReceived(nextFilter, session, new Haiku(phrases
50 .toArray(new String[3])));
51 }
52 }
53 }