/*
* Copyright 2003 Federal Chancellery Austria
* MOA-SPSS has been developed in a cooperation between BRZ, the Federal
* Chancellery Austria - ICT staff unit, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egovernment.moa.spss.server.iaik.pki.store.truststore;
import java.util.ArrayList;
import java.util.List;
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;
import iaik.pki.store.observer.NotificationData;
import iaik.pki.store.observer.Observer;
import iaik.pki.store.truststore.TrustStoreProfile;
import iaik.pki.store.truststore.TrustStoreTypes;
/**
* 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 final List observers = new ArrayList();
/**
* The trust profile identifier.
*/
private String id_;
/** 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(String trustProfileId, String trustProfileUri)
throws MOAApplicationException {
id_ = trustProfileId;
setURI(trustProfileUri);
setType(TrustStoreTypes.DIRECTORY);
}
/**
* 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.
*/
@Deprecated
public TrustStoreProfileImpl(
ConfigurationProvider config,
String trustProfileId)
throws MOAApplicationException {
final TrustProfile tp = config.getTrustProfile(trustProfileId);
if (tp != null) {
id_ = trustProfileId;
setURI(tp.getUri());
setType(TrustStoreTypes.DIRECTORY);
} else {
throw new MOAApplicationException("2203", new Object[] { trustProfileId });
}
}
/**
* @see iaik.pki.store.truststore.TrustStoreProfile#getType()
*/
@Override
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()
*/
@Override
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.pki.store.observer.Observable interface
//
/**
* @see iaik.pki.store.observer.Observable#addObserver(iaik.pki.store.observer.Observer)
*/
public void addObserver(Observer observer) {
observers.add(observer);
}
/**
* @see iaik.pki.store.observer.Observable#removeObserver(iaik.pki.store.observer.Observer)
*/
public boolean removeObserver(Observer observer) {
return observers.remove(observer);
}
/**
* @see iaik.pki.store.observer.Observable#notify(iaik.pki.store.observer.NotificationData)
*/
public void notify(NotificationData notificationData) {
for (final Object observer2 : observers) {
final Observer observer = (Observer) observer2;
observer.notify(notificationData);
}
}
/**
* @see iaik.pki.store.truststore.TrustStoreProfile#getId()
*/
@Override
public String getId() {
return id_;
}
}