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.response;
21
22
23 import java.util.Collection;
24
25 import org.apache.directory.api.ldap.codec.api.LdapApiService;
26 import org.apache.directory.api.ldap.model.message.MessageTypeEnum;
27 import org.apache.directory.api.ldap.model.message.Referral;
28 import org.apache.directory.api.ldap.model.message.SearchResultReference;
29 import org.apache.directory.api.ldap.model.message.SearchResultReferenceImpl;
30 import org.apache.directory.api.ldap.model.url.LdapUrl;
31 import org.dom4j.Element;
32 import org.dom4j.tree.DefaultElement;
33
34
35
36
37
38
39
40 public class SearchResultReferenceDsml
41 extends AbstractResponseDsml<SearchResultReference>
42 implements SearchResultReference
43 {
44 private static final String SEARCH_RESULT_REFERENCE_TAG = "searchResultReference";
45
46
47
48
49
50
51
52 public SearchResultReferenceDsml( LdapApiService codec )
53 {
54 super( codec, new SearchResultReferenceImpl() );
55 }
56
57
58
59
60
61
62
63
64 public SearchResultReferenceDsml( LdapApiService codec, SearchResultReference ldapMessage )
65 {
66 super( codec, ldapMessage );
67 }
68
69
70
71
72
73 public MessageTypeEnum getType()
74 {
75 return getDecorated().getType();
76 }
77
78
79
80
81
82 public Element toDsml( Element root )
83 {
84 Element element = null;
85
86 if ( root != null )
87 {
88 element = root.addElement( SEARCH_RESULT_REFERENCE_TAG );
89 }
90 else
91 {
92 element = new DefaultElement( SEARCH_RESULT_REFERENCE_TAG );
93 }
94
95
96 for ( String url : getDecorated().getReferral().getLdapUrls() )
97 {
98 element.addElement( "ref" ).addText( url );
99 }
100
101 return element;
102 }
103
104
105
106
107
108
109
110 public void addSearchResultReference( LdapUrl searchResultReference )
111 {
112 getDecorated().getReferral().addLdapUrl( searchResultReference.toString() );
113 }
114
115
116
117
118
119
120
121 public Collection<String> getSearchResultReferences()
122 {
123 return getDecorated().getReferral().getLdapUrls();
124 }
125
126
127
128
129
130 public Referral getReferral()
131 {
132 return getDecorated().getReferral();
133 }
134
135
136
137
138
139 public void setReferral( Referral referral )
140 {
141 getDecorated().setReferral( referral );
142 }
143 }