View Javadoc
1   package org.oxerr.okcoin.websocket;
2   
3   import java.io.IOException;
4   import java.io.Writer;
5   
6   import javax.json.Json;
7   import javax.json.stream.JsonGenerator;
8   import javax.websocket.EncodeException;
9   import javax.websocket.Encoder;
10  import javax.websocket.EndpointConfig;
11  
12  import org.oxerr.okcoin.websocket.dto.Event;
13  
14  public class OKCoinEncoder implements Encoder.TextStream<Event> {
15  
16  	/**
17  	 * {@inheritDoc}
18  	 */
19  	@Override
20  	public void init(EndpointConfig config) {
21  	}
22  
23  	/**
24  	 * {@inheritDoc}
25  	 */
26  	@Override
27  	public void destroy() {
28  	}
29  
30  	/**
31  	 * {@inheritDoc}
32  	 */
33  	@Override
34  	public void encode(Event message, Writer writer) throws EncodeException,
35  			IOException {
36  		JsonGenerator g = Json.createGenerator(writer);
37  		g.writeStartObject()
38  			.write("event", message.getEvent())
39  			.write("channel", message.getChannel());
40  
41  		if (!message.getParameters().isEmpty()) {
42  			g.writeStartObject("parameters");
43  			message.getParameters().forEach((k, v) -> g.write(k, v));
44  			g.writeEnd();
45  		}
46  
47  		g.writeEnd();
48  		g.flush();
49  	}
50  
51  }