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