1 //
2 // ========================================================================
3 // Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
4 // ------------------------------------------------------------------------
5 // All rights reserved. This program and the accompanying materials
6 // are made available under the terms of the Eclipse Public License v1.0
7 // and Apache License v2.0 which accompanies this distribution.
8 //
9 // The Eclipse Public License is available at
10 // http://www.eclipse.org/legal/epl-v10.html
11 //
12 // The Apache License v2.0 is available at
13 // http://www.opensource.org/licenses/apache2.0.php
14 //
15 // You may elect to redistribute this code under either of these licenses.
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.MessageHandler;
25 import javax.websocket.MessageHandler.Partial;
26
27 import org.eclipse.jetty.util.BufferUtil;
28 import org.eclipse.jetty.websocket.common.message.MessageAppender;
29 import org.eclipse.jetty.websocket.jsr356.MessageHandlerWrapper;
30
31 /**
32 * Partial TEXT MessageAppender for MessageHandler.Partial interface
33 */
34 public class TextPartialMessage implements MessageAppender
35 {
36 @SuppressWarnings("unused")
37 private final MessageHandlerWrapper msgWrapper;
38 private final MessageHandler.Partial<String> partialHandler;
39
40 @SuppressWarnings("unchecked")
41 public TextPartialMessage(MessageHandlerWrapper wrapper)
42 {
43 this.msgWrapper = wrapper;
44 this.partialHandler = (Partial<String>)wrapper.getHandler();
45 }
46
47 @Override
48 public void appendFrame(ByteBuffer payload, boolean isLast) throws IOException
49 {
50 // No decoders for Partial messages per JSR-356 (PFD1 spec)
51 partialHandler.onMessage(BufferUtil.toUTF8String(payload.slice()),isLast);
52 }
53
54 @Override
55 public void messageComplete()
56 {
57 /* nothing to do here */
58 }
59 }