Lines 22-27
Link Here
|
22 |
import java.util.ArrayList; |
22 |
import java.util.ArrayList; |
23 |
import java.util.Iterator; |
23 |
import java.util.Iterator; |
24 |
import java.util.List; |
24 |
import java.util.List; |
|
|
25 |
import java.util.NoSuchElementException; |
25 |
|
26 |
|
26 |
import org.apache.xml.security.keys.storage.implementations.KeyStoreResolver; |
27 |
import org.apache.xml.security.keys.storage.implementations.KeyStoreResolver; |
27 |
import org.apache.xml.security.keys.storage.implementations.SingleCertificateResolver; |
28 |
import org.apache.xml.security.keys.storage.implementations.SingleCertificateResolver; |
Lines 116-123
Link Here
|
116 |
/** |
117 |
/** |
117 |
* Method getIterator |
118 |
* Method getIterator |
118 |
* @return the iterator for the resolvers. |
119 |
* @return the iterator for the resolvers. |
119 |
* |
120 |
*/ |
120 |
*/ |
|
|
121 |
public Iterator getIterator() { |
121 |
public Iterator getIterator() { |
122 |
|
122 |
|
123 |
if (this._iterator == null) { |
123 |
if (this._iterator == null) { |
Lines 132-138
Link Here
|
132 |
/** |
132 |
/** |
133 |
* Method hasNext |
133 |
* Method hasNext |
134 |
* |
134 |
* |
135 |
* @return true if there is more elements. |
135 |
* @return true if there are more elements. |
136 |
*/ |
136 |
*/ |
137 |
public boolean hasNext() { |
137 |
public boolean hasNext() { |
138 |
|
138 |
|
Lines 156-161
Link Here
|
156 |
|
156 |
|
157 |
/** |
157 |
/** |
158 |
* Class StorageResolverIterator |
158 |
* Class StorageResolverIterator |
|
|
159 |
* This iterates over all the Certificates found in all the resolvers. |
159 |
* |
160 |
* |
160 |
* @author $Author$ |
161 |
* @author $Author$ |
161 |
* @version $Revision$ |
162 |
* @version $Revision$ |
Lines 165-187
Link Here
|
165 |
/** Field _resolvers */ |
166 |
/** Field _resolvers */ |
166 |
Iterator _resolvers = null; |
167 |
Iterator _resolvers = null; |
167 |
|
168 |
|
|
|
169 |
/** Field _currentResolver */ |
170 |
Iterator _currentResolver = null; |
171 |
|
168 |
/** |
172 |
/** |
169 |
* Constructor FilesystemIterator |
173 |
* Constructor StorageResolverIterator |
170 |
* |
174 |
* |
171 |
* @param resolvers |
175 |
* @param resolvers |
172 |
*/ |
176 |
*/ |
173 |
public StorageResolverIterator(Iterator resolvers) { |
177 |
public StorageResolverIterator(Iterator resolvers) { |
174 |
this._resolvers = resolvers; |
178 |
this._resolvers = resolvers; |
|
|
179 |
_currentResolver = findNextResolver(); |
175 |
} |
180 |
} |
176 |
|
181 |
|
177 |
/** @inheritDoc */ |
182 |
/** @inheritDoc */ |
178 |
public boolean hasNext() { |
183 |
public boolean hasNext() { |
179 |
return _resolvers.hasNext(); |
184 |
if (_currentResolver == null) { |
|
|
185 |
return false; |
186 |
} |
187 |
|
188 |
if (_currentResolver.hasNext()) { |
189 |
return true; |
190 |
} |
191 |
|
192 |
_currentResolver = findNextResolver(); |
193 |
return (_currentResolver != null); |
180 |
} |
194 |
} |
181 |
|
195 |
|
182 |
/** @inheritDoc */ |
196 |
/** @inheritDoc */ |
183 |
public Object next() { |
197 |
public Object next() { |
184 |
return _resolvers.next(); |
198 |
if (hasNext()) { |
|
|
199 |
return _currentResolver.next(); |
200 |
} |
201 |
|
202 |
throw new NoSuchElementException(); |
185 |
} |
203 |
} |
186 |
|
204 |
|
187 |
/** |
205 |
/** |
Lines 191-195
Link Here
|
191 |
throw new UnsupportedOperationException( |
209 |
throw new UnsupportedOperationException( |
192 |
"Can't remove keys from KeyStore"); |
210 |
"Can't remove keys from KeyStore"); |
193 |
} |
211 |
} |
|
|
212 |
|
213 |
// Find the next storage with at least one element and return its Iterator |
214 |
private Iterator findNextResolver() { |
215 |
|
216 |
while (_resolvers.hasNext()) { |
217 |
StorageResolverSpi resolverSpi = (StorageResolverSpi)_resolvers.next(); |
218 |
Iterator iter = resolverSpi.getIterator(); |
219 |
if (iter.hasNext()) { |
220 |
return iter; |
221 |
} |
222 |
} |
223 |
|
224 |
return null; |
225 |
} |
194 |
} |
226 |
} |
195 |
} |
227 |
} |