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.Referral;
28 import org.apache.directory.api.ldap.model.message.SearchResultReference;
29
30
31
32
33
34
35 public final class SearchResultReferenceFactory extends ResponseFactory
36 {
37
38 public static final SearchResultReferenceFactory INSTANCE = new SearchResultReferenceFactory();
39
40 private SearchResultReferenceFactory()
41 {
42 super();
43 }
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 @Override
60 public void encodeReverse( LdapApiService codec, Asn1Buffer buffer, Message message )
61 {
62 int start = buffer.getPos();
63
64 SearchResultReference searchResultReference = ( SearchResultReference ) message;
65
66
67 Referral referral = searchResultReference.getReferral();
68
69 if ( referral != null )
70 {
71
72 encodeReferralUrls( buffer, referral.getLdapUrls().iterator() );
73 }
74
75
76 BerValue.encodeSequence( buffer, LdapCodecConstants.SEARCH_RESULT_REFERENCE_TAG, start );
77 }
78 }