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.dsmlv2.request;
21
22
23 import java.nio.ByteBuffer;
24
25 import org.apache.directory.api.asn1.EncoderException;
26 import org.apache.directory.api.dsmlv2.ParserUtils;
27 import org.apache.directory.api.ldap.codec.api.LdapApiService;
28 import org.apache.directory.api.ldap.model.message.AbandonListener;
29 import org.apache.directory.api.ldap.model.message.AbandonableRequest;
30 import org.apache.directory.api.ldap.model.message.ResultResponse;
31 import org.apache.directory.api.ldap.model.message.ResultResponseRequest;
32 import org.dom4j.Element;
33
34
35
36
37
38
39
40 public abstract class AbstractResultResponseRequestDsml<E extends ResultResponseRequest, F extends ResultResponse>
41 extends AbstractRequestDsml<E>
42 implements ResultResponseRequest, AbandonableRequest
43 {
44
45
46
47
48
49
50 public AbstractResultResponseRequestDsml( LdapApiService codec, E ldapMessage )
51 {
52 super( codec, ldapMessage );
53 }
54
55
56
57
58
59
60
61
62
63
64 public Element toDsml( Element root )
65 {
66 Element element = root.addElement( getRequestName() );
67
68
69 int requestID = getDecorated().getMessageId();
70 if ( requestID > 0 )
71 {
72 element.addAttribute( "requestID", "" + requestID );
73 }
74
75
76 ParserUtils.addControls( getCodecService(), element, getDecorated().getControls().values() );
77
78 return element;
79 }
80
81
82
83
84
85
86
87
88 private String getRequestName()
89 {
90 switch ( getDecorated().getType() )
91 {
92 case ABANDON_REQUEST:
93 return "abandonRequest";
94
95 case ADD_REQUEST:
96 return "addRequest";
97
98 case BIND_REQUEST:
99 return "authRequest";
100
101 case COMPARE_REQUEST:
102 return "compareRequest";
103
104 case DEL_REQUEST:
105 return "delRequest";
106
107 case EXTENDED_REQUEST:
108 return "extendedRequest";
109
110 case MODIFYDN_REQUEST:
111 return "modDNRequest";
112
113 case MODIFY_REQUEST:
114 return "modifyRequest";
115
116 case SEARCH_REQUEST:
117 return "searchRequest";
118
119 default:
120 return "error";
121 }
122 }
123
124
125 public int computeLength()
126 {
127 return 0;
128 }
129
130
131 public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
132 {
133 return null;
134 }
135
136
137
138
139
140 public ResultResponse getResultResponse()
141 {
142 return getDecorated().getResultResponse();
143 }
144
145
146
147
148
149 public void abandon()
150 {
151 ( ( AbandonableRequest ) getDecorated() ).abandon();
152 }
153
154
155
156
157
158 public boolean isAbandoned()
159 {
160 return ( ( AbandonableRequest ) getDecorated() ).isAbandoned();
161 }
162
163
164
165
166
167 public AbandonableRequest addAbandonListener( AbandonListener listener )
168 {
169 ( ( AbandonableRequest ) getDecorated() ).addAbandonListener( listener );
170
171 return this;
172 }
173 }