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