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 public class ToHaikuIoFilter extends IoFilterAdapter {
31
32 @SuppressWarnings( { "unchecked" })
33 @Override
34 public void messageReceived(NextFilter nextFilter, IoSession session,
35 Object message) throws Exception {
36 List<String> phrases = (List<String>) session.getAttribute("phrases");
37
38 if (null == phrases) {
39 phrases = new ArrayList<String>();
40 session.setAttribute("phrases", phrases);
41 }
42
43 phrases.add((String) message);
44
45 if (phrases.size() == 3) {
46 session.removeAttribute("phrases");
47
48 super.messageReceived(nextFilter, session, new Haiku(phrases
49 .toArray(new String[3])));
50 }
51 }
52 }