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