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 org.eclipse.jetty.util.BufferUtil;
25 import org.eclipse.jetty.websocket.common.message.MessageAppender;
26 import org.eclipse.jetty.websocket.jsr356.endpoints.JsrAnnotatedEventDriver;
27
28
29
30
31 public class TextPartialOnMessage implements MessageAppender
32 {
33 private final JsrAnnotatedEventDriver driver;
34 private boolean finished;
35
36 public TextPartialOnMessage(JsrAnnotatedEventDriver driver)
37 {
38 this.driver = driver;
39 this.finished = false;
40 }
41
42 @Override
43 public void appendFrame(ByteBuffer payload, boolean isLast) throws IOException
44 {
45 if (finished)
46 {
47 throw new IOException("Cannot append to finished buffer");
48 }
49 if (payload == null)
50 {
51 driver.onPartialTextMessage("",isLast);
52 }
53 else
54 {
55 String text = BufferUtil.toUTF8String(payload);
56 driver.onPartialTextMessage(text,isLast);
57 }
58 }
59
60 @Override
61 public void messageComplete()
62 {
63 finished = true;
64 }
65 }