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.dsmlv2.DsmlLiterals;
26 import org.apache.directory.api.ldap.codec.api.LdapApiService;
27 import org.apache.directory.api.ldap.model.message.MessageTypeEnum;
28 import org.apache.directory.api.ldap.model.message.Referral;
29 import org.apache.directory.api.ldap.model.message.SearchResultReference;
30 import org.apache.directory.api.ldap.model.message.SearchResultReferenceImpl;
31 import org.apache.directory.api.ldap.model.url.LdapUrl;
32 import org.dom4j.Element;
33 import org.dom4j.tree.DefaultElement;
34
35
36
37
38
39
40
41 public class SearchResultReferenceDsml
42 extends AbstractResponseDsml<SearchResultReference>
43 implements SearchResultReference
44 {
45
46
47
48
49
50 public SearchResultReferenceDsml( LdapApiService codec )
51 {
52 super( codec, new SearchResultReferenceImpl() );
53 }
54
55
56
57
58
59
60
61
62 public SearchResultReferenceDsml( LdapApiService codec, SearchResultReference ldapMessage )
63 {
64 super( codec, ldapMessage );
65 }
66
67
68
69
70
71 @Override
72 public MessageTypeEnum getType()
73 {
74 return getDecorated().getType();
75 }
76
77
78
79
80
81 @Override
82 public Element toDsml( Element root )
83 {
84 Element element;
85
86 if ( root != null )
87 {
88 element = root.addElement( DsmlLiterals.SEARCH_RESULT_REFERENCE );
89 }
90 else
91 {
92 element = new DefaultElement( DsmlLiterals.SEARCH_RESULT_REFERENCE );
93 }
94
95
96 for ( String url : getDecorated().getReferral().getLdapUrls() )
97 {
98 element.addElement( DsmlLiterals.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 @Override
131 public Referral getReferral()
132 {
133 return getDecorated().getReferral();
134 }
135
136
137
138
139
140 @Override
141 public void setReferral( Referral referral )
142 {
143 getDecorated().setReferral( referral );
144 }
145 }