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.factory;
21
22 import org.apache.directory.api.asn1.ber.tlv.BerValue;
23 import org.apache.directory.api.asn1.util.Asn1Buffer;
24 import org.apache.directory.api.ldap.codec.api.LdapApiService;
25 import org.apache.directory.api.ldap.codec.api.LdapCodecConstants;
26 import org.apache.directory.api.ldap.model.message.Message;
27 import org.apache.directory.api.ldap.model.message.ModifyDnRequest;
28 import org.apache.directory.api.util.Strings;
29
30
31
32
33
34
35 public final class ModifyDnRequestFactory implements Messagefactory
36 {
37
38 public static final ModifyDnRequestFactory INSTANCE = new ModifyDnRequestFactory();
39
40 private ModifyDnRequestFactory()
41 {
42
43 }
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 @Override
63 public void encodeReverse( LdapApiService codec, Asn1Buffer buffer, Message message )
64 {
65 int start = buffer.getPos();
66 ModifyDnRequest modifyDnRequest = ( ModifyDnRequest ) message;
67
68 if ( modifyDnRequest.getNewSuperior() != null )
69 {
70
71 BerValue.encodeOctetString( buffer,
72 ( byte ) LdapCodecConstants.MODIFY_DN_REQUEST_NEW_SUPERIOR_TAG,
73 Strings.getBytesUtf8( modifyDnRequest.getNewSuperior().getName() ) );
74 }
75
76
77 BerValue.encodeBoolean( buffer, modifyDnRequest.getDeleteOldRdn() );
78
79
80 BerValue.encodeOctetString( buffer, modifyDnRequest.getNewRdn().getName() );
81
82
83 BerValue.encodeOctetString( buffer, modifyDnRequest.getName().getName() );
84
85
86 BerValue.encodeSequence( buffer, LdapCodecConstants.MODIFY_DN_REQUEST_TAG, start );
87 }
88 }