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.annotations;
20
21 import java.lang.annotation.Annotation;
22 import java.util.LinkedList;
23
24 import javax.websocket.EndpointConfig;
25 import javax.websocket.OnClose;
26 import javax.websocket.OnError;
27 import javax.websocket.OnMessage;
28 import javax.websocket.OnOpen;
29
30 import org.eclipse.jetty.websocket.jsr356.metadata.DecoderMetadata;
31 import org.eclipse.jetty.websocket.jsr356.metadata.DecoderMetadataSet;
32 import org.eclipse.jetty.websocket.jsr356.metadata.EncoderMetadataSet;
33 import org.eclipse.jetty.websocket.jsr356.metadata.EndpointMetadata;
34
35
36
37
38
39
40
41
42
43 public abstract class AnnotatedEndpointMetadata<T extends Annotation, C extends EndpointConfig> implements EndpointMetadata
44 {
45
46
47
48 public OnOpenCallable onOpen;
49
50
51
52
53 public OnCloseCallable onClose;
54
55
56
57
58 public OnErrorCallable onError;
59
60
61
62
63 public OnMessageTextCallable onText;
64
65
66
67
68 public OnMessageTextStreamCallable onTextStream;
69
70
71
72
73 public OnMessageBinaryCallable onBinary;
74
75
76
77
78 public OnMessageBinaryStreamCallable onBinaryStream;
79
80
81
82
83 public OnMessagePongCallable onPong;
84
85 private final Class<?> endpointClass;
86 private DecoderMetadataSet decoders;
87 private EncoderMetadataSet encoders;
88
89 protected AnnotatedEndpointMetadata(Class<?> endpointClass)
90 {
91 this.endpointClass = endpointClass;
92 this.decoders = new DecoderMetadataSet();
93 this.encoders = new EncoderMetadataSet();
94 }
95
96 public void customizeParamsOnClose(LinkedList<IJsrParamId> params)
97 {
98
99 }
100
101 public void customizeParamsOnError(LinkedList<IJsrParamId> params)
102 {
103
104 }
105
106 public void customizeParamsOnMessage(LinkedList<IJsrParamId> params)
107 {
108 for (DecoderMetadata metadata : decoders)
109 {
110 params.add(new JsrParamIdDecoder(metadata));
111 }
112 }
113
114 public void customizeParamsOnOpen(LinkedList<IJsrParamId> params)
115 {
116
117 }
118
119 public abstract T getAnnotation();
120
121 public abstract C getConfig();
122
123 @Override
124 public DecoderMetadataSet getDecoders()
125 {
126 return decoders;
127 }
128
129 @Override
130 public EncoderMetadataSet getEncoders()
131 {
132 return encoders;
133 }
134
135 @Override
136 public Class<?> getEndpointClass()
137 {
138 return endpointClass;
139 }
140 }