001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020
021 package org.apache.directory.shared.dsmlv2;
022
023
024 import java.nio.ByteBuffer;
025 import java.util.List;
026
027 import org.apache.directory.shared.asn1.AbstractAsn1Object;
028 import org.apache.directory.shared.asn1.codec.DecoderException;
029 import org.apache.directory.shared.asn1.codec.EncoderException;
030 import org.apache.directory.shared.ldap.codec.LdapMessageCodec;
031 import org.apache.directory.shared.ldap.codec.LdapResponseCodec;
032 import org.apache.directory.shared.ldap.codec.MessageTypeEnum;
033 import org.apache.directory.shared.ldap.codec.abandon.AbandonRequestCodec;
034 import org.apache.directory.shared.ldap.codec.add.AddRequestCodec;
035 import org.apache.directory.shared.ldap.codec.add.AddResponseCodec;
036 import org.apache.directory.shared.ldap.codec.bind.BindRequestCodec;
037 import org.apache.directory.shared.ldap.codec.bind.BindResponseCodec;
038 import org.apache.directory.shared.ldap.codec.compare.CompareRequestCodec;
039 import org.apache.directory.shared.ldap.codec.compare.CompareResponseCodec;
040 import org.apache.directory.shared.ldap.codec.del.DelRequestCodec;
041 import org.apache.directory.shared.ldap.codec.del.DelResponseCodec;
042 import org.apache.directory.shared.ldap.codec.extended.ExtendedRequestCodec;
043 import org.apache.directory.shared.ldap.codec.extended.ExtendedResponseCodec;
044 import org.apache.directory.shared.ldap.codec.modify.ModifyRequestCodec;
045 import org.apache.directory.shared.ldap.codec.modify.ModifyResponseCodec;
046 import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNRequestCodec;
047 import org.apache.directory.shared.ldap.codec.modifyDn.ModifyDNResponseCodec;
048 import org.apache.directory.shared.ldap.codec.search.SearchRequestCodec;
049 import org.apache.directory.shared.ldap.codec.search.SearchResultDoneCodec;
050 import org.apache.directory.shared.ldap.codec.search.SearchResultEntryCodec;
051 import org.apache.directory.shared.ldap.codec.search.SearchResultReferenceCodec;
052 import org.apache.directory.shared.ldap.codec.unbind.UnBindRequestCodec;
053 import org.apache.directory.shared.ldap.message.control.Control;
054
055
056 /**
057 * Decorator class for LDAP Message. This is the top level class, the one
058 * that holds the instance.
059 *
060 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
061 * @version $Rev$, $Date$
062 */
063 public abstract class LdapMessageDecorator extends LdapMessageCodec
064 {
065 /** The decorated instance */
066 protected LdapMessageCodec instance;
067
068
069 /**
070 * Creates a new instance of LdapMessageDecorator.
071 *
072 * @param ldapMessage
073 * the message to decorate
074 */
075 public LdapMessageDecorator( LdapMessageCodec ldapMessage )
076 {
077 instance = ldapMessage;
078 }
079
080
081 /* (non-Javadoc)
082 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#addControl(org.apache.directory.shared.ldap.codec.Control)
083 */
084 @Override
085 public void addControl( Control control )
086 {
087 instance.addControl( control );
088 }
089
090
091 /* (non-Javadoc)
092 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#computeLength()
093 */
094 @Override
095 public int computeLength()
096 {
097 return 0;
098 }
099
100 @Override
101 public int computeLengthProtocolOp()
102 {
103 return 0;
104 }
105
106
107 /* (non-Javadoc)
108 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#encode(java.nio.ByteBuffer)
109 */
110 @Override
111 public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
112 {
113 return null;
114 }
115
116
117 @Override
118 public void encodeProtocolOp( ByteBuffer buffer ) throws EncoderException
119 {
120 }
121
122
123 /* (non-Javadoc)
124 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getAbandonRequest()
125 */
126 public AbandonRequestCodec getAbandonRequest()
127 {
128 return (AbandonRequestCodec)instance;
129 }
130
131
132 /* (non-Javadoc)
133 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getAddRequest()
134 */
135 public AddRequestCodec getAddRequest()
136 {
137 return (AddRequestCodec)instance;
138 }
139
140
141 /* (non-Javadoc)
142 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getAddResponse()
143 */
144 public AddResponseCodec getAddResponse()
145 {
146 return (AddResponseCodec)instance;
147 }
148
149
150 /* (non-Javadoc)
151 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getBindRequest()
152 */
153 public BindRequestCodec getBindRequest()
154 {
155 return (BindRequestCodec)instance;
156 }
157
158
159 /* (non-Javadoc)
160 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getBindResponse()
161 */
162 public BindResponseCodec getBindResponse()
163 {
164 return (BindResponseCodec)instance;
165 }
166
167
168 /* (non-Javadoc)
169 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getCompareRequest()
170 */
171 public CompareRequestCodec getCompareRequest()
172 {
173 return (CompareRequestCodec)instance;
174 }
175
176
177 /* (non-Javadoc)
178 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getCompareResponse()
179 */
180 public CompareResponseCodec getCompareResponse()
181 {
182 return (CompareResponseCodec)instance;
183 }
184
185
186 /* (non-Javadoc)
187 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getControls()
188 */
189 @Override
190 public List<Control> getControls()
191 {
192 return instance.getControls();
193 }
194
195
196 /* (non-Javadoc)
197 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getControls(int)
198 */
199 @Override
200 public Control getControls( int i )
201 {
202 return instance.getControls( i );
203 }
204
205
206 /* (non-Javadoc)
207 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getCurrentControl()
208 */
209 @Override
210 public Control getCurrentControl()
211 {
212 return instance.getCurrentControl();
213 }
214
215
216 /* (non-Javadoc)
217 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getDelRequest()
218 */
219 public DelRequestCodec getDelRequest()
220 {
221 return (DelRequestCodec)instance;
222 }
223
224
225 /* (non-Javadoc)
226 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getDelResponse()
227 */
228 public DelResponseCodec getDelResponse()
229 {
230 return (DelResponseCodec)instance;
231 }
232
233
234 /* (non-Javadoc)
235 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getExtendedRequest()
236 */
237 public ExtendedRequestCodec getExtendedRequest()
238 {
239 return (ExtendedRequestCodec)instance;
240 }
241
242
243 /* (non-Javadoc)
244 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getExtendedResponse()
245 */
246 public ExtendedResponseCodec getExtendedResponse()
247 {
248 return (ExtendedResponseCodec)instance;
249 }
250
251
252 /* (non-Javadoc)
253 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getLdapResponse()
254 */
255 public LdapResponseCodec getLdapResponse()
256 {
257 return (LdapResponseCodec)instance;
258 }
259
260
261 /* (non-Javadoc)
262 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getMessageId()
263 */
264 @Override
265 public int getMessageId()
266 {
267 return instance.getMessageId();
268 }
269
270
271 /* (non-Javadoc)
272 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getMessageType()
273 */
274 @Override
275 public MessageTypeEnum getMessageType()
276 {
277 return instance.getMessageType();
278 }
279
280
281 /* (non-Javadoc)
282 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getMessageTypeName()
283 */
284 @Override
285 public String getMessageTypeName()
286 {
287 return instance.getMessageTypeName();
288 }
289
290
291 /* (non-Javadoc)
292 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getModifyDNRequest()
293 */
294 public ModifyDNRequestCodec getModifyDNRequest()
295 {
296 return (ModifyDNRequestCodec)instance;
297 }
298
299
300 /* (non-Javadoc)
301 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getModifyDNResponse()
302 */
303 public ModifyDNResponseCodec getModifyDNResponse()
304 {
305 return (ModifyDNResponseCodec)instance;
306 }
307
308
309 /* (non-Javadoc)
310 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getModifyRequest()
311 */
312 public ModifyRequestCodec getModifyRequest()
313 {
314 return (ModifyRequestCodec)instance;
315 }
316
317
318 /* (non-Javadoc)
319 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getModifyResponse()
320 */
321 public ModifyResponseCodec getModifyResponse()
322 {
323 return (ModifyResponseCodec)instance;
324 }
325
326
327 /* (non-Javadoc)
328 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getSearchRequest()
329 */
330 public SearchRequestCodec getSearchRequest()
331 {
332 return (SearchRequestCodec)instance;
333 }
334
335
336 /* (non-Javadoc)
337 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getSearchResultDone()
338 */
339 public SearchResultDoneCodec getSearchResultDone()
340 {
341 return (SearchResultDoneCodec)instance;
342 }
343
344
345 /* (non-Javadoc)
346 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getSearchResultEntry()
347 */
348 public SearchResultEntryCodec getSearchResultEntry()
349 {
350 return (SearchResultEntryCodec)instance;
351 }
352
353
354 /* (non-Javadoc)
355 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getSearchResultReference()
356 */
357 public SearchResultReferenceCodec getSearchResultReference()
358 {
359 return (SearchResultReferenceCodec)instance;
360 }
361
362
363 /* (non-Javadoc)
364 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#getUnBindRequest()
365 */
366 public UnBindRequestCodec getUnBindRequest()
367 {
368 return (UnBindRequestCodec)instance;
369 }
370
371
372 /* (non-Javadoc)
373 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#setMessageId(int)
374 */
375 @Override
376 public void setMessageId( int messageId )
377 {
378 instance.setMessageId( messageId );
379 }
380
381
382 /* (non-Javadoc)
383 * @see org.apache.directory.shared.ldap.codec.LdapMessageCodec#toString()
384 */
385 @Override
386 public String toString()
387 {
388 return instance.toString();
389 }
390
391
392 /* (non-Javadoc)
393 * @see org.apache.directory.shared.asn1.Asn1Object#addLength(int)
394 */
395 @Override
396 public void addLength( int length ) throws DecoderException
397 {
398 instance.addLength( length );
399 }
400
401
402 /* (non-Javadoc)
403 * @see org.apache.directory.shared.asn1.Asn1Object#getCurrentLength()
404 */
405 @Override
406 public int getCurrentLength()
407 {
408 return instance.getCurrentLength();
409 }
410
411
412 /* (non-Javadoc)
413 * @see org.apache.directory.shared.asn1.Asn1Object#getExpectedLength()
414 */
415 @Override
416 public int getExpectedLength()
417 {
418 return instance.getExpectedLength();
419 }
420
421
422 /* (non-Javadoc)
423 * @see org.apache.directory.shared.asn1.Asn1Object#getParent()
424 */
425 @Override
426 public AbstractAsn1Object getParent()
427 {
428 return instance.getParent();
429 }
430
431
432 /* (non-Javadoc)
433 * @see org.apache.directory.shared.asn1.Asn1Object#setCurrentLength(int)
434 */
435 @Override
436 public void setCurrentLength( int currentLength )
437 {
438 instance.setCurrentLength( currentLength );
439 }
440
441
442 /* (non-Javadoc)
443 * @see org.apache.directory.shared.asn1.Asn1Object#setExpectedLength(int)
444 */
445 @Override
446 public void setExpectedLength( int expectedLength )
447 {
448 instance.setExpectedLength( expectedLength );
449 }
450
451
452 /* (non-Javadoc)
453 * @see org.apache.directory.shared.asn1.Asn1Object#setParent(org.apache.directory.shared.asn1.Asn1Object)
454 */
455 public void setParent( AbstractAsn1Object parent )
456 {
457 instance.setParent( parent );
458 }
459 }