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    }