1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.codec.decorators;
21
22
23 import java.nio.BufferOverflowException;
24 import java.nio.ByteBuffer;
25
26 import org.apache.directory.api.asn1.EncoderException;
27 import org.apache.directory.api.i18n.I18n;
28 import org.apache.directory.api.ldap.codec.api.LdapApiService;
29 import org.apache.directory.api.ldap.codec.api.LdapCodecConstants;
30 import org.apache.directory.api.ldap.model.message.Control;
31 import org.apache.directory.api.ldap.model.message.UnbindRequest;
32
33
34
35
36
37
38
39 public class UnbindRequestDecorator extends RequestDecorator<UnbindRequest> implements UnbindRequest
40 {
41
42
43
44
45
46
47 public UnbindRequestDecorator( LdapApiService codec, UnbindRequest decoratedMessage )
48 {
49 super( codec, decoratedMessage );
50 }
51
52
53
54
55
56 @Override
57 public UnbindRequest setMessageId( int messageId )
58 {
59 super.setMessageId( messageId );
60
61 return this;
62 }
63
64
65
66
67
68 @Override
69 public UnbindRequest addControl( Control control )
70 {
71 return ( UnbindRequest ) super.addControl( control );
72 }
73
74
75
76
77
78 @Override
79 public UnbindRequest addAllControls( Control[] controls )
80 {
81 return ( UnbindRequest ) super.addAllControls( controls );
82 }
83
84
85
86
87
88 @Override
89 public UnbindRequest removeControl( Control control )
90 {
91 return ( UnbindRequest ) super.removeControl( control );
92 }
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 @Override
108 public int computeLength()
109 {
110
111 return 2;
112 }
113
114
115
116
117
118 @Override
119 public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
120 {
121 try
122 {
123
124 buffer.put( LdapCodecConstants.UNBIND_REQUEST_TAG );
125
126
127 buffer.put( ( byte ) 0 );
128 }
129 catch ( BufferOverflowException boe )
130 {
131 String msg = I18n.err( I18n.ERR_04005 );
132 throw new EncoderException( msg, boe );
133 }
134
135 return buffer;
136 }
137 }