/*
 * reserved comment block
 * DO NOT REMOVE OR ALTER!
 */
/*
 * Copyright  1999-2004 The Apache Software Foundation.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package com.sun.org.apache.xml.internal.security.keys.storage;

import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.sun.org.apache.xml.internal.security.keys.storage.implementations.KeyStoreResolver;
import com.sun.org.apache.xml.internal.security.keys.storage.implementations.SingleCertificateResolver;


This class collects customized resolvers for Certificates.
Author:$Author: mullan $
/** * This class collects customized resolvers for Certificates. * * @author $Author: mullan $ */
public class StorageResolver {
logging logging facility
/** {@link java.util.logging} logging facility */
static java.util.logging.Logger log = java.util.logging.Logger.getLogger(StorageResolver.class.getName());
Field _storageResolvers
/** Field _storageResolvers */
List _storageResolvers = null;
Field _iterator
/** Field _iterator */
Iterator _iterator = null;
Constructor StorageResolver
/** * Constructor StorageResolver * */
public StorageResolver() {}
Constructor StorageResolver
Params:
  • resolver –
/** * Constructor StorageResolver * * @param resolver */
public StorageResolver(StorageResolverSpi resolver) { this.add(resolver); }
Method addResolver
Params:
  • resolver –
/** * Method addResolver * * @param resolver */
public void add(StorageResolverSpi resolver) { if (_storageResolvers==null) _storageResolvers=new ArrayList(); this._storageResolvers.add(resolver); this._iterator = null; }
Constructor StorageResolver
Params:
  • keyStore –
/** * Constructor StorageResolver * * @param keyStore */
public StorageResolver(KeyStore keyStore) { this.add(keyStore); }
Method addKeyStore
Params:
  • keyStore –
/** * Method addKeyStore * * @param keyStore */
public void add(KeyStore keyStore) { try { this.add(new KeyStoreResolver(keyStore)); } catch (StorageResolverException ex) { log.log(java.util.logging.Level.SEVERE, "Could not add KeyStore because of: ", ex); } }
Constructor StorageResolver
Params:
  • x509certificate –
/** * Constructor StorageResolver * * @param x509certificate */
public StorageResolver(X509Certificate x509certificate) { this.add(x509certificate); }
Method addCertificate
Params:
  • x509certificate –
/** * Method addCertificate * * @param x509certificate */
public void add(X509Certificate x509certificate) { this.add(new SingleCertificateResolver(x509certificate)); }
Method getIterator
Returns:the iterator for the resolvers.
/** * Method getIterator * @return the iterator for the resolvers. * */
public Iterator getIterator() { if (this._iterator == null) { if (_storageResolvers==null) _storageResolvers=new ArrayList(); this._iterator = new StorageResolverIterator(this._storageResolvers.iterator()); } return this._iterator; }
Method hasNext
Returns:true if there is more elements.
/** * Method hasNext * * @return true if there is more elements. */
public boolean hasNext() { if (this._iterator == null) { if (_storageResolvers==null) _storageResolvers=new ArrayList(); this._iterator = new StorageResolverIterator(this._storageResolvers.iterator()); } return this._iterator.hasNext(); }
Method next
Returns:the next element
/** * Method next * * @return the next element */
public X509Certificate next() { return (X509Certificate) this._iterator.next(); }
Class StorageResolverIterator
Author:$Author: mullan $
Version:$Revision: 1.5 $
/** * Class StorageResolverIterator * * @author $Author: mullan $ * @version $Revision: 1.5 $ */
static class StorageResolverIterator implements Iterator {
Field _resolvers
/** Field _resolvers */
Iterator _resolvers = null;
Constructor FilesystemIterator
Params:
  • resolvers –
/** * Constructor FilesystemIterator * * @param resolvers */
public StorageResolverIterator(Iterator resolvers) { this._resolvers = resolvers; }
@inheritDoc
/** @inheritDoc */
public boolean hasNext() { return _resolvers.hasNext(); }
@inheritDoc
/** @inheritDoc */
public Object next() { return _resolvers.next(); }
Method remove
/** * Method remove */
public void remove() { throw new UnsupportedOperationException( "Can't remove keys from KeyStore"); } } }