1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.websocket.common.extensions.identity;
20
21 import org.eclipse.jetty.util.QuotedStringTokenizer;
22 import org.eclipse.jetty.util.annotation.ManagedObject;
23 import org.eclipse.jetty.websocket.api.WebSocketException;
24 import org.eclipse.jetty.websocket.api.WriteCallback;
25 import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
26 import org.eclipse.jetty.websocket.api.extensions.Frame;
27 import org.eclipse.jetty.websocket.common.extensions.AbstractExtension;
28
29 @ManagedObject("Identity Extension")
30 public class IdentityExtension extends AbstractExtension
31 {
32 private String id;
33
34 public String getParam(String key)
35 {
36 return getConfig().getParameter(key,"?");
37 }
38
39 @Override
40 public void incomingError(WebSocketException e)
41 {
42
43 nextIncomingError(e);
44 }
45
46 @Override
47 public void incomingFrame(Frame frame)
48 {
49
50 nextIncomingFrame(frame);
51 }
52
53 @Override
54 public void outgoingFrame(Frame frame, WriteCallback callback)
55 {
56
57 nextOutgoingFrame(frame,callback);
58 }
59
60 @Override
61 public void setConfig(ExtensionConfig config)
62 {
63 super.setConfig(config);
64 StringBuilder s = new StringBuilder();
65 s.append(config.getName());
66 s.append("@").append(Integer.toHexString(hashCode()));
67 s.append("[");
68 boolean delim = false;
69 for (String param : config.getParameterKeys())
70 {
71 if (delim)
72 {
73 s.append(';');
74 }
75 s.append(param).append('=').append(QuotedStringTokenizer.quoteIfNeeded(config.getParameter(param,""),";="));
76 delim = true;
77 }
78 s.append("]");
79 id = s.toString();
80 }
81
82 @Override
83 public String toString()
84 {
85 return id;
86 }
87 }