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