package at.gv.egovernment.moa.spss.server.iaik.pki.store.truststore;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import iaik.pki.store.truststore.TrustStoreProfile;
import iaik.pki.store.truststore.TrustStoreTypes;
import iaik.servertools.observer.NotificationData;
import iaik.servertools.observer.Observer;
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
import at.gv.egovernment.moa.spss.server.config.TrustProfile;
/**
* An implementation of the TrustStoreProfile
interface, using data
* from the MOA configuration.
*
* @see iaik.pki.store.truststore.TrustStoreProfile
* @author Patrick Peck
* @version $Id$
*/
public class TrustStoreProfileImpl implements TrustStoreProfile {
/** The observers of this profile. */
private List observers = new ArrayList();
/** The type of the trust profile. */
private String type;
/** The URI of the trust profile.*/
private String URI;
/**
* Create a new TrustStoreProfileImpl
.
*
* @param config The MOA configuration data, from which trust store
* configuration data is read.
* @param trustProfileId The trust profile id on which this
* TrustStoreProfile
is based.
* @throws MOAApplicationException The trustProfileId
could not
* be found in the MOA configuration.
*/
public TrustStoreProfileImpl(
ConfigurationProvider config,
String trustProfileId)
throws MOAApplicationException {
TrustProfile tp = (TrustProfile) config.getTrustProfile(trustProfileId);
if (tp != null) {
setURI(tp.getUri());
setType(TrustStoreTypes.DIRECTORY);
} else {
throw new MOAApplicationException(
"2203",
new Object[] { trustProfileId });
}
}
/**
* @see iaik.pki.store.truststore.TrustStoreProfile#getType()
*/
public String getType() {
return type;
}
/**
* Sets the the trust store type.
*
* @param type The trust store type to set.
*/
protected void setType(String type) {
this.type = type;
}
/**
* @see iaik.pki.store.truststore.TrustStoreProfile#getURI()
*/
public String getURI() {
return URI;
}
/**
* Sets the trust store URI.
*
* @param URI The trust store URI to set.
*/
protected void setURI(String URI) {
this.URI = URI;
}
//
// Methods of iaik.utils.observer.Observable interface
//
/**
* @see iaik.utils.observer.Observable#addObserver(Observer)
*/
public void addObserver(Observer observer) {
observers.add(observer);
}
/**
* @see iaik.utils.observer.Observable#removeObserver(Observer)
*/
public boolean removeObserver(Observer observer) {
return observers.remove(observer);
}
/**
* @see iaik.utils.observer.Observable#notify(NotificationData)
*/
public void notify(NotificationData notificationData) {
for (Iterator iter = observers.iterator(); iter.hasNext();) {
Observer observer = (Observer) iter.next();
observer.notify(notificationData);
}
}
}