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