Mercurial Hosting > luan
comparison src/org/eclipse/jetty/server/handler/HandlerWrapper.java @ 993:d9d95acded81
remove ScopedHandler
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 18 Oct 2016 15:54:54 -0600 |
parents | 22a4e93ed20e |
children | 32d4b569567c |
comparison
equal
deleted
inserted
replaced
992:0608a6664bee | 993:d9d95acded81 |
---|---|
34 * {@link LifeCycle life cycle} events to a delegate. This is primarily used to implement the <i>Decorator</i> pattern. | 34 * {@link LifeCycle life cycle} events to a delegate. This is primarily used to implement the <i>Decorator</i> pattern. |
35 * | 35 * |
36 */ | 36 */ |
37 public class HandlerWrapper extends AbstractHandlerContainer | 37 public class HandlerWrapper extends AbstractHandlerContainer |
38 { | 38 { |
39 protected Handler _handler; | 39 protected Handler _handler; |
40 | 40 |
41 /* ------------------------------------------------------------ */ | 41 /* ------------------------------------------------------------ */ |
42 /** | 42 /** |
43 * | 43 * |
44 */ | 44 */ |
45 public HandlerWrapper() | 45 public HandlerWrapper() |
46 { | 46 { |
47 } | 47 } |
48 | 48 |
49 /* ------------------------------------------------------------ */ | 49 /* ------------------------------------------------------------ */ |
50 /** | 50 /** |
51 * @return Returns the handlers. | 51 * @return Returns the handlers. |
52 */ | 52 */ |
53 public Handler getHandler() | 53 public Handler getHandler() |
54 { | 54 { |
55 return _handler; | 55 return _handler; |
56 } | 56 } |
57 | 57 |
58 /* ------------------------------------------------------------ */ | 58 /* ------------------------------------------------------------ */ |
59 /** | 59 /** |
60 * @return Returns the handlers. | 60 * @return Returns the handlers. |
61 */ | 61 */ |
62 public Handler[] getHandlers() | 62 public Handler[] getHandlers() |
63 { | 63 { |
64 if (_handler==null) | 64 if (_handler==null) |
65 return new Handler[0]; | 65 return new Handler[0]; |
66 return new Handler[] {_handler}; | 66 return new Handler[] {_handler}; |
67 } | 67 } |
68 | 68 |
69 /* ------------------------------------------------------------ */ | 69 /* ------------------------------------------------------------ */ |
70 /** | 70 /** |
71 * @param handler Set the {@link Handler} which should be wrapped. | 71 * @param handler Set the {@link Handler} which should be wrapped. |
72 */ | 72 */ |
73 public void setHandler(Handler handler) | 73 public void setHandler(Handler handler) |
74 { | 74 { |
75 if (isStarted()) | 75 if (isStarted()) |
76 throw new IllegalStateException(STARTED); | 76 throw new IllegalStateException(STARTED); |
77 | 77 |
78 Handler old_handler = _handler; | 78 Handler old_handler = _handler; |
79 _handler = handler; | 79 _handler = handler; |
80 if (handler!=null) | 80 if (handler!=null) |
81 handler.setServer(getServer()); | 81 handler.setServer(getServer()); |
82 } | 82 } |
83 | 83 |
84 /* ------------------------------------------------------------ */ | 84 /* ------------------------------------------------------------ */ |
85 /* | 85 /* |
86 * @see org.eclipse.thread.AbstractLifeCycle#doStart() | 86 * @see org.eclipse.thread.AbstractLifeCycle#doStart() |
87 */ | 87 */ |
88 @Override | 88 @Override |
89 protected void doStart() throws Exception | 89 protected void doStart() throws Exception |
90 { | 90 { |
91 if (_handler!=null) | 91 if (_handler!=null) |
92 _handler.start(); | 92 _handler.start(); |
93 super.doStart(); | 93 super.doStart(); |
94 } | 94 } |
95 | 95 |
96 /* ------------------------------------------------------------ */ | 96 /* ------------------------------------------------------------ */ |
97 /* | 97 /* |
98 * @see org.eclipse.thread.AbstractLifeCycle#doStop() | 98 * @see org.eclipse.thread.AbstractLifeCycle#doStop() |
99 */ | 99 */ |
100 @Override | 100 @Override |
101 protected void doStop() throws Exception | 101 protected void doStop() throws Exception |
102 { | 102 { |
103 if (_handler!=null) | 103 if (_handler!=null) |
104 _handler.stop(); | 104 _handler.stop(); |
105 super.doStop(); | 105 super.doStop(); |
106 } | 106 } |
107 | 107 |
108 /* ------------------------------------------------------------ */ | 108 /* ------------------------------------------------------------ */ |
109 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException | 109 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException |
110 { | 110 { |
111 if (_handler!=null && isStarted()) | 111 if (_handler!=null && isStarted()) |
112 { | 112 { |
113 _handler.handle(target,baseRequest, request, response); | 113 _handler.handle(target,baseRequest, request, response); |
114 } | 114 } |
115 } | 115 } |
116 | 116 |
117 | 117 |
118 /* ------------------------------------------------------------ */ | 118 /* ------------------------------------------------------------ */ |
119 @Override | 119 @Override |
120 public void setServer(Server server) | 120 public void setServer(Server server) |
121 { | 121 { |
122 Server old_server=getServer(); | 122 Server old_server=getServer(); |
123 if (server==old_server) | 123 if (server==old_server) |
124 return; | 124 return; |
125 | 125 |
126 if (isStarted()) | 126 if (isStarted()) |
127 throw new IllegalStateException(STARTED); | 127 throw new IllegalStateException(STARTED); |
128 | 128 |
129 super.setServer(server); | 129 super.setServer(server); |
130 | 130 |
131 Handler h=getHandler(); | 131 Handler h=getHandler(); |
132 if (h!=null) | 132 if (h!=null) |
133 h.setServer(server); | 133 h.setServer(server); |
134 } | 134 } |
135 | 135 |
136 | 136 |
137 /* ------------------------------------------------------------ */ | 137 /* ------------------------------------------------------------ */ |
138 @Override | 138 @Override |
139 protected Object expandChildren(Object list, Class byClass) | 139 protected Object expandChildren(Object list, Class byClass) |
140 { | 140 { |
141 return expandHandler(_handler,list,byClass); | 141 return expandHandler(_handler,list,byClass); |
142 } | 142 } |
143 | 143 |
144 /* ------------------------------------------------------------ */ | 144 /* ------------------------------------------------------------ */ |
145 public <H extends Handler> H getNestedHandlerByClass(Class<H> byclass) | 145 public <H extends Handler> H getNestedHandlerByClass(Class<H> byclass) |
146 { | 146 { |
147 HandlerWrapper h=this; | 147 HandlerWrapper h=this; |
148 while (h!=null) | 148 while (h!=null) |
149 { | 149 { |
150 if (byclass.isInstance(h)) | 150 if (byclass.isInstance(h)) |
151 return (H)h; | 151 return (H)h; |
152 Handler w = h.getHandler(); | 152 Handler w = h.getHandler(); |
153 if (w instanceof HandlerWrapper) | 153 if (w instanceof HandlerWrapper) |
154 h=(HandlerWrapper)w; | 154 h=(HandlerWrapper)w; |
155 else break; | 155 else break; |
156 } | 156 } |
157 return null; | 157 return null; |
158 | 158 |
159 } | 159 } |
160 | 160 |
161 /* ------------------------------------------------------------ */ | 161 /* ------------------------------------------------------------ */ |
162 @Override | 162 @Override |
163 public void destroy() | 163 public void destroy() |
164 { | 164 { |
165 if (!isStopped()) | 165 if (!isStopped()) |
166 throw new IllegalStateException("!STOPPED"); | 166 throw new IllegalStateException("!STOPPED"); |
167 Handler child=getHandler(); | 167 Handler child=getHandler(); |
168 if (child!=null) | 168 if (child!=null) |
169 { | 169 { |
170 setHandler(null); | 170 setHandler(null); |
171 child.destroy(); | 171 child.destroy(); |
172 } | 172 } |
173 super.destroy(); | 173 super.destroy(); |
174 } | 174 } |
175 | 175 |
176 } | 176 } |