1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.websocket.jsr356.messages;
20
21 import java.io.IOException;
22 import java.nio.ByteBuffer;
23
24 import javax.websocket.OnMessage;
25
26 import org.eclipse.jetty.util.BufferUtil;
27 import org.eclipse.jetty.websocket.common.message.MessageAppender;
28 import org.eclipse.jetty.websocket.jsr356.endpoints.JsrAnnotatedEventDriver;
29
30
31
32
33 public class TextPartialOnMessage implements MessageAppender
34 {
35 private final JsrAnnotatedEventDriver driver;
36 private boolean finished;
37
38 public TextPartialOnMessage(JsrAnnotatedEventDriver driver)
39 {
40 this.driver = driver;
41 this.finished = false;
42 }
43
44 @Override
45 public void appendMessage(ByteBuffer payload, boolean isLast) throws IOException
46 {
47 if (finished)
48 {
49 throw new IOException("Cannot append to finished buffer");
50 }
51 if (payload == null)
52 {
53 driver.onPartialTextMessage("",isLast);
54 }
55 else
56 {
57 String text = BufferUtil.toUTF8String(payload);
58 driver.onPartialTextMessage(text,isLast);
59 }
60 }
61
62 @Override
63 public void messageComplete()
64 {
65 finished = true;
66 }
67 }