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.model.message;
21
22
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import java.util.Collections;
26 import java.util.Iterator;
27 import java.util.List;
28
29
30
31
32
33
34
35
36
37 public class ReferralImpl implements Referral
38 {
39 static final long serialVersionUID = 2638820668325359096L;
40
41
42 private final List<String> urls = new ArrayList<>();
43
44
45 private final List<byte[]> urlsBytes = new ArrayList<>();
46
47
48 private int referralLength;
49
50
51
52
53
54
55
56
57 @Override
58 public int getReferralLength()
59 {
60 return referralLength;
61 }
62
63
64
65
66
67 @Override
68 public void setReferralLength( int referralLength )
69 {
70 this.referralLength = referralLength;
71 }
72
73
74
75
76
77
78
79 @Override
80 public Collection<String> getLdapUrls()
81 {
82 return Collections.unmodifiableCollection( urls );
83 }
84
85
86
87
88
89 @Override
90 public Collection<byte[]> getLdapUrlsBytes()
91 {
92 return urlsBytes;
93 }
94
95
96
97
98
99
100
101 @Override
102 public void addLdapUrl( String url )
103 {
104 urls.add( url );
105 }
106
107
108
109
110
111 @Override
112 public void addLdapUrlBytes( byte[] urlBytes )
113 {
114 urlsBytes.add( urlBytes );
115 }
116
117
118
119
120
121
122
123
124 @Override
125 public void removeLdapUrl( String url )
126 {
127 urls.remove( url );
128 }
129
130
131
132
133
134
135 @Override
136 public int hashCode()
137 {
138 int hash = 37;
139 hash = hash * 17 + urls.size();
140
141
142 for ( String url : urls )
143 {
144 hash = hash + url.hashCode();
145 }
146
147 return hash;
148 }
149
150
151
152
153
154
155
156
157
158
159
160
161 @Override
162 public boolean equals( Object obj )
163 {
164
165 if ( obj == this )
166 {
167 return true;
168 }
169
170 if ( obj instanceof Referral )
171 {
172 Collection<String> refs = ( ( Referral ) obj ).getLdapUrls();
173
174
175 if ( refs.size() != urls.size() )
176 {
177 return false;
178 }
179
180 Iterator<String> list = urls.iterator();
181
182 while ( list.hasNext() )
183 {
184
185 if ( !refs.contains( list.next() ) )
186 {
187 return false;
188 }
189 }
190
191
192 return true;
193 }
194
195 return false;
196 }
197
198
199
200
201
202
203
204 @Override
205 public String toString()
206 {
207 StringBuilder sb = new StringBuilder();
208
209 if ( !urls.isEmpty() )
210 {
211 sb.append( " Referrals :\n" );
212
213 Object[] urlsArray = urls.toArray();
214
215 for ( int i = 0; i < urlsArray.length; i++ )
216 {
217
218 String referral = ( String ) urlsArray[i];
219
220 sb.append( " Referral[" ).append( i ).append( "] :" ).append( referral ).append( '\n' );
221 }
222 }
223
224 return sb.toString();
225 }
226 }